【潮汐】iOS App Store使用私有API被拒接收錄,持續(xù)更新中

一、被拒接郵件

準則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”命令行工具搜索編譯后的二進制文件?!皊trings”工具可以輸出庫調(diào)用的方法列表,“otool -ov”將輸出Objective-C類結構及其定義的方法。這些工具可以幫助您縮小問題代碼所在的范圍。您還可以使用“nm”工具來驗證是否有第三方庫調(diào)用這些api。

資源

如果無法提供應用程序所需的功能,可以提交增強請求。

二、私有庫被拒接解決方案

iOS私有API檢測

蘋果推薦用郵件中提及,可以通過strings、otool、nm等命令行工具來定位調(diào)用私有API的第三方類,下面來簡單總結一下幾種工具的用法。

1、preg檢測

在終端:
(1)cd 項目目錄下

//比如蘋果檢測出來的私有庫是:UIStatusBarStringView,那就用下面方法檢查,會列出私有庫所在類下面。
(2)grep UIStatusBarStringView -r .

上面(2)命令會查找根目錄以及多級目錄以下的所有文件,包括.framework和.a庫,找到匹配結果的話,會打印出來。
-r參數(shù)表示會遍歷多級目錄下的文件。
注意:-r和.之間有個空格

2、otool Xcode自帶工具

(1)工程中獲取Unix執(zhí)行文件
a、在Xcode文件樹中搜索“.app”
b、找到對應文件,右鍵“Show in Finder”
c、選中.app文件,右鍵“顯示包內(nèi)容”
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出現(xiàn)在 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、



iOS-private-api-checker-master三方工具檢測方法:http://www.itdecent.cn/p/fcdbf6280557

--------最后更新于2018年12月24日

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 旅行對于我的意義,無非換一個地方過原來的生活——題記 北方,燕趙大地,我曾經(jīng)生活過四年。離開后,十二年,未曾涉足。...
    北小介閱讀 523評論 0 4
  • 八月二號,十點二十二分,此時此刻的我坐在客廳沙發(fā)上,抱著手機碼字,剛剛交了七月份的總結,現(xiàn)在該寫八月份的計劃了,通...
    孝笑媽咪閱讀 381評論 1 0
  • 在世界的最深處存在著這樣一群人,他們游走在世俗的邊緣,他們從不見陽光,他們所作所為只問利益不言其他,他們的名字叫夜...
    瑾遙閱讀 332評論 0 1

友情鏈接更多精彩內(nèi)容