使用monkeydev 通过Xcode 运行咂壳后的ipa 遇到崩溃问题总结
错误一
第一种报错情况
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进行了数据共享,创建共享对象时崩溃了。即下面的函数:
[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"aa"];
为什么崩溃呢,因为参数传的值与xcode中设置的不同。
解决:
Xcode中,signing &Capabilities --> +Capability --> App Groups
输入container id, 随便输入一个,要与原app中传递的不同,不然证书过不了。
记录下输入的container id, hook崩溃的函数,把刚输入的container id 传给函数。 如下图:
错误二
*** 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 上面的崩溃的函数,把刚设置的Container值传给函数,就不崩溃了。如下图
错误三
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中的对不上.
解决思路同上。但我没有hook到原ipa内用的group id.
作者:生命不止运动不息
链接:https://www.jianshu.com/p/72d1b39c6b62
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。