我们正在尝试在 iOS 15 上测试应用程序,发现我们收到此消息 App需要更新。
谁能告诉我这条消息背后的原因?现有用户必须删除该应用程序并重新安装才能摆脱此警报。
我们正在尝试在 iOS 15 上测试应用程序,发现我们收到此消息 App需要更新。
谁能告诉我这条消息背后的原因?现有用户必须删除该应用程序并重新安装才能摆脱此警报。
我的企业应用程序也遇到了同样的问题,幸运的是我设法解决了这个问题。
如果您使用企业帐户部署应用程序,实际上有两个原因可能导致 iOS 15 上出现此问题。该问题的根密钥是一种新的签名格式,这是 iOS 15 所必需的。通过 App Store 发布的应用程序会自动退出,因此它们不受该问题的影响。
另外,请注意,造成这种情况的主要原因是使用较旧的 MacOS 版本构建 IPA。如果您更新到最新的 Big Sur,您应该能够生成正确签名的 IPA。如果您不想更新,请阅读以下解决方案。
第一个原因
Apple 在此处记录的第一个原因是您的 IPA 必须使用新的签名格式。如果 IPA 是用 MacOS 10.14 或更高版本构建的,应该很好。为确保您的 IPA 具有正确的签名,请使用以下步骤:
codesign -dv /path/to/MyApp.app
CodeDirectory
。如果你看到v=20500
或v=20400
,你很好。如果您看到低于 20400 的值,则需要使用以下命令对您的应用程序进行签名:(codesign -s "Your Codesign Identity" -f --preserve-metadata /path/to/MyApp.app
确保您使用 MacOS >= 10.14 执行此操作,然后重新运行codesign -dv /path/to/MyApp.app
以确保您现在得到v=20400
或v=20500
)尝试重新安装此 IPA,它应该可以工作。如果没有,请阅读下面的第二个原因。
第二个原因
另一个可能的原因(Apple 未记录)有点棘手,即您可能需要重新签署您的应用程序,包括 DER entitlements。要检查您是否需要这样做,请执行以下操作:
codesign -dvvvvv /path/to/MyApp.app
Page size
,您应该会看到如下内容: -7=4ade7be00e0a7b6db853edc4843e7ece1eea646f6f13d1809f78fc50d8db461f //If this line doesn't exist or contains only 000..., you need to include DER entitlements
-6=0000000000000000000000000000000000000000000000000000000000000000
-5=1dfa58bd8ac3c4fb42142c1c4d28c436128b3a7460186a44526194fb690112bc
-4=0000000000000000000000000000000000000000000000000000000000000000
-3=ef08dbe5a7c355336e1fb571604b683ce1c54536cb59a6155a1d18387fd23f6e
-2=5b730fa46ffd405fd88da9606d82eda9af7f460f6049047afc176163326f5a7f
-7
不存在或仅包含000...
,那么这就是 IPA 无法正确安装的原因。要解决此问题,请执行下一步codesign -s "Your Codesign Identity" -f --preserve-metadata --generate-entitlement-der /path/to/MyApp.app
以退出您的应用程序,包括 DER 权利。重新运行codesign -dvvvvv /path/to/MyApp.app
以确保该-7
值现在正确。您现在应该可以安装 IPA 了!
我已通过以下配置解决了该问题:MacOS Big Sur(macOS 11.14) 和 Xcode 12.5.1。
据我了解,失败的原因是更新了签名格式。在 iOS 15 中,新格式是强制性的,而在 iOS 14 中,它只会发出警告。
有关签名的更多信息可以在这里找到: https ://developer.apple.com/documentation/xcode/using-the-latest-code-signature-format
如果您在 12 月使用 Xcode 12.4 或 13 和 MacOS 10.15.4 或更高版本,那么创建一个新的 Provisioning 配置文件并使用它进行配置就足够了。供应配置文件中必须包含 DER 权利。请参阅 https://developer.apple.com/forums/thread/682775,了解检查您的配置文件是否具有 DER 权利的方法。