关于直接下载第三方IPA应用分发平台之蒲公英的研究

摘要:
目前基于第三方应用分发的平台比较常用的就属蒲公英、fir等,在我们提交到平台后,我们可以通过扫描应用二维码来下载,比如蒲公英平台如下:那么以上是非常普通的一个操作过程,问题来了:如何直接在电脑端下载IPA安装包呢,即不通过手机来下载安装包直接安装,我们想把IPA直接提取出来研究或分享。

目前基于第三方应用分发的平台比较常用的就属蒲公英、fir等,在我们提交到平台后,我们可以通过扫描应用二维码来下载,比如蒲公英平台如下:

关于直接下载第三方IPA应用分发平台之蒲公英的研究第1张

那么以上是非常普通的一个操作过程,问题来了:如何直接在电脑端下载IPA安装包呢,即不通过手机来下载安装包直接安装,我们想把IPA直接提取出来研究或分享。

常规模式:

1,通过浏览器调试模式,切换到移动设备,即可通过点击安装来获取下载链接,一般链接地址为:

<a href="http://t.zoukankan.com/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/

关于直接下载第三方IPA应用分发平台之蒲公英的研究第2张

2,通过Xcode安装,下载地址:https://developer.apple.com/cn/xcode/resources/

关于直接下载第三方IPA应用分发平台之蒲公英的研究第3张

3,通过风车安装,下载地址:https://www.fengchetech.cn/

关于直接下载第三方IPA应用分发平台之蒲公英的研究第4张

备注:以上内容仅供技术学习参考,请勿用于违法行为,请依规操作第三方平台功能流程。

免责声明:文章转载自《关于直接下载第三方IPA应用分发平台之蒲公英的研究》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇oracle数据导出工具sqluldr2uniapp 之微信小程序中 radio 和checkbox颜色设置不起作用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android之Realm详解(非原创)

文章大纲 一、Realm介绍二、Realm实战三、Realm官方文档四、项目源码下载五、参考文章 一、Realm介绍 1. 什么是Realm   Realm 是一个手机数据库,是用来替代 SQlite 的解决方案,比 SQlite 更轻量级,速度更快,因为它有一套自己的数据库搜索引擎,并且还具有很多现代数据库的优点,支持 JSON,流式 API 调用,数...

前端加密MD5

今天接触了MD5加密方式,记录一下使用方法,又去搜了搜关于MD5的详细内容   MD5在vue中使用方法 1、下载MD5模块 cnpm install md5 -S 2、引入模块 const md5 = require("md5") 3、加密 const str = "12345"; console.log(md5(str)...

ElasticSearch 问题分析:No data nodes with HTTP-enabled available

环境:ES-5.4.0版本,部署方式:3master node+2client node+3data node 说明:data node和client node都配置了http.enabled: false,程序在写数据时报错:No data nodes with HTTP-enabled available 源码分析: 1 public static...

C# oracle 参数传递的多种方式 留着复习

ORA-01036 非法的变量名/编号,(解决) 博客分类:oracle SQL 下边的代码就会造成 ORA-01036 非法的变量名/编号 C#代码 cmd.CommandText="SELECT*FROMkk.kkyhWHEREid=@comboBox1andpassword=@textBox1"; cmd.Parameters.Add(...

Android 使用GPS定位获取经纬度的方法

移动 是手机与手持设备的最大特点,可以通过Eclipse的DDMS视图,模拟设备的位置变化,改变经纬度后,点击send,然后运行程序,在应用程序中,动态的获取设备位置,然后显示当前的位置信息。 获取位置信息分为三步: 1. 添加系统权限,来支持对LBS硬件的访问 < uses-permission android:name="android.perm...

SuperSocket 2.0 发布第一个预览版, 另寻找Yang Fan哥哥

昨天,SuperSocket的作者发布了2.0版本的第一个预览版。SuperSocket 2.0 是一个经过全新设计的,第一个完全基于.NET Core的版本。作者正在积极尝试提供更简单易用的API的同时,尽量保证与老版本相似的原汁原味的开发体验。新的版本中亦删除了一些不太重要并且已有更好的替代实现的功能,例如服务器宿主。 时隔三年之后再次发布新的版本,意...