iOS 獲取APP的ipa包并解析.car文件獲取完整內(nèi)資源文件

很多時(shí)候我們想要去模仿市場(chǎng)上的一些app,那就需要app里面的圖片資源,如何獲取呢?

這里以iOS的app為例。

首先mac電腦端下載一個(gè)軟件,在App Store搜索apple configurator 2


image.png

點(diǎn)擊下載,安裝成功之后打開(kāi),usb連接上手機(jī),如圖表示連接成功

image.png

接下來(lái)是點(diǎn)擊添加,然后選擇app


image.png

這個(gè)時(shí)候由于未登陸,點(diǎn)擊登陸


image.png

輸入密碼成功后,可以看到手機(jī)右上角有了紅色的泡泡,證明登陸成功


image.png

雙進(jìn)手機(jī)泡泡查看詳細(xì)信息,如下app處,查找到我們要下載的app,如圖是手機(jī)已經(jīng)安裝的,這個(gè)安裝和未安裝都不影響。

接下來(lái)進(jìn)入正題,依舊是添加選擇app,然后搜索需要的app,選中后,點(diǎn)擊添加


image.png

未安裝的先安裝一次,然后再重復(fù)上面的添加


image.png

彈出已存在的警告的時(shí)候,不要進(jìn)行任何操作,在本地去找ipa包文件,F(xiàn)inder-- 前往文件夾 – copy下面地址,路徑如下
~/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps/

或者文件夾直接前往~/Library/Group Containers/

image.png

改ipa文件后綴為.zip,然后解壓文件,右鍵,顯示包內(nèi)容,即可獲取到ipa包內(nèi)文件資源


image.png

選擇歸檔工具解壓縮


image.png

最后我們就能得到一個(gè)文件夾,點(diǎn)擊該文件夾,選擇Payload文件,然后我們會(huì)看到如下的文件


image.png

右鍵顯示包內(nèi)容


image.png
image.png

進(jìn)入到資源文件文件夾中,另我大失所望的是居然沒(méi)有我想要的所有圖片資源,只要很少的一些,比如logo和引導(dǎo)頁(yè)面的圖片,但是我卻發(fā)現(xiàn)了一個(gè)我們經(jīng)常用的,那就是Assets.xcassets打包后生成的Assets.car文件,由于蘋(píng)果公司不提供直接查看Assets.car的工具,所以查了下資料,很快就找到了cartool這么一個(gè)工具

通過(guò)cartool工具,我們便能解析出圖片資源
下載方法:通過(guò)終端
git clone https://github.com/steventroughtonsmith/cartool

image.png

xcode -》file -〉open。將下載下來(lái)的工程打開(kāi),大概就是這樣


image.png

打開(kāi)該工程后,就進(jìn)入最重要的一步了,通過(guò)下面的步驟
product–>scheme–>edit scheme

image.png
image.png
image.png

運(yùn)行xcode發(fā)現(xiàn)路徑存在空格,無(wú)法成功編譯。

image.png

這個(gè)項(xiàng)目是五年前的,基本沒(méi)人維護(hù),而且是xcode8。自己修復(fù)也不懂。如有了解的希望不吝告知。

那么只能換一個(gè)工具來(lái)解析car文件了,在cartool的issue發(fā)現(xiàn)有人提到了另一個(gè)工具:
Swift5: https://github.com/iHTCboy/acextract

同樣是git clone https://github.com/iHTCboy/acextract
然后xcode打開(kāi),首先同樣的是指定要解析的car文件,以及輸出的文件目錄了

image.png

image.png

運(yùn)行,發(fā)現(xiàn)又出錯(cuò)了??


image.png

查看信息是說(shuō)缺少文件,


image.png

點(diǎn)擊左側(cè)文件夾,正常情況下圖中缺少的文件本來(lái)是紅色的,或者沒(méi)有對(duì)應(yīng)的文件夾,圖為我已經(jīng)添加之后的情況。
image.png

如果缺少文件,那么進(jìn)入文件夾,之后發(fā)現(xiàn)無(wú)法添加文件?
用touch命令吧

cd /Users/zby0520/myApp/acextract/CommandLine/CommandLine 
touch Option.swift
touch CommandLineTool.swift
touch StringExtensions.swift
touch Info.plist

文件照搬https://github.com/iHTCboy/CommandLine/tree/b8209dc17ac1dd0f97ebfbd6a77a0633552626ca/CommandLine里面的即可

再次build發(fā)現(xiàn)不報(bào)錯(cuò)了,解析成功。


image.png

打開(kāi)輸出目錄,發(fā)現(xiàn)已成功輸出


image.png

接下來(lái)終于可以愉快的敲代碼了。

以上教程不針對(duì)任何app,僅限用于學(xué)習(xí),大家自覺(jué)遵守法律道德,不要干壞事哈。

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

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

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