解决ios15企业版以及adhoc包无法安装问题

3,882 阅读5分钟

最终解决方案

macos 10.5系统就可以,当然你可以看参考链接貌似10.4.*就可以满足了

1、下载ipa并用命令行切换到需要重签名ipa所在目录

2、ipa解包,使用通配符是在我当前的文件夹目录下仅有一个ipa包

unzip -q *.ipa

3、查看签名相关信息


//参考自 https://xnxy.github.io/2021/06/16/IPA%E7%AD%BE%E5%90%8D%E6%A3%80%E6%9F%A5-iOS15/
// 在终端中执行下放命令,查找像CodeDirectory v=20500这样的字符串。对于任何v小于20400的值,您需要重新签署您的应用程序。
codesign -dv Payload/*.app


输出结果,如果没有-7这个size,只有-5那么你就需要重签名
Page size=4096
   -7=915c86eb5653ea2122901068e9735fd3c98d7622ab9aefe478e3c358a9a8ffeb
   -6=0000000000000000000000000000000000000000000000000000000000000000
   -5=7c741a970873bb7f6a05c1ad5b9425f4b5b1ac86645b2cb8c842a57f51818eb5
   -4=0000000000000000000000000000000000000000000000000000000000000000
   -3=6f00b3831b7c1a3ba39fbfe9fc3a4f2267816bbd2c8d77e1aac17fb1726cf9f3
   -2=904f563968898c7569794e19bcd9304d46ca5c0b9f09c792081bdb8ec9c04c92
CDHash=2a38a2b310e7a46c8e88a6f82f50fa31138fd894

4、找到本机所有的签名 eg: 1) 8F98098BC97AE746fdsff5D70DA53E1 "iPhone Distribution: Gafdfy fsdff Group Ltd."

security find-identity -v -p codesigning

// 1、使用企业证书对应的Codesign Identity 去进行签名
codesign -s "F1829123235381F5927F94F070BD22336B7" -f --preserve-metadata --generate-entitlement-der ./Payload/ChngalaxyEmployee.app --verbose

5、 payload合包

zip -r app.ipa Payload

6、安装ipa到ios15的手机上验证

 ios-deploy --bundle *.ipa
 

解决过程

解决思路

  • 升级设备到ios15 使用网上的方法进行重签看下是否能够正确安装
  • 升级mac开发电脑到最新的系统,然后重签
  • 升级mac开发电脑到最新的系统,升级工程,支持最新版的xcode,然后进行重签(会带来部分应用以后开发swift3不支持的问题)
// 使用对应的Codesign Identity 去进行签名
codesign -s "F1829123235381F5927F94F070BD22336B7" -f --preserve-metadata --generate-entitlement-der ./Payload/ChngalaxyEmployee.app --verbose

// 查看签名相关信息
//参考自 https://xnxy.github.io/2021/06/16/IPA%E7%AD%BE%E5%90%8D%E6%A3%80%E6%9F%A5-iOS15/
// 在终端中执行下放命令,查找像CodeDirectory v=20500这样的字符串。对于任何v小于20400的值,您需要重新签署您的应用程序。
codesign -dv Payload/ChngalaxyEmployee.app



codesign -dvvvvv Payload/


// 找到本机所有的签名  eg:   1) 8F98098BC97AE746fdsff5D70DA53E1 "iPhone Distribution: Gafdfy fsdff Group Ltd."  
security find-identity -v -p codesigning

// ipa解包
unzip -q *.ipa

// payload合包
zip -r app.ipa Payload

// 安装ipa到手机
 ios-deploy --bundle *.ipa

08-06别人留下的记录 需要升级到Big Sur才可以正常安装(正在升级ios15,看重签效果,同步下载big sur系统版本,清理了本地空间,预留30gb mac 磁盘空间)

juejin.cn/post/697133…

官方给的解决方案,正在尝试

developer.apple.com/documentati…

apple社区中有人提的问题

developer.apple.com/forums/thre…

未重签前安装报错如下

[ 70%] VerifyingApplication
2021-09-22 12:50:32.902 ios-deploy[63966:4018382] [ !! ] Error 0xe8008029: unknown. AMDeviceSecureInstallApplication(0, device, url, options, install_callback, 0)

这是我认为写的比较详细的解决思路,而且并不需要升级到big sur系统版本、参考链接中的一个回答 developer.apple.com/forums/thre…

For anyone having an issue with code signing their app with the --generate-entitlement-der on macOS Catalina, here is what I did today as a workaround:

(1) Built an Ad-Hoc iOS app that targeted iOS 13 on macOS Catalina. I checked the Page size on the signature and saw the missing -7 value:

$ codesign -dvvvvv MyTestApp.app
...
Page size=4096
    -5=7c741a970873bb7f6a05c1ad5b9425f4b5b1ac86645b2cb8c842a57f51818eb5
    -4=0000000000000000000000000000000000000000000000000000000000000000
    -3=f7ddc8d932def2f393dfc1719252e61b1561afeed76d32044ae0cd793e380bc6
    -2=904f563968898c7569794e19bcd9304d46ca5c0b9f09c792081bdb8ec9c04c92
(2) I tried to install this build from macOS Monterey to an iOS 15 device and received the following error message for (The code signature version is no longer supported):

default	11:41:15.649815-0700	installd	0x16be2b000 -[MIInstaller performInstallationWithError:]: Installing <MIInstallableBundle ID=com.dts.MyTestApp.app-mattsignature; Version=1, ShortVersion=1.0>
default	11:41:15.649936-0700	installd	com.dts.MyTestApp-mattsignature:7:5:1:1:Start : Install (New)
default	11:41:15.720695-0700	installd	0x16be2b000 +[MICodeSigningVerifier _validateSignatureAndCopyInfoForURL:withOptions:error:]: 74: Failed to verify code signature of /var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.pEXcje/extracted/Payload/MyTestApp.app : 0xe8008029 (The code signature version is no longer supported.)
(3) From here I resigned the MyTestApp.app on macOS Catalina with the --generate-entitlement-der flag:

$ codesign -s "DTS Matt Eaton (xxxxxxxxxx)" -f --preserve-metadata --generate-entitlement-der MyTestApp.app
Warning: default usage of --preserve-metadata implies "resource-rules" (deprecated in Mac OS X >= 10.10)!
MyTestApp.app: replacing existing signature
(4) From here I checked the Page size on the resigned app and saw that -7 is now available.

$ codesign -dvvvvv MyTestApp.app
Executable=/path/to/MyTestApp.app/MyTestApp
Identifier=com.dts.MyTestApp-mattsignature
...
Page size=4096
    -7=915c86eb5653ea2122901068e9735fd3c98d7622ab9aefe478e3c358a9a8ffeb
    -6=0000000000000000000000000000000000000000000000000000000000000000
    -5=7c741a970873bb7f6a05c1ad5b9425f4b5b1ac86645b2cb8c842a57f51818eb5
    -4=0000000000000000000000000000000000000000000000000000000000000000
    -3=6f00b3831b7c1a3ba39fbfe9fc3a4f2267816bbd2c8d77e1aac17fb1726cf9f3
    -2=904f563968898c7569794e19bcd9304d46ca5c0b9f09c792081bdb8ec9c04c92
CDHash=2a38a2b310e7a46c8e88a6f82f50fa31138fd894
(5) From here, I needed to zip up my Payload/MyTestApp.app directory again and then rename it with an ipa extension. (6) After that I was able to install and run MyTestApp.app properly on an iOS 15 device from macOS Monterey.

Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com

参考链接