itms-services托管ipa包

itms-service是apple为iOS企业用户($299)提供的无线分发安装方式所使用的协议,使用这种方式发布应用不需要通过App Store,任何iOS设备都可以安装企业用户通过这种方式发布的应用而没有设备数目的限制。(个人用户和公司用户也可以使用这种方式通过网页发布应用,但只有设备的UDID被包含在对应帐户的Device ID中的设备可以安装,而Device ID对数目是有限制的)。

可以从safari浏览器直接打开如下所示的itms-services协议的链接,可以在iOS设备上直接安装链接所指向的应用,
itms-services://?action=download-manifest&url= https ://地址/yi.plist。
manifest文件的地址一定要是可用的https地址,在这个地方,踩了N多的坑,用了github,gitoschina,百度云都不行,网上有人说用dropbox,我用的是 fangcloud

manifest格式

<?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>full-size-image</string>
                    <key>needs-shine</key>
                    <true/>
                    <key>url</key>
                    <string>用来在 iTunes 中表示应用程序的 512 x 512 像素 PNG 图像。</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>display-image</string>
                    <key>needs-shine</key>
                    <true/>
                    <key>url</key>
                    <string>下载和安装过程中显示的 57 x 57 像素 PNG 图像。指定图像的完整合格的 URL。</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>app的下载地址</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>您应用程序的包标识符,与 Xcode 项目中指定的完全一样</string>
                <key>bundle-version</key>
                <string>您应用程序的包版本,在 Xcode 项目中指定。</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>下载和安装过程中显示的应用程序的名称。</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

发布的流程:
    1.创建并按照格式写好manifest文件
        注意:
            1.ipa包的下载地址可以不要https协议
     2.将manifest文件上传并发布到网上,
        严重注意:
            1.manifest的链接地址一定要是https协议的,当然iOS7.0以下是可以不需要的(但是貌似现在使用iOS7.0的以下的人好少的)
    3.严格按照格式
         itms-services://?action=download-manifest&url= https ://地址/yi.plist 进行书写

可能碰到的问题:  
    1. 下载安装应用时,进度条结束后图标就突然消失了,桌面上找不到任何关于该软件的信息,就和没安装一样。但是你却可以在设置》通用》用量》显示所有应用程序   中找到该软件所占内存信息,也可以连接上设备后在 Xcode 中的 organizer Devices 中对应的 iOS 设备的 applications 下找到该软件信息。  
嗯,最常遇到的情况就这样了,折腾了一天,终于找到原因:是服务器上的 plist 文件中的 bundle identifier 和打包时候用的 bundle identifier 不一致。
      同时还发现一个现象,如果两个 bundle identifier 不一致,在 iOS5 上安装上软件后软件不显示,如果在 iOS6 上安装上软件后软件则能正常安装。
  2. iOS 7.1 版本之后,通过 itms-service 安装应用时,要求 itms-service 协议后面的 url 的值即 plist 文件的地址必须为 https 地址,且设备必须信任此 https 服务器的 SSL 证书。关于这个问题,可参考 另一篇博客

参考文档
 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值