无法在iOS 10.3.3系统的iPhone 5上运行应用的问题求助
解决Xcode 9.2在iPhone 5(iOS 10.3.3)上的链接器断言错误
嘿,针对你碰到的这个链接器断言错误——ld: Assertion failed: (_mode == modeFinalAddress), function finalAddress, file /Library/Caches/com.apple.xbs/Sources/ld64/ld64-305/src/ld/ld.hpp, line 759,结合你的环境(MacOS High Sierra 10.13.3 + Xcode 9.2 + iPhone 5 iOS 10.3.3),我整理了几个实用的排查和解决方法,你可以逐一试试:
先清一波Xcode缓存和构建产物
链接器问题很多时候都是缓存搞的鬼,先做这个最基础的操作:- 彻底关掉Xcode
- 打开终端,敲这两条命令清理缓存:
rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf /Library/Caches/com.apple.xbs/Sources/ld64 - 重新打开Xcode,用
Cmd+Shift+K清掉Build Folder,再重新构建运行
检查项目的架构配置
iPhone 5是32位设备(armv7架构),很可能是架构设置不对导致链接器卡壳:- 打开项目的Build Settings
- 找到
Architectures,确保设成Standard Architectures (armv7, arm64),或者明确把armv7加进去 - 看看
Valid Architectures,确认armv7在列表里 - 把
Build Active Architecture Only关掉(Debug模式下开着没事,但测试的时候建议关了)
试试调整Xcode版本
Xcode 9.2和iOS 10.3.3的组合可能存在兼容性bug:- 要么降级到Xcode 9.1(它对iOS 10的支持更稳定),要么升级到Xcode 9.4.1(这是High Sierra能装的最高Xcode版本),换个版本再跑试试
排查设备本身的问题
虽然你没有其他同系统设备,但可以先试试这些操作排除设备问题:- 重启你的iPhone 5,重新连Xcode再运行
- 重置设备的网络设置(不会删你的数据),之后再尝试
- 如果方便的话,备份设备后重新刷一遍iOS 10.3.3系统,排除系统文件损坏的可能
检查第三方库的兼容性
有些第三方库可能没做好armv7架构的支持,或者文件损坏了:- 检查所有依赖的第三方库,用
lipo -info [库文件路径]命令看看是不是包含armv7架构的二进制 - 试试移除最近新加的第三方库,重新构建,看错误会不会消失
- 检查所有依赖的第三方库,用
额外说一句:这个链接器断言错误一般和链接器的内存地址计算逻辑有关,大概率是缓存、配置或者兼容性问题,不是设备硬件坏了,不用太担心。
内容的提问来源于stack exchange,提问作者user1898829
相关产品推荐
相关产品推荐

