使用monkeydev 通過Xcode 運行咂殼后的ipa 遇到崩潰問題總結(jié)
錯誤一
第一種報錯情況
2016-03-13 12:59:02.155 TodayWidget[10942:1456153] Failed to inherit CoreMedia permissions from 5079: (null) 2016-03-13 12:59:02.336 TodayWidget[10942:1456112] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot create an SQL store with a nil URL.'
第二種報錯情況
container_create_or_lookup_app_group_path_by_app_group_identifier: client is not entitled
原因
這個是因為兼蜈,app里使用了widget小組件臭胜,然后小組件和app進行了數(shù)據(jù)共享,創(chuàng)建共享對象時崩潰了墓阀。即下面的函數(shù):
[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"aa"];
為什么崩潰呢荡灾,因為參數(shù)傳的值與xcode中設(shè)置的不同瓤狐。
解決:
Xcode中,signing &Capabilities --> +Capability --> App Groups
輸入container id, 隨便輸入一個卧晓,要與原app中傳遞的不同芬首,不然證書過不了。
記錄下輸入的container id逼裆, hook崩潰的函數(shù)郁稍,把剛輸入的container id 傳給函數(shù)。 如下圖:
錯誤二
*** Terminating app due to uncaught exception 'CKException', reason: 'The application is missing required entitlement com.apple.developer.icloud-services'
原因:
[CKContainer containerWithIdentifier:@"iCloud.com.identifier"]
這個代碼返回的是空值胜宇,但此代碼禁止返回nil, 所以崩潰
解決:
Xcode中耀怜,signing &Capabilities --> +Capability --> iCloud
勾上key-Value storage 、iCloud Documents 桐愉、 CloudKit
輸入Containers 财破,值iCloud開頭,如:iCloud.com.hello
然后再代碼中,hook 上面的崩潰的函數(shù)从诲,把剛設(shè)置的Container值傳給函數(shù)左痢,就不崩潰了。如下圖
錯誤三
NordVPN/AppCore.swift:75: Fatal error: Something went wrong when accessing keychain
2022-03-06 07:36:39.160658+0800 NordVPN[13677:2795252] NordVPN/AppCore.swift:75: Fatal error: Something went wrong when accessing keychain
原因:
此App使用了 keychain sharing 系洛,由于group中的bundle identify 和app中的對不上.