itms-services托管ipa包

来源:互联网 发布:淘宝达人帖子范例 编辑:程序博客网 时间:2024/04/29 23:56
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中的organizerDevices中对应的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.用tomcat配置https自签名证书,解决ios7.1以上系统,苹果inHouse发布
 
原创粉丝点击