文件 libswiftCore.dylib 没有正确的代码签名

The file libswiftCore.dylib doesn’t have the correct code signature

我知道这个问题被问了很多次,人们提出了很多解决方案。就我而言,我已经尝试了所有这些。我试过的是 仅供参考:我不能使用 xcode 进行构建。 原因:我正在研究 chromium ios 使用 GN 构建系统编写所有构建代码。

有谁知道苹果还需要什么才能签名? 欢迎更多故障排除步骤。

我解决了这个问题让我总结一下,对遇到这个问题的每个人都有帮助,这里有一些故障排除步骤。

  • XCode 构建设置在我的案例中我通过一些脚本进行了更改,如果您正在使用一些构建系统来制作 XCode 项目然后添加 swift 嵌入库始终为 YES,否则您可以转到 XCode 构建设置并将标志设置为 YES

  • 把你的IPA改成.zip然后解压,应该有Swift这样的Support文件夹SwiftSupport/iphoneos/all你项目需要的dylib库

  • 如果 Swift 支持文件夹不存在,那么您必须创建 swift 支持文件夹并通过终端使用一些命令附加 IPA,对于我来说我就是这样做的. zip -r chose_your_ipa_name.ipa Payload SwiftSupport ,Payload 文件夹将包含 .app 文件,SwiftSupport 文件夹包含 .dylib 就像这个层次结构 SwiftSupport/iphoneos/*.dylib

  • Swift支持文件夹库应该是苹果证书的代码签名,而不是你的证书。让它工作只需从这条路径复制.dylib "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos/"

  • 你这个framework文件夹下的库Payload/Framework/.dylib库需要你的证书签名。

现在很重要的一点不能错过

  • 使用 lipo -info path_of_dylib 检查 Payload/Framework/*.dylib 下你的库的体系结构信息,如果它包含框架 arm64e,请以某种方式删除这个 arch 这不起作用,我也不知道原因(如果有人知道也请告诉我)在该代码以相同的代码标识对您的库进行签名之后。

    • 像这样使用终端再次使用制作.ipa文件。 zip -r your_app_name.ipa Payload Swift支持,确保这些目录没有contatins.DS_Store隐藏文件,如果退出则在制作ipa之前删除它们。

希望这些故障排除步骤能够奏效 :) 如果我遗漏了什么,抱歉 :) 如果您想进行更多讨论,请通过电子邮件或在此处发表评论让我知道。 mshauket.developer@gmail.com