iOS查找私有API的方法示例
喜接新項(xiàng)目往往預(yù)示的會(huì)出一堆問題。解決問題的同時(shí)往往也就是學(xué)到更多東西的時(shí)候,這也許就是學(xué)習(xí)到新東西最直接最快速的方法吧!
小編經(jīng)過努力,新項(xiàng)目終于過測(cè)試了,可是被蘋果大大給拒了,好苦啊,最近的審核真的是沒有誰(shuí)了。這回被拒是因?yàn)轫?xiàng)目中存在私有api,下圖為被拒信息。
這就坑了啊,這么大一個(gè)項(xiàng)目,我如何定位呢?
如果是代碼里面運(yùn)用到私有api,那就簡(jiǎn)單了,直接 command+Shift+F
,就可以定位了! prefs:root=
就是原來代碼里面的,小編找到后果斷刪除了!
最麻煩的就是在第三方SDK中的私有api( com.apple.springboard.lockcomplete
),實(shí)在不知道如何定位了。在被拒消息中也提示了我們?nèi)绾味ㄎ唬俣?Google走一波,學(xué)習(xí)了一下,隨便寫個(gè)筆記。好記性不如爛筆頭嘛!
方法1:strings檢測(cè)
這個(gè)方法是我在被拒信息中看到的蘋果大大建議的方法,步驟如下:
1、獲取release的ipa包,打包是選擇的方式為:App Store
2、將 .ipa 修改為 .zip,減壓,獲取到兩個(gè)文件夾Payload、Symbols
3、打開命令行,cd 到 Payload 里面的 app,然后使用 strings 命令進(jìn)行查找
strings - -a -arch armv7 "工程名" | grep com.apple.springboard.lockcomplete
還有一種命令,直接生成一個(gè) txt 文件。
strings - -a -arch armv7 "工程名" > /Users/admin/Desktop/strings.txt
運(yùn)行后會(huì)在桌面上出現(xiàn)一個(gè) strings.txt
文件,文件的路徑和名字隨個(gè)人開發(fā)習(xí)慣
兩種命令獲取方式都沒有定位到具體位置,只是告訴我們存在這個(gè)私有api
方法2:otool工具(xcode自帶,可以直接在終端中使用)
前兩步同方法1
terminal中 cd 到 Payload 里面的 app
然后使用如下命令
otool -L appName
這個(gè)命令會(huì)列出你所有使用的系統(tǒng)庫(kù),檢查一下給出的列表中有沒有私有api的庫(kù)
如果對(duì)命令不熟悉還可以使用
otool -help
去查看命令幫助文檔
方法3:全局搜索(建議使用)
這個(gè)方法是我認(rèn)為最直接最有效的方法!
1、 cd 到你的工程目錄
2、使用全局搜索命令(注意最后要加一個(gè)點(diǎn))
grep -r lockcomplete .
這個(gè)方法直接定位到這個(gè)私有api出現(xiàn)在 AmazonFling.framework
中。
到這里,解決上述第三方庫(kù)的私有API的問題,就是直接替換掉新的SDK,當(dāng)然如果新的第三方庫(kù)也有私有API的話,那就只能舍棄了,否則基本無(wú)解。
小編比較幸運(yùn),直接更換最新的 AmazonFling.framework
后,就消除了私有api( com.apple.springboard.lockcomplete
)。在發(fā)版前,使用這兩個(gè)方法都進(jìn)行了驗(yàn)證,私有api不存在了!:smile:
參考資料:
https://www.jianshu.com/p/921a8b2315ce
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
iOS在固定的label上動(dòng)態(tài)顯示所有文字
這篇文章給大家主要介紹了iOS中如何實(shí)現(xiàn),在固定的label上動(dòng)態(tài)顯示所有文字的方法,文中給出了示例和思路,對(duì)大家的理解很有幫助,感興趣的朋友們下面來一起看看吧。2016-10-10iOS實(shí)現(xiàn)抖音點(diǎn)贊動(dòng)畫效果
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)抖音點(diǎn)贊動(dòng)畫效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01Objective-C中字符串NSString的常用操作方法總結(jié)
這篇文章主要介紹了Objective-C中字符串NSString的常用操作方法總結(jié),Objective-C中NSString和NSMutableString這兩個(gè)類下包含了操作字符串的大多數(shù)方法,需要的朋友可以參考下2016-04-04iOS 11 使用兩種方法替換(Method Swizzling)去掉導(dǎo)航欄返回按鈕的文字
這篇文章主要介紹了iOS 11 使用方法替換(Method Swizzling)去掉導(dǎo)航欄返回按鈕的文字,需要的朋友可以參考下2018-05-05UITextView實(shí)現(xiàn)只允許鏈接交互不允許選擇圖片的方法
這篇文章主要介紹了UITextView實(shí)現(xiàn)只允許鏈接交互不允許選擇圖片的方法,文中介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-03-03iOS開發(fā)教程之識(shí)別圖片中二維碼功能的實(shí)現(xiàn)
長(zhǎng)按識(shí)別二維碼這個(gè)功能相信對(duì)大家來說都不陌生,最近工作中就遇到了這個(gè)需求,所以下面這篇文章主要給大家介紹了關(guān)于利用iOS識(shí)別圖片中二維碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07iOS實(shí)現(xiàn)無(wú)限循環(huán)輪播圖效果
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)無(wú)限循環(huán)輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07