iOS 解决symbol(s) not found for architecture arm64报错(2)

最近更新了项目里面用的帆软报表SDK (这个SDK比较麻烦,里面引用了其他的很多库,包括微信、信鸽等等,并且还不支持cocoapods),在真机调试的果然报错了,而模拟器调试的话就不会报错。还是经典的symbol(s) not found for architecture x64错误。

不要慌,一步一步来。

1、可能是导入的库不支持当前设备的指令集架构

(iPhone的ARM处理器指令集 armv7,armv7s,arm64,Mac处理器的指令集i386,x86_64)
这种情况一般出现在以前64位设备刚出来的时候,很多第三方库只支持32位系统,目前来说一般不会是因为这个原因。不过还是先验证下。


image.png

错报错信息上看,是libSangforSdk.a库文件有问题

# cd进入文件所在目录
cd /Users/Javen/Documents/MyProject/VPN 
# 查看信息
lipo -info libSangforSdk.a
输出结果:
Architectures in the fat file: libSangforSdk.a are: armv7 x86_64 arm64 

显然这个库是支持arm64的,所以不是因为库文件不支持。

2、可能是libSangforSdk.a静态库里面引用了其他的库而项目里没有导入

仔细看报错信息


image.png

明显分成了2个部分,一部分是NE开头的类名,一部分是_u开头的方法名。所以这里就很简单了,去搜索相应的类或者方法,确定是缺了什么库文件
1、第一个缺少的库


image.png
image.png

这个比较好确定,就是缺了NetworkExtension库,导入一下,编译


image.png

果然,上面一部分报错信息不见了。

2、第二个缺少的库


image.png

这个不是很明显,找一个点进去看看,看到了关键信息:


image.png

于是如此这般操作一下:


image.png

编译项目


image.png

完美解决问题。
这个问题很多人遇到都觉得很头疼,这里把比较通用的解决步骤写一下,其实以前大概写过,不过不是很详细,这里再写一下,希望能帮助到一些人。
其他解决方式:解决symbol(s) not found for architecture arm64报错

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,019评论 3 119
  • 乐于思考的人永远不会无聊。 有个一天到晚走神的伙伴,每当你想寻他说说话发发牢骚,习惯性的问:“在做什么?”让我忍无...
    意莫安阅读 254评论 0 0
  • 题目:“坚持原则”这句话,说起来容易,但是每当人们想起这句话的时候,就是遇到了一些值得纠结的事情。如果不值得纠结的...
    胥辉阅读 643评论 6 0
  • 我一直觉得自己是个内向的人,虽然我有时候显得很冒失,但从骨子里来说我还是喜欢一个安静的环境,不善于交往或者说不想去...
    暴躁的小熊阅读 124评论 0 0
  • 画画一小时,理解背诵十分钟。效果不错 第二首诗在画的时候顺序没安排好。应该顺时针画。
    雪叶_813c阅读 286评论 2 2