耿鸿的博客

Xcode相关

字数统计: 934阅读时长: 5 min
2021/09/02

Xcode相关的路径

  • Provisioning Profiles存放路径:~/Library/MobileDevice/Provisioning Profiles

  • 所有模拟器(包括历史模拟器):~/Library/Developer/CoreSimulator/Devices

清理Xcode占用容量

  • iOS DeviceSupport:~/Library/Developer/Xcode/iOS DeviceSupport。

说明:在连接设备调试时,会自动在该路径下生成该设备系统版本的Symbols目录,其中含有系统动态库,比如动态库UIKit的路径为~/Library/Developer/Xcode/iOS DeviceSupport/11.4 (15F79)/Symbols/System/Library/Frameworks/UIKit.framework/UIKit。

建议:保留经常调试的设备的iOS系统版本,不经常使用的系统版本都删掉。

  • Archives:~/Library/Developer/Xcode/Archives。

说明:打包生成的Archives文件,这个不可恢复,删除后Archives的文件都会消失。建议:保留有效的打包文件,备份dSYM文件

  • DerivedData:~/Library/Developer/Xcode/DerivedData

说明:运行项目工程产生的缓存,删除文件夹中的内容会删除build生成的项目索引、build输出以及日志,重新打开项目时会重新生成。建议:全部删除,之后运行程序的时候会重新生成的。

真机调试

  • 真机包存放路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport,一个真机包带有两个文件:DeveloperDiskImage.dmg.signature和DeveloperDiskImage.dmg

  • github上收集的真机包:iPhoneOSDeviceSupport(或者iOS-DeviceSupport),往路径添加完真机包后,记得关闭Xcode,然后重新启动Xcode运行项目

  • 每个版本的Xcode都带有适应当时最新iOS系统的SDK,iPhone SDK存放路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk

github上收集的iOS系统的SDK:iPhoneOS.sdk

TARGETS Build Settings

  • Library Search Paths:设置静态库(比如.a、私有的.framework)或动态库(.dylib)的路径

如果报”directory not found for option ‘-L/…”错误,说明Library Search Paths没有配置好

  • Header Search Paths:设置静态库或动态库的头文件(即.h文件)的路径。

如果项目是用cocoaPods管理第三方库,比如项目中使用了AFNetworking库,cocoaPods会自动配置好AFNetworking库的头文件路径,不需要开发者区手动配置,路径内容为:

1
2
3

$(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking"

但如果是使用非cocaPods管理的库(比如自己编译的.a文件),就需要手动配置库的头文件的路径,比如路径内容为:

1
2
3

$(SRCROOT)/pjproject/pjlib/include $(SRCROOT)/pjproject/pjlib-util/include

否则会报找不到头文件的错误(一般会在#include <>地方报错)

Xcode命令

  • 查看Xcode支持的SDKs版本命令(包括iOS、iOS Simulator、macOS、tvOS):xcodebuild -showsdks

  • 查看当前使用Xcode版本路径:xcode-select -p

  • 更改当前使用Xcode版本路径:sudo xcode-select -s /Applications/Xcode9.app/Contents/Developer

Xcode运行问题

  • 若Xcode勾选了自动管理签名(automatically manage signing)且更改过Signing & Capabilities,则Xcode会自动在该路径下生成对应的描述文件,可通过创建时间和内容来查看描述文件对应的Bundle Identifier、App ID等信息。

如果钥匙串有可用的证书,但Signing & Capabilities却爆红,Command+R遇到错误”Your account already has a signing certificate for this machine but it is not present in your keychain” 或 “no identity found Command CodeSign failed with a nonzero exit code”,可能是Xcode抽风了,完全退出Xcode,重新打开项目,Xcode会在~/Library/MobileDevice/Provisioning Profiles路径下生成描述文件,且能正常链接上钥匙串中的证书了。

原文作者:John

原文链接:https://johncahong.github.io/2021/09/02/Xcode/

发表日期:September 2nd 2021, 5:19:48 pm

更新日期:March 4th 2022, 2:33:10 pm

版权声明:本文采用Crative Commons 4.0 许可协议进行许可

CATALOG
  1. 1. Xcode相关的路径
  2. 2. 清理Xcode占用容量
  3. 3. 真机调试
  4. 4. TARGETS Build Settings
  5. 5. Xcode命令
  6. 6. Xcode运行问题