简介
当我的设备升级到iOS15 beta1
时,安装的企业应用程序无法启动成功。
ErrorMsg:Signature Version Unsupported, reason: Signature version no longer supported
https://developer.apple.com/forums/thread/681684
现象:
点击App,系统弹框
标题: “xxxxAPP”需要更新
内容:App开发者需要更新此App以在此iOS版本上正常工作。
分析
1、查启动日志发现如下日志
[com.XXXX.XXX - signature state: Signature Version Unsupported, reason: Signature version no longer supported
2、证书版本校验
下载ipa文件解压,执行如下命令:
codesign -dv XXXXXX.app
输出的内容:
Executable=/Users/XXXXXX/XXXXXX.app/XXXXXX
Identifier=com.XXXX.XXX
Format=app bundle with Mach-O universal (armv7 arm64)
CodeDirectory v=20400 size=337021 flags=0x0(none) hashes=10523+5 location=embedded
Signature size=4803
Signed Time=Jun 5, 2021 at 10:57:48 PM
Info.plist entries=50
TeamIdentifier=XXXXXXXXXX
Sealed Resources version=2 rules=10 files=1111
Internal requirements count=1 size=196
https://developer.apple.com/documentation/xcode/using-the-latest-code-signature-format
CodeDirectory后面的v小于20400需要重签名,(从appstore下载、xcode12/13构建的都是20400),比较不同系统下面的签名信息发现最后一行有一致的情况。
尝试解决
1、 升级Xcode
使用Xcode12.4, 因电脑系统不支持,不能正常使用
2、 升级macOS系统
2.1 安装Xcode 13 beta, 使用beta版本打包,可以正常使用
2.2 安装Xcode 12.5/12.4 打包,可以正常使用
2.3 直接重签名,可以正常使用
3、 替换codesign命令行(待验证)
小结
1、上架包要求xcode >= 12,12.5必须macos 11
2、重新打包或者签名,不需要更换描述文件
3、macOS系统 >=11 、xcode >= 12.4即可
4、appstore包可以使用的原因是提交审核后会加壳重新签名,待观察是否是苹果的BUG,后续版本是否会修复