APP在iOS12以上版本出現(xiàn)閃退 Unrecoverable CT signature issue, bailing out
2019-06-29
本片文字重點介紹解決問題思路和一個Mac自帶的Console神器使用
問題描述
最近在使用Fastlane+Jenkins+Xcode10.1.1+二維碼平臺打出IPA包,掃碼下載安裝后出現(xiàn),APP在點擊啟動時會出現(xiàn)在啟動頁面閃退的問題。但是,但是我在xcode運行真機(jī)安裝或者xcode直接打包出的IPA安裝運行都是一切正常的。
于是開始想辦法查找APP崩潰日志看啊,就有了下面:
1. 工程接入騰訊的bugly。(⊙v⊙)嗯!? 無法統(tǒng)計到Crash日志。
分析原因:可能是因為在App還沒啟動完成就崩潰了,所以統(tǒng)計不到日志
2. 發(fā)生崩潰的IPA包安裝到手機(jī)之后,通過Xcode -> Window -> Devices and Simulators -> View Device Logs獲取手機(jī)的崩潰日志。然而,竟然仍沒有崩潰日志???
直接用xcode打包一切正常,Jenkins打包出的IPA就會崩潰,并且還沒有手機(jī)crash日志記錄。。。
瞬間懵逼???為啥?????

問題解決經(jīng)歷
沒有crash日志無從下手啊,于是就有了下面一系列的排查:
- 工程里面所有的警告??,以及日志打印
- Jenkins打包腳本
- Jenkins配置
- 證書是否是對應(yīng)的證書。
- 服務(wù)器macOS環(huán)境
- xcode環(huán)境
- 。。。
期間又試試了一下其他之前在Jenkins打包正常的項目,再次進(jìn)行Jenkins打包安裝,竟然也崩潰了?。??
各種Google、各種度娘、依然無解。
這個問題困擾了我好多天。。

直到有天我遇到了……
高能預(yù)警?。?!高能預(yù)警?。?!高能預(yù)警!??!
高潮來了
在xcode中有一個控制臺的工具,該工具不僅能實時獲取mac的運行日志,也能獲取到mac上鏈接的iPhone設(shè)備的運行日志.
xcode的就有入口:Xcode -> Window -> Devices and Simulators -> Open Console

進(jìn)入后選擇你的需要運行的iPhone設(shè)備,就能在右邊看到iPhone的實時運行日志。
由于日志比較多,也可以進(jìn)行日志的篩選,過濾關(guān)鍵字bundleID:

終于!?。?/p>
我拿到了在改iPhone上APP崩潰的日志
AMFI: '/private/var/containers/Bundle/Application/FBD9A64A-9F21-4004-AB57-2A68EF667BAD/xxx.app/xxx' does not pass CT evaluation, result: 0x80008
AMFI: '/private/var/containers/Bundle/Application/FBD9A64A-9F21-4004-AB57-2A68EF667BAD/xxx.app/xxx': Unrecoverable CT signature issue, bailing out.
淚流滿面啊,終于拿到了!?。?/p>
Console果然是黃金神器,相見恨晚!!
經(jīng)過Google終于找到解決方案:
在iOS12下,iOS應(yīng)用程序?qū)⒉辉僭谠O(shè)備上運行:無法恢復(fù)的CT簽名問題
有以下文章
- Apple Developer Forums
- stackoverflow-iOS app won't run on device any more under iOS 12: Unrecoverable CT signature issue
- 開發(fā)問題記錄(二)
原來是證書設(shè)置問題,Jenkins打包服務(wù)器上企業(yè)證書設(shè)置不能是始終信任,應(yīng)該是使用系統(tǒng)默認(rèn)設(shè)置。iOS11及以下是OK的,應(yīng)該是iOS12蘋果調(diào)整了策略所以不可以了。
我修改了下后,再次Jenkins打出IPA包,真的OK了耶,運行正常!
回顧
回顧整個問題解決的歷程,主要是卡在無法獲取到crash日志信息無從下手,發(fā)現(xiàn)了控制臺工具后,拿到crash日志問題就有了入手點,很好解決了。
論善用工具的重要性! 蘋果爸爸已經(jīng)提供給我們了這么好的神器Console,只是我們一直不知道如何使用。
在文章 開發(fā)問題記錄(二)中,作者遇到的問題和我一樣,他提到了另外一個工具,也是實時獲取到日志信息的,但是蘋果爸爸已經(jīng)給我們預(yù)備好了這么好的神器了,為什么還要用第三方的呢。
總結(jié)
解決問題思路很重要!找到合適的工具也同樣很重要!