前两天接手的公司项目出包,很不幸的遇上这个问题。在网上爬文,从英文圈到中文圈子大部份方案都是什么Always Embed Swift Standard Libraries设置为真,Runpath Search Paths 没有@executable_path/Frameworks,证书删除重下,删除XCode缓存啥的,解决方案都差不多,感觉是互相抄袭,但遗憾的是这些方案对我所面对的困境都没有任何的帮助。
最后在一个github一条讨论下最下面的的一贴回复”Had the same issue and only adding /usr/lib/swift
to Runpath Search Paths helped.“,并且附上https://stackoverflow.com/a/69852407/4896751
解决问题的原始地址。照着操作在Build Settings->Linking->Runpath Search Paths加上”/usr/lib/swift“地址后,果然有效。
这一点在网上现在大部份贴子都没有提,大部份都集中在Always Embed Swift Standard Libraries设置一类。想了一下,项目能编译通过,在运行时才出问题,所以影响运行的参数Runpath Search Path改动之后有效在情理之中。
另外一点就是,公司的项目在IOS上分海外和国内包,但国内包并未有这个问题,同样也没有专门加上swift路径。估计是海外包接入的FacebookSDK使用了swfit库的内容,所以才对项目运行有此要求。。。