ipa 文件存在哪可以实现在线安装?

311 天前
 brwzsy0733

苹果文件安装包,不管我存在网盘还是 FTP 服务器,它都是提示“下载” , 怎么让文件地址用 Safari 打开就是在线安装文件呢?

2663 次点击
所在节点    Apple
20 条回复
estk
311 天前
又不是安卓,想多了
Wudilalala
311 天前
alist 呀
ybz
311 天前
如果你的 ipa 已经砸壳,重签。那么可以上传蒲公英安装。
yekern
311 天前
存蒲公英
brwzsy0733
311 天前
@Wudilalala alist 试过了,不行。。。。
bsulike
311 天前
蓝奏云也可以,但是有文件大小的限制
cat
311 天前
加个 plist 文件就行,之前有人发过,研究了一下,挺简单的
ijasonme
311 天前
试试一些内测分发平台?
kkeybbs
311 天前
企业证书签名,然后 plist
ETiV
311 天前
企业证书+1
Apple 官网有介绍具体怎么实现
bao3
310 天前
借楼问一下,个人开发者证书签名过,对方的设备 UDID 也加在名单里,那可以让对方直接在线安装嘛
wliansheng
310 天前
我司用的是 plist
hohoho
310 天前
@bao3 可以。

1 、提供一个网页,网页上的下载是一个链接,类似:itms-services://?action=download-manifest&url=https://your.web.com/YourApp.plist

注意:plist 文件必须是 https

2 、plist 里的内容:

```xml
<?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>http://your.web.com/YourApp.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.YourApp.BundleId</string>
<key>bundle-version</key>
<string>1.0.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>YourAppName</string>
</dict>
</dict>
</array>
</dict>
</plist>
```
HeMinWon
310 天前
apple configurator
dusycool
310 天前
bao3
310 天前
@hohoho 太感谢了~~~很详细。
13927131347
310 天前
@hohoho 此方法我在用,我在想这个.plist 中的连接可否实现 get 参数形式,比如 index.php?id=1 的时候引用.plist 的地址链接路径为 1.ipa ,index.php?id=2 的时候引用.plist 的地址链接路径为 2.ipa ,这样不用每次新增安装的 ipa 而创建一个文档
hohoho
310 天前
@13927131347 可以的。不知道苹果是否限制 plist 后缀,最好用 param 形式 /index/:plistId/app.plist 。服务端放一个 plist 模版,根据 plistId 生成不同内容的文件 response 。
13927131347
309 天前
@hohoho 如你上面提到的<key>url</key>
<string>http://your.web.com/YourApp.ipa</string>
这是 plist 文件中的 ipa 链接,但这连接是固定的,并不会变,需改成动态参数连接该如何写
hohoho
308 天前
@13927131347

plist 模版里面有两个动态数据:bundleId 和 downloadUrl

<string>{{bundleId}}</string>
<string>{{downloadUrl}}</string>

方案一:query 参数带进去 bundleId=encodeURIComponent(your.bundle.id)&downloadUrl=encodeURIComponent( http://your.web.com/your.ipa)

方案二:在后端代码里写好 plistId 映射

如:const map = { 'your-plistId-1' : { bundleId: '....', downloadUrl: '....' }}

通过这两个方案取出来 bundleId 和 downloadUrl 替换 plist 模版,然后在 response 里面把新生成的 plist 字符串写进去。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/953550

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX