2017-04-17 99 views
1

我刚收到一封电子邮件,从苹果公司指出我的iOS应用已遭到拒绝_terminateWithStatus的召唤。不幸的是,我不知道哪个框架可能成为这个呼叫的人。查找该框架使得私人API调用_terminateWithStatus

我能找到“terminateWithStatus”与在编译的可执行文件执行后续的“串”命令,所以我知道它的存在,但不知道如何找出哪些框架使得这一呼吁。

strings myapp | grep 'terminateWithStatus' 

我没有GHUnit框架,是为别人看到了同样的问题几年前的罪魁祸首 - 见Finding Private API Call _terminateWithStatus

这是otool显示:

$ otool -L myapp 
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.5.0) 
    /usr/lib/libsqlite3.dylib (compatibility version 9.0.0, current version 254.6.0) 
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8) 
    /System/Library/Frameworks/AVFoundation.framework/AVFoundation (compatibility version 1.0.0, current version 2.0.0) 
    /System/Library/Frameworks/AddressBook.framework/AddressBook (compatibility version 1.0.0, current version 30.0.0) 
    /System/Library/Frameworks/AssetsLibrary.framework/AssetsLibrary (compatibility version 1.0.0, current version 1.0.0) 
    /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox (compatibility version 1.0.0, current version 492.0.0) 
    /System/Library/Frameworks/CoreData.framework/CoreData (compatibility version 1.0.0, current version 754.2.0) 
    /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1349.55.0) 
    /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics (compatibility version 64.0.0, current version 1070.22.0) 
    /System/Library/Frameworks/CoreLocation.framework/CoreLocation (compatibility version 1.0.0, current version 2101.0.62) 
    /System/Library/Frameworks/CoreMedia.framework/CoreMedia (compatibility version 1.0.0, current version 1.0.0) 
    /System/Library/Frameworks/CoreMotion.framework/CoreMotion (compatibility version 1.0.0, current version 2101.0.62) 
    /System/Library/Frameworks/CoreTelephony.framework/CoreTelephony (compatibility version 1.0.0, current version 0.0.0) 
    /System/Library/Frameworks/CoreVideo.framework/CoreVideo (compatibility version 1.2.0, current version 1.5.0) 
    /System/Library/Frameworks/GLKit.framework/GLKit (compatibility version 1.0.0, current version 87.0.0) 
    /System/Library/Frameworks/MediaPlayer.framework/MediaPlayer (compatibility version 1.0.0, current version 1.0.0) 
    /System/Library/Frameworks/MessageUI.framework/MessageUI (compatibility version 1.0.0, current version 1.0.0) 
    /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices (compatibility version 1.0.0, current version 775.2.37) 
    /System/Library/Frameworks/OpenGLES.framework/OpenGLES (compatibility version 1.0.0, current version 1.0.0) 
    /System/Library/Frameworks/StoreKit.framework/StoreKit (compatibility version 1.0.0, current version 1.0.0) 
    /System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration (compatibility version 1.0.0, current version 888.50.20) 
    /System/Library/Frameworks/AdSupport.framework/AdSupport (compatibility version 1.0.0, current version 1.0.0) 
    /System/Library/Frameworks/JavaScriptCore.framework/JavaScriptCore (compatibility version 1.0.0, current version 603.1.30) 
    /System/Library/Frameworks/SafariServices.framework/SafariServices (compatibility version 1.0.0, current version 1.0.0) 
    /System/Library/Frameworks/WebKit.framework/WebKit (compatibility version 1.0.0, current version 603.1.30) 
    /System/Library/Frameworks/ImageIO.framework/ImageIO (compatibility version 1.0.0, current version 0.0.0) 
    /System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 3600.7.47) 
    /System/Library/Frameworks/Accelerate.framework/Accelerate (compatibility version 1.0.0, current version 4.0.0) 
    /System/Library/Frameworks/QuartzCore.framework/QuartzCore (compatibility version 1.2.0, current version 1.11.0) 
    /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5) 
    /System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1349.54.0) 
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) 
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.50.2) 
    /System/Library/Frameworks/CFNetwork.framework/CFNetwork (compatibility version 1.0.0, current version 811.4.18) 
    /System/Library/Frameworks/Security.framework/Security (compatibility version 1.0.0, current version 0.0.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和那么我可以提交我的应用程序。