2017-04-17 51 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和那麼我可以提交我的應用程序。