最近因为一些问题(怀疑是隐藏三方支付),导致项目被AppStore下架了,在申诉的这段时间,需要搞一个企业签为公司挽回一部分损失。
主要的原理就是使用itms-services协议让用户自动安装APP。
在开始之前先要准备好三个文件的地址:
我们使用的是阿里云的服务器
- 先把App的图标传到服务器上,拿到图片的url
- 再把打包好的已经签名的App.ipa上传到服务器,拿到url
- 配置Plist文件
- 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>
<!-- http或者https链接的ipa文件地址 -->
<string>https://ad.infoxgame.com/YinHuOA-H5/app/ios/yh.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<!-- http或者https链接的图片地址,可直接使用app对应的icon(分辨率没强制要求) -->
<string>https://ad.infoxgame.com/YinHuOA-H5/images/logo_im.png</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<!-- http或者https链接的小图片地址,可直接使用app对应的icon(分辨率没强制要求) -->
<string>https://ad.infoxgame.com/YinHuOA-H5/images/logo_im.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<!-- BundleID,就是新建app时的包名 -->
<string>com.cainiao.wnst</string>
<key>bundle-version</key>
<!-- 版本号 -->
<string>1.0.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<!-- 安装app时的提示信息 -->
<string>App 正在安装中…(也可以提示App的名字)</string>
</dict>
</dict>
</array>
</dict>
</plist>
-
plist文件中不要有中文,配置好后最好把备注也删除掉(这个是在网上看到的,自己没有去尝试)
- 将配置好的plist文件传到服务器上,拿到url
- 制作下载按钮响应链接
格式说明:
- 链接以itms-services://?action=download-
&url= 开头
- 拼接plist文件的地址,一定要是https协议的网址
*形如:itms-services://?action=download-manifest&url=https://xxx.xxx.com/apps/.plist
-
记得修改plist文件名,manifest前后名字不一致可能导致不好使,我没做过多尝试,不信的同学可以自己尝试一下
结语:
- 自己测试的时候直接使用【itms-services://....】在自带浏览器Safari中尝试访问
- 在我们内部直接使用【itms-services://....】测试时,大概有30%的手机都无法正常安装
- 前端同学尝试把【itms-services://....】放到一个.html的一个按钮里面再次尝试,所有机型安装成功
- ipa包下载的速度,取决于你存放ipa的服务器
网友评论