Cam*_*mer 72 xcode code-signing ios
使用旧版 macOS 上提供的协同设计版本签名的应用程序(例如 Catalina (10.15))将无法在 iOS 15 上运行,因为您可以安装的最新版本是 Xcode 12.4。
Xcode 12.5 似乎改变了协同设计的行为。安装时出现错误消息:
不再支持代码签名版本
有解决方法吗?
Cam*_*mer 126
这个答案主要适用于使用旧版本 Xcode 的人。我的构建农场一度停留在 Xcode 12.4,因为某些 Mac mini 无法升级到 Catalina 之后。如果您使用的是最新的 Xcode 13+,这不是您的问题。您的项目中可能存在某种缺陷。
如果您仍在使用 Xcode 12 版本,那么是时候放弃了。使用 12.4 的唯一原因是因为您被困在 Catalina 上,并且新问题不断出现,而这些问题不会那么容易解决。
Apple 已更改了协同设计签名,除了 plist 编码的权利之外还包括 DER 编码的权利。这个额外的 DER 编码权利部分在 iOS 15 中是必需的,并成为最新 Xcode 中协同设计的默认行为。要在具有旧版本 Xcode 的旧计算机上使用 codesign,请将该--generate-entitlement-der标志添加到对 codesign 的调用中。
如果通过 Xcode 签名,您可以将此标志添加到OTHER_CODE_SIGN_FLAGS“构建设置”选项卡中的设置中。
如果在命令行进行协同设计:
CODESIGN_ALLOCATE=$( xcrun --find codesign_allocate ); export CODESIGN_ALLOCATE
xcrun codesign --generate-entitlement-der ...
Run Code Online (Sandbox Code Playgroud)
此信息的来源是Apple 论坛帖子以及 Apple DTS 中 Matt Eaton 的回答。
在Xcode 12.5 发行说明中还提到了新的签名格式。不过,该信息似乎并不完全正确。
如果您有像 CocoaPods 这样的重要设置,您可能应该取消集成并重新集成,当然还应该清理项目。这些“我也是”的答案实际上只会增加信号的噪音,任何进行此类开发的人都应该已经尝试过这一点。
Lan*_*ria 53
以下是@CameronLowellPalmer 答案的一些视觉指示。
我从 @WayneHenderson 在接受的答案下面的评论中得到了步骤。
按照红色箭头步骤 1 - 11(没有 8,我犯了一个错误,从 7 直接转到 9)。
最重要的是第4步,一定要选择All,否则找不到选项Other Code Signing Flags。
对于第5步,只需输入Other Code Signing Flags搜索容器即可。
步骤 9 - 11 是您输入的位置--generate-entitlement-der
小智 33
Embedded为“不嵌入”Sam*_*Sam 11
对于像我一样使用 Xcode13 的人来说,问题可能不是因为我们应用程序的代码签名(要检查应用程序的代码签名,请参阅https://developer.apple.com/documentation/xcode/using-the-latest -code-signature-format),但由于依赖项之一的代码签名,删除依赖项可以解决问题。
就我而言,我将依赖项一一删除,最终发现罪魁祸首是FirebaseAnalyticsOnDeviceConversion. 删除依赖项
小智 6
我花了两天时间找到这个问题,最后我从 Lance Samaria 那里得到了解决方案。我想分享一下。
Target-> Build Settings -> Other Code Signing Flags 将此代码 --generate-entitlement-der 添加到调试和发布中
之后转到目标->常规->框架、库和嵌入内容->更改为“不嵌入”
我还更新了配置文件和 IOS 分发证书。
现在清理构建文件夹并运行您的项目。
非常感谢兰斯·萨玛利亚
测试了所有解决方案后,只有一个对我有用。因为XCode在添加Framework时会自动添加sign签名,所以任何需要的Framework都Embed & Sign应该删除并重新添加。Xcode 将自动添加新的签名。
Embed & Sign。Embed & Sign.pods框架是否已设置Do Not Embed现在在您的设备上清理并运行您的应用程序。
| 归档时间: |
|
| 查看次数: |
63897 次 |
| 最近记录: |