iOS Xcode 问题列表

2017-10-16  本文已影响113人  RunningDu

Xcode 9.0之后,时不时会遇到以下问题

  1. 使用Xcode 9.0编译静的态库在Xcode 8.3.2报错,如下所示:

ld: framework not found FileProvider for architecture arm64

Xcode编译报错
Targets - Build Settings - Link Frameworks Automatically 设置为NO

此方案编译后的静态库.a文件,在使用时需要将静态库中用到的library添加到工程的库文件中,否则会报错,找不到静态库中的类库
参考:Xcode编译报错

  1. 下载新版xcode
  2. 在xCode 中找到code.app,显示包内容
  3. 到以下目录:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/
  4. 将报错的.framework拷贝至Xcode8.app
    FileProvider.framework 。。。
    IOSurface.framework。。。
  5. 重启xcode,clean工程并重新编译
  1. 在Xcode 9.0和Xcode 8.x之间来回切换编译,导致选择不到模拟器
image.png

解决方案:将两个版本的Xcode和模拟器都退出,然后重新打开运行即可。
若还不可以,则清理下工程command+shit+k 或 command+alt+shit+k,然后退出Xcode重新打开。

  1. 使用静态库或.bundle资源文件时报错

ld:symbol(s) not found for architecture arm64

报错信息

原本以为是库文件不支持arm64,其实不然。

以前在Xcode中通过右键拷贝文件,会自动将库文件导入到工程中,并会添加到Build Phases-Link Binary With
Librarire库中或Copy Bundle Resources中,但貌似升级到Xcode 9.0后,又出现此bug,在之前Xcode中曾也有bug,估计后续可能会修复。

添加工程库文件

导入库文件或资源文件时,注意检查以下两个地方是否已添加,若系统没有添加,需要找到对应文件,添加进来。

image.png
  1. swift文件编译报错

use of unresolved identifier 'xxx.swift'

xxx.swift文件是导入到工程中,而且选择了copy到工程,但仍然报错。
产生原因:感觉是XCode的bug,没有将文件导入到编译源文件中
解决方法:Target -> Build Phases -> Compile Sources -> 点击+号,将相应的文件加入即可。

  1. Xcode 9.0支持无线调试
    这个感觉比较鸡肋,以方便支持特别差,对网络貌似有要求,而且不稳定,经常导致设备看似连接着,但实际一直等待连接状态。当然也可能跟我的环境有关,不过我已经放弃此功能了,至少现在这个版本没法用。
    解决方案有两个:
via ip连接 输入手机iP地址

至于能不能连接上,看人品了。


以下为其他Xcode 问题

  1. 编译Xcode总是报以下错误
ld: warning: directory not found for option '-L/XXX'  
ld: warning: directory not found for option '-F/XXX'

参考:Xcode问题
产生原因:之前导入的第三方类库路径改变,导致编译器找不到,故报警告信息
解决方案:

Project -> targets -> Build Setting -> Library Search Paths 删除工程中没有使用到的静态库路径
Project -> targets -> Build Setting -> Framework Search Paths 删除工程中没有使用到的Framework路径

上一篇 下一篇

猜你喜欢

热点阅读