我知道这个问题被问了很多次,人们提出了许多解决方案。就我而言,我已经尝试了所有这些。我试过的是 仅供参考:我不能使用xcode进行构建。 原因:我正在开发所有使用GN构建系统构建的Chrome ios代码。
有人知道苹果还需要签名吗? 欢迎使用更多故障排除步骤。
答案 0 :(得分:1)
我已解决此问题,让我总结一下并使其对遇到此问题的每个人有所帮助,这是一些故障排除步骤。
在我的情况下,我通过一些脚本更改了XCode构建设置,如果您使用某个构建系统来制作XCode项目,则将swift embed库始终添加为YES,否则可以转到XCode构建设置并设置一个标志到是
将您的IPA更改为.zip,然后解压缩,应该有项目需要的SwiftSupport文件夹,例如SwiftSupport / iphoneos /所有dylib库。
如果不存在Swift Support文件夹,那么您必须创建swift support文件夹,并通过终端使用某些命令添加IPA,对于我来说,我就是这样。 zip -r selected_your_ipa_name.ipa Payload SwiftSupport,Payload文件夹将包含.app文件,SwiftSupport文件夹将包含.dylib,就像该层次结构SwiftSupport / iphoneos / *。dylib
SwiftSupport文件夹库应使用Apple证书而不是您的证书进行代码签名。要使其工作,只需从以下路径复制.dylib:“ / Applications / Xcode.app / Contents / Developer / Toolchains / XcodeDefault.xctoolchain / usr / lib / swift / iphoneos /”
此框架文件夹下的库Payload / Framework / .dylib库应由您的证书签名。
现在非常重要的一点不容错过
使用lipo -info path_of_dylib检查Payload / Framework / *。dylib下您的库的体系结构信息,如果它包含框架arm64e,则以某种方式删除此拱门,这将不起作用,我也不知道原因(如果有人知道,也请让我知道。)然后,该代码使用相同的代码身份对您的lib进行签名。
希望这些故障排除步骤有效:)如果我有任何遗漏,抱歉:)如果您想进行更多讨论,请通过电子邮件或在此处发表评论让我知道。 mshauket.developer@gmail.com