【转】使用itms-services从浏览器发布iOS App遇到的问题总结

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

    可以从safari浏览器直接打开如下所示的itms-services协议的链接,可以在iOS设备上直接安装链接所指向的应用,itms-services://?action=download-manifest&url=http://192.168.1.27:8082/un/yi.plist。

    服务器对应的plist文件中包含iOS设备安装该应用所需要的信息,如ipa的下载地址,也有该App的bundle identifier,相关的信息可以搜索“itms-services”找到,一搜一大把。

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

    3.另外,用户首次安装企业应用时,可以通过在网页上点击itms-service链接或者扫瞄itms-service二维码,后续更新时,可通过在程序的代码中使用[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"itms-service..."]];的方式了。

from:http://blog.sina.com.cn/s/blog_5f19ccb10101da5m.html