美文网首页
iOS Xcode 问题列表

iOS Xcode 问题列表

作者: RunningDu | 来源:发表于2017-10-16 12:11 被阅读113次

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

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

ld: framework not found FileProvider for architecture arm64

Xcode编译报错
  • 解决方案一:使用Xcode 8.3.2编译器重新编译静态库,然后在Xcode 8.3.2和Xcode 9.0都可编译通过。
    但可能存在隐患,因为Xcode 8.3.2只能支持到iOS 10.x版本,所以需要将库放到iOS 11中检测一下,防止编译失败情况。

  • 方案二:解决高版本编译静态库在低版本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支持无线调试
    这个感觉比较鸡肋,以方便支持特别差,对网络貌似有要求,而且不稳定,经常导致设备看似连接着,但实际一直等待连接状态。当然也可能跟我的环境有关,不过我已经放弃此功能了,至少现在这个版本没法用。
    解决方案有两个:
  • 关闭无线连接


    关闭无线连接
  • 使用网段IP连接

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路径

相关文章

网友评论

      本文标题:iOS Xcode 问题列表

      本文链接:https://www.haomeiwen.com/subject/wzlkuxtx.html