![](/img/trans.png)
[英]Building iPhone Code using xcodebuild and running LLVM/Clang Static Analyzer
[英]iPhone Static Code Analyzer
iPhone開發人員社區之間的共識是,蘋果公司最近開始使用靜態代碼分析工具來檢測未記錄的API調用的使用。
僅出於參數考慮,我想知道是否有可能通過在運行時生成如下調用來解決此工具:
NSString *const aMethod = @"doStuff:withStuff:";
SEL aSelector = NSSelectorFromString(aMethod);
NSMethodSignature *aSignature = [targetObject methodSignatureForSelector:aSelector];
NSInvokation *anInvokation = [NSInvokation invocationWithMethodSignature:aSignature];
[anInvokation setTarget:targetObject];
[anInvokation setSelector:aSelector];
[anInvokation setArgument:&firstArg atIndex:2];
[anInvokation setArgument:&secondArg atIndex:3];
[anInvokation invoke];
這似乎太容易了,所以我想知道-我想念什么? Apple如何使用程序集上的靜態代碼分析來檢測到這一點?
要點:
為什么要在意呢? 您不應有充分的理由使用私有API:Apple隨時可能輕易破壞您的應用程序,使您的用戶不安。
也就是說,使用NSInvocation,-performSelector:或任何其他類似的技術可能足以避免被靜態分析器檢測到。
有一種簡單的方法可以找出答案!
通過您問題中的方法制作一個故意使用隱藏api的應用,並查看是否被接受!
山姆
PS:如果您確實找到了,請確保您告訴我們; 我們都想肯定知道,Apple肯定不會告訴我們!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.