iOS查找私有API的方法示例
喜接新項(xiàng)目往往預(yù)示的會(huì)出一堆問題。解決問題的同時(shí)往往也就是學(xué)到更多東西的時(shí)候,這也許就是學(xué)習(xí)到新東西最直接最快速的方法吧!
小編經(jīng)過努力,新項(xiàng)目終于過測(cè)試了,可是被蘋果大大給拒了,好苦啊,最近的審核真的是沒有誰了。這回被拒是因?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的話,那就只能舍棄了,否則基本無解。
小編比較幸運(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í)有所幫助,也希望大家多多支持我們。
上一篇:iOS實(shí)現(xiàn)秒殺活動(dòng)倒計(jì)時(shí)
欄 目:IOS
下一篇:iOS 通用鏈接(Universal Link)配置詳解
本文標(biāo)題:iOS查找私有API的方法示例
本文地址:http://mengdiqiu.com.cn/a1/IOS/11862.html
您可能感興趣的文章
- 01-11iOS常用算法之兩個(gè)有序數(shù)組合并(要求時(shí)間復(fù)雜度為0(n))
- 01-11iOS 彈幕功能的實(shí)現(xiàn)思路圖解
- 01-11iOS調(diào)試Block引用對(duì)象無法被釋放的小技巧分享
- 01-11iOS動(dòng)態(tài)更換Icon的全過程記錄
- 01-11iOS實(shí)現(xiàn)文本分頁(yè)的方法示例
- 01-11iOS常見宏理解及使用方法
- 01-11iOs遷至WKWebView跨過的一些坑
- 01-11iOS模擬中獎(jiǎng)名單循環(huán)滾動(dòng)效果
- 01-11Python一鍵查找iOS項(xiàng)目中未使用的圖片、音頻、視頻資源
- 01-11iOS中如何獲取某個(gè)視圖的截圖詳析


閱讀排行
- 1C語言 while語句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-11UILabel顯示定時(shí)器文本跳動(dòng)問題的解決
- 01-11iOS常用算法之兩個(gè)有序數(shù)組合并(要
- 01-11iOS 彈幕功能的實(shí)現(xiàn)思路圖解
- 01-11詳解MacOs免密登錄CentOs操作步驟
- 01-11iOS動(dòng)態(tài)更換Icon的全過程記錄
- 01-11iOS調(diào)試Block引用對(duì)象無法被釋放的小技
- 01-11iOS常見宏理解及使用方法
- 01-11iOS實(shí)現(xiàn)文本分頁(yè)的方法示例
- 01-11iOs遷至WKWebView跨過的一些坑
- 01-11iOS模擬中獎(jiǎng)名單循環(huán)滾動(dòng)效果
隨機(jī)閱讀
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 04-02jquery與jsp,用jquery
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什