在iOS 15上启动应用程序时,观察应用程序需要更新&消息

人气:333 发布:2022-10-16 标签: deployment swift swift3 ios15 itunes

问题描述

我们正在尝试在iOS 15上测试应用程序,发现收到此消息:应用程序需要更新。

谁能让我知道这条消息背后的原因?现有用户必须删除该应用程序并重新安装才能消除此警报。

推荐答案

我的企业应用程序遇到了同样的问题,幸运的是我已经设法解决了它。

如果您使用企业帐户部署应用程序,则实际上有两个原因可能会在iOS 15上导致此问题。问题的根密钥是iOS 15上需要的新签名格式。通过应用商店发布的应用程序会自动辞职,因此它们不会受到该问题的影响。

还请注意,出现这种情况的主要原因是使用较旧的MacOS版本构建IPA。如果您更新到最新的Big Sur,您应该能够生成正确签名的IPA。如果您不想更新,请阅读下面的解决方案。

第一个原因

第一个原因documented by Apple here是您的IPA必须使用新的签名格式。如果IPA是使用MacOS 10.14或更高版本构建的,它应该很好。要确保您的IPA具有正确的签名,请使用以下步骤:

将MyApp.ipa重命名为MyApp.zip并解压缩(您将获得一个包含MyApp.app的PayLoad文件夹) 在终端中运行codesign -dv /path/to/MyApp.app 在输出中查看CodeDirectory旁边的值。如果您看到v=20500v=20400,则表示您状态良好。如果您看到的值低于20400,您需要使用以下命令退出您的应用程序:codesign -s "Your Codesign Identity" -f --preserve-metadata /path/to/MyApp.app(确保您使用MacOS&>=10.14完成此操作,然后重新运行codesign -dv /path/to/MyApp.app以确保您现在获得v=20400v=20500) 压缩PayLoad文件夹并将其重命名为MyApp.ipa 尝试重新安装此IPA,它应该可以工作。如果没有,请阅读下面的第二个原因。

第二个原因

苹果没有记录的另一个可能的原因是,您可能need to re-sign your app including the 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值现在正确。 压缩PayLoad文件夹并将其重命名为MyApp.ipa

您现在应该可以安装iPA了!

869