一催植、被拒接郵件
準則2.5.1 -性能-軟件需求
您的應用程序使用或引用以下非公共api:
[UIApplication statusBar]苫亦, [UIApplication statusBarWindow], [UITextField _clearButton], [WKWebView browsingContextController], __NSArrayI, __NSArrayM劲腿, __NSCFConstantString, __NSCFString鸟妙, __nsnsdictionarym焦人, __NSPlaceholderArray挥吵, __NSSingleObjectArrayI, _UIStatusBarStringView垃瞧, _UIStatusBarWifiSignalView, LSApplicationWorkspace, ns具結屬性tedstring, ns具結屬性tedstring, UIScrollViewPanGestureRecognizer, UIStatusBarDataNetworkItemView
應用程序商店不允許使用非公共api蔫劣,因為如果這些api發(fā)生變化,可能會導致糟糕的用戶體驗个从。
在未來提交本應用時脉幢,繼續(xù)使用或隱藏非公開api可能會導致您的蘋果開發(fā)者賬號被終止,并從app Store中刪除所有相關應用嗦锐。
下一個步驟
如果您正在使用第三方庫嫌松,請更新到這些庫的最新版本。如果無法訪問庫的源代碼奕污,則可以使用“string”或“otool”命令行工具搜索編譯后的二進制文件萎羔。“strings”工具可以輸出庫調用的方法列表碳默,“otool -ov”將輸出Objective-C類結構及其定義的方法贾陷。這些工具可以幫助您縮小問題代碼所在的范圍。您還可以使用“nm”工具來驗證是否有第三方庫調用這些api嘱根。
資源
如果無法提供應用程序所需的功能髓废,可以提交增強請求。
二该抒、私有庫被拒接解決方案
iOS私有API檢測
蘋果推薦用郵件中提及慌洪,可以通過strings、otool凑保、nm等命令行工具來定位調用私有API的第三方類冈爹,下面來簡單總結一下幾種工具的用法。
1欧引、preg檢測
在終端:
(1)cd 項目目錄下
//比如蘋果檢測出來的私有庫是:UIStatusBarStringView频伤,那就用下面方法檢查,會列出私有庫所在類下面芝此。
(2)grep UIStatusBarStringView -r .
上面(2)命令會查找根目錄以及多級目錄以下的所有文件剂买,包括.framework和.a庫,找到匹配結果的話癌蓖,會打印出來。
-r參數表示會遍歷多級目錄下的文件婚肆。
注意:-r和.之間有個空格
2租副、otool Xcode自帶工具
(1)工程中獲取Unix執(zhí)行文件
a、在Xcode文件樹中搜索“.app”
b较性、找到對應文件用僧,右鍵“Show in Finder”
c结胀、選中.app文件,右鍵“顯示包內容”
d责循、下拉可找到一個跟app名字一致的Unix執(zhí)行文件糟港,【這個文件是黑的的,名字就是APP的中文名字】
(2)在終端命令執(zhí)行
otool -L (Unix可執(zhí)行文件的路徑院仿,直接拖入文件到終端)
12秸抚、libGDTMobSDK廣點通私有庫(已刪除)
Binary file ./YueZhuan/Resource/3rd/DKAdSetSDK_1.4.3_171114/DKADSetLibs/GDT_iOS_SDK_4.6.4_171031/lib/libGDTMobSDK.a matches
3、全局搜索(建議使用)
這個方法是我認為最直接最有效的方法歹垫!
1剥汤、 cd 到你的工程目錄
比如要檢測私有庫:AmazonFling.framework
2、使用全局搜索命令(注意最后要加一個點):
grep -r lockcomplete .
這個方法直接定位到這個私有api出現在 AmazonFling.framework 中排惨。
到這里吭敢,解決上述第三方庫的私有API的問題,就是直接替換掉新的SDK暮芭,當然如果新的第三方庫也有私有API的話鹿驼,那就只能舍棄了,否則基本無解辕宏。
4畜晰、strings檢測
(1)首先你有個可以提交審核的ipa,就是需要提交到蘋果審核的包匾效,不是測試的release
(2)將ipa重命名為zip格式舷蟀,也可以直接使用解壓工具解壓, 如果有兩個文件夾Payload、Symbols面哼,就OK
(3)cd到Payload里面的app
(4)命令如下:canOpenUrl為你要搜索的私有API.
strings - -a -arch armv7 "全民頭條" | grep canOpenUrl
三野宜、蘋果私有API收錄--持續(xù)更新中
1、LSApplicationWorkspace
2魔策、UIScrollViewPanGestureRecognizer
3匈子、[WKWebView browsingContextController]
4、__NSArrayI闯袒, __NSArrayM虎敦,
__NSCFConstantString,__NSCFString政敢,
__NSDictionaryM其徙, __NSPlaceholderArray,
__NSSingleObjectArrayI __NSCFBoolean (AvoidCrash防崩潰三方庫不能再使用)
5喷户、_UIStatusBarStringView
6唾那、_UIStatusBarWifiSignalView
7、UIStatusBarDataNetworkItemView
8褪尝、[UIApplication statusBar]
9闹获、 [UIApplication statusBarWindow]
10期犬、 [UITextField _clearButton] (已完成)
11、NSConcreteAttributedString
12避诽、
目前還沒有通過審核龟虎,后續(xù)更新-----