简介

当我的设备升级到iOS15 beta1时,安装的企业应用程序无法启动成功。

ErrorMsg:Signature Version Unsupported, reason: Signature version no longer supported

https://stackoverflow.com/questions/67882267/ios15-betasignature-version-unsupported-reason-signature-version-no-longer-su

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

-w1004

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,后续版本是否会修复

感谢

曾静, BASE 深圳