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格式
<?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
证书。关于这个问题,可参考
另一篇博客
。
参考文档