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格式





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


发布的流程:
    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. 用 tomcat 配置 https 自签名证书,解决 ios7.1 以上系统 , 苹果 inHouse 发布
 

你可能感兴趣的:(itms-services托管ipa包)