1. 程式人生 > 其它 >關於直接下載第三方IPA應用分發平臺之蒲公英的研究

關於直接下載第三方IPA應用分發平臺之蒲公英的研究

目前基於第三方應用分發的平臺比較常用的就屬蒲公英、fir等,在我們提交到平臺後,我們可以通過掃描應用二維碼來下載,比如蒲公英平臺如下:

那麼以上是非常普通的一個操作過程,問題來了:如何直接在電腦端下載IPA安裝包呢,即不通過手機來下載安裝包直接安裝,我們想把IPA直接提取出來研究或分享。

常規模式:

1,通過瀏覽器除錯模式,切換到移動裝置,即可通過點選安裝來獲取下載連結,一般連結地址為:

<a href="itms-services://?action=download-manifest&url=https://www.xxx.com/app/plist/xxx.plist>下載安裝</a>
2,我們通過下載plist檔案,即:

https://www.xxx.com/app/plist/xxx.plist
直接就獲取到了IPA安裝包路徑,通過下載即可,一般xxx.plist檔案格式為:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://www.xxx.com/7874ef31e63f3f3370dddd24e94cfc37.ipa?auth_key=1626230327-e25af869b8124a8bdac5c02eb506182b-0-64e533dd9a7ecd74227843406302e6e4&amp;response-content-disposition=attachment%3Bfilename%3D%E6%98%93%E6%95%99%E6%95%99%E5%AD%A6%E5%8A%A9%E6%89%8B_2.3.0.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<false/>
<key>url</key>
<string>https://cdn-app-icon..com/c/f/f/9/b/cff9bdcd0fccc74fa7eb5fbd382f46c6?x-oss-process=image/resize,m_lfit,h_120,w_120/format,jpg</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<false/>
<key>url</key>
<string>https://cdn-app-icon.xxxx.com/c/f/f/9/b/cff9bdcd0fccc74fa7eb5fbd382f46c6?x-oss-process=image/resize,m_lfit,h_120,w_120/format,jpg</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.xxx</string>
<key>bundle-version</key>
<string>2.3.0</string>
<key>kind</key>
<string>software</string>
<key>subtitle</key>
<string>xxxx</string>
<key>title</key>
<string>xxxx</string>
</dict>
</dict>
</array>
</dict>
</plist>
其中software-package下的url即為IPA地址,直接下載即可,非常簡單,但是我們在獲取蒲公英的plist檔案後卻無法下載,注意,蒲公英需要用Safari瀏覽器開啟,並切換到 develop - User Agent - Safari iPhone 模式下。

點選安裝出現如下介面:

可見plist檔案地址為:

https%3A%2F%2Fwww.pgyer.com%2Fapp%2Fplist%2F0c3ab9242b3879832a39b797d6f0bd89%2Finstall%2F%2Fs.plist
通過urlDecode解碼後:http://tool.chinaz.com/tools/urlencode.aspx

https://www.pgyer.com/app/plist/0c3ab9242b3879832a39b797d6f0bd89/install//s.plist
下載此檔案得到介面:

至此,我們似乎無法獲取到具體IPA的下載地址了吧。

特殊模式:

1,藉助curl終端命令來解決此問題,通過研究得知在請求中需要加入代理引數,如下:

--user-agent "com.apple.appstored/1.0 iOS/14.3 model/iPhone10,2 hwp/t8015 build/18C66 (6; dt:158) AMS/1"
2,下載此plist檔案命令如下:

curl --user-agent "com.apple.appstored/1.0 iOS/14.3 model/iPhone10,2 hwp/t8015 build/18C66 (6; dt:158) AMS/1" https://www.pgyer.com/app/plist/0c3ab9242b3879832a39b797d6f0bd89/install//s.plist -o pgy.plist


4,開啟下載後的plist檔案,內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://oss.pgyer.com/9d6bfa2875d04273fcafa646d4715c7f.ipa?auth_key=1626245309-42ee54e8f5532f8d4ff14d3b5c4dec8c-0-53a53c8ecf489b455d72059394b97990&amp;response-content-disposition=attachment%3Bfilename%3D%E7%83%AD%E8%A1%80%E7%A5%9E%E9%80%94_1.0.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<false/>
<key>url</key>
<string>https://cdn-app-icon.pgyer.com/8/7/c/2/d/87c2df7983ec05dce6c538d5d6346304?x-oss-process=image/resize,m_lfit,h_120,w_120/format,jpg</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<false/>
<key>url</key>
<string>https://cdn-app-icon.pgyer.com/8/7/c/2/d/87c2df7983ec05dce6c538d5d6346304?x-oss-process=image/resize,m_lfit,h_120,w_120/format,jpg</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.yuetu.shentu.rexuest</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>subtitle</key>
<string>熱血神途</string>
<key>title</key>
<string>熱血神途</string>
</dict>
</dict>
</array>
</dict>
</plist>
5,至此安裝包地址就拿到了,然後直接下載即可,採用如下命令:

wget "https://oss.pgyer.com/9d6bfa2875d04273fcafa646d4715c7f.ipa?auth_key=1626245309-42ee54e8f5532f8d4ff14d3b5c4dec8c-0-53a53c8ecf489b455d72059394b97990&amp;response-content-disposition=attachment%3Bfilename%3D%E7%83%AD%E8%A1%80%E7%A5%9E%E9%80%94_1.0.ipa"


至此,就解決了蒲公英這種特殊情況。

另外,如果想一步到位獲取到ipa下載地址,可以執行如下命令:

curl --user-agent 'com.apple.appstored/1.0 iOS/14.3 model/iPhone10,2 hwp/t8015 build/18C66 (6; dt:158) AMS/1' https://www.pgyer.com/app/plist/0c3ab9242b3879832a39b797d6f0bd89/install//s.plist -s | grep "oss.pgyer.com" | sed 's#</string># #g' | sed 's#<string># #g' | awk '{print $1}'
或儲存到一個txt檔案,命令如下:

curl --user-agent 'com.apple.appstored/1.0 iOS/14.3 model/iPhone10,2 hwp/t8015 build/18C66 (6; dt:158) AMS/1' https://www.pgyer.com/app/plist/0c3ab9242b3879832a39b797d6f0bd89/install//s.plist -s | grep "oss.pgyer.com" | sed 's#</string># #g' | sed 's#<string># #g' | awk '{print $1}' > d.txt

安裝IPA檔案

1,通過iFunbox下載安裝,下載地址:http://dl.i-funbox.com/cn/

2,通過Xcode安裝,下載地址:https://developer.apple.com/cn/xcode/resources/

3,通過風車安裝,下載地址:https://www.fengchetech.cn/

備註:以上內容僅供技術學習參考,請勿用於違法行為,請依規操作第三方平臺功能流程。