查找哪个框架使私有API调用_terminateWithStatus

时间:2017-04-17 19:54:38

标签: iphone xcode iphone-privateapi

我刚刚收到Apple发来的一封电子邮件,声称我的iOS应用程序因_terminateWithStatus的调用而被拒绝。不幸的是,我不知道哪个框架可能正在进行此调用。

我可以找到" terminateWithStatus"跟随"字符串"在已编译的可执行文件上执行的命令,所以我知道它存在,但不知道如何确定哪个框架进行该调用。

perl=TRUE

我没有GHUnit框架,这是几年前其他人看到相同问题的罪魁祸首 - 见Finding Private API Call _terminateWithStatus

这就是otool所显示的:

strings myapp | grep 'terminateWithStatus'

任何人都知道如何确定哪个框架可能是那个打电话的人?

由于

1 个答案:

答案 0 :(得分:0)

我想我会回答我自己的问题。 事实证明,GoogleToolboxForMax框架有_terminateWithStatus调用,我通过cocoapods /

安装

我通过运行

来解决这个问题
$ grep -rn "terminateWithStatus" *
Pods/GoogleToolboxForMac/UnitTesting/GTMIPhoneUnitTestDelegate.m:34:- (void)_terminateWithStatus:(int)status;
Pods/GoogleToolboxForMac/UnitTesting/GTMIPhoneUnitTestDelegate.m:115:      = [UIApplication instanceMethodSignatureForSelector:@selector(_terminateWithStatus:)];
Pods/GoogleToolboxForMac/UnitTesting/GTMIPhoneUnitTestDelegate.m:120:      [terminateInvocation setSelector:@selector(_terminateWithStatus:)];

我已将此方法和所有引用_terminateWithStatus修改为_terminateWithStatusModified,然后我可以提交我的应用。