IOS APP通过plist做应用分发

1. 内部分发平台的实现原理

参考:内部分发平台的实现原理—苹果安装app的另一种方式(通过itms-services协议,直接安装IOS应用程序)、plist如何做企业分发、企业证书不上app store的ip下载方式
ipa在线下载安装

ios安装app时,除了直接用xcode安装外,我们最常用的是通过第三方分发平台(如fir.im)。那么像fir.im这些平台是怎么做到扫码直接安装的呢?。

(1) 二维码:当我们上传我们的app到服务器上的时候,我们会把所有的地址存储起来,并把相关的信息都存储在数据库,这样就会在展示页显示我们app的信息。其实就是一个字段相互引入各自的下载路径,通过判断设备来进行下载,来实现二维码合二为一。
(2) 通过plist下载并安装ipa:当我们上传我们ipa安装包到第三方分发平台时,需要输入各种应用信息(应用名称和图标等); 分发平台获取到上传的安装包后,会生成一个plist文件(内部配置了ipa地址应用名称和图标等信息),通过它我们可以下载对应的ipa文件。

为什么可以通过plist下载ipa(iPhoneApplication)并实现安装的呢?其实是利用了苹果自家的浏览器 safariitms-services 协议来实现:通过itms-services协议,可以通过safari浏览器直接在iOS设备上安装应用程序。利用这种方式,只要在内网布置一个服务器,测试人员只需要通过测试设备的safari浏览器访问特定的url (添加了itms-services 协议的plist地址)既可以实现安装。

2. plist文件说明

plist文件是IOS开发过程中常用来捆绑信息的一种文件格式,它是数据格式是xml。

plist文件配置了ipa地址、应用图标地址 和 应用标示等信息,模版如下:



    items
    
        
            assets
            
                
                    kind
                    software-package
                    url
                    ipa下载地址
                
                
                    kind
                    full-size-image
                    needs-shine
                    
                    url
                    图标下载地址(png格式)
                
                
                    kind
                    display-image
                    needs-shine
                    
                    url
                    图标下载地址(png格式)
                
            
            metadata
            
                bundle-identifier
                应用标识(包名)
                bundle-version
                版本号
                kind
                software
                title
                应用名称
            
        
    


plist文件.png

注意:这个plist文件必须通过https访问才可以,因为现在苹果规定必须以https的方式进行访问(如https://www.liy.com.cn/app/ios/test.plist)。添加 itms-services 协议(itms-services://?action=download-manifest&url=)后,在safari中的完整访问地址示例如下 itms-services://?action=download-manifest&url=https://www.liy.com.cn/app/ios/test.plist

3. iOS APP使用企业证书签名后如何让用户安装

3.1 通过第三方平台分发

把ipa文件上传到 蒲公英 或 fir 第三方平台,生成二维码让用户下载安装即可。

3.2 通过企业网站分发(通过plist做企业分发)

(1) 生成并配置plist文件

plist模板如下:复制下面的代码,在电脑上新建一个后缀为.plist的文件复制进去 并 修改对应信息即可。(服务器必须支持SSL)





    items
    
        
            assets
            
                
                    kind
                    software-package
                    url
                    https://www.liy.com.cn/app/ios/test.ipa
                
                
                    kind
                    full-size-image
                    needs-shine
                    
                    url
                    
                
                
                    kind
                    display-image
                    needs-shine
                    
                    url
                    https://www.liy.com.cn/app/ios/test.png
                
            
            metadata
            
                bundle-identifier
                com.taojindaren.test
                bundle-version
                1.00.01
                kind
                software
                subtitle
                UDID
                title
                XinDong.ipa
            
        
    


(2) 将plist 文件和ipa包上传到企业服务器

如企业使用 OSS服务器:OSS(Open Storage Service)开放云存储服务,是阿里云对外的提供的海量,安全和高可靠的云存储服务。

(3) 直接分享如下链接 或 将该链接生成二维码分享出去 即可:如itms-services://?action=download-manifest&url=https://www.liy.com.cn/app/ios/test.plist。其中itms-services://?action=download-manifest&url=为固定前缀,后接plist下载地址,访问该链接后,即能实现通过plist会安ipa。

(4) 若需要前端页面,只需配置如下下载链接即可:


4. 问题汇总

参考:ios13升级到ios14企业APP出现无法安装解决方案、iOS14升级后企业级安装失败、csdn、iOS应用安装失败原因排查

备注:在iOS14上苹果对于自身提供的解决方案中ats的要求更加严格,之前我们通过 itms-services 协议安装应用时只要plist文件是https即可,iOS14之后要求ipa链接使用的也必须是https才行,否则将出现无法安装的问题。

(1) 无法验证其完整性

企业网站分发(小志手机测试):iOS14安装企业证书通过发布的app时提示“无法验证其完整性”

image.png

参考1、参考2

通过第三方分发平台fir.im分发(建国手机测试),提示“无法验证其完整性”,

image.png

原因:可能证书过期
解决及新问题:重新打包后不出现该提示,但又提醒“无法验证通过”。
原因:申请描述文件时,类型选择的是Ad Hoc(内测版),该类型需要添加测试设备UDID。
解决:重新申请描述文件,类型选择为In House(企业版),该类型无设备限制,都能安装。

(2) 提示“未受信任的企业级开发者”:打开设置,点击通用,设备管理,选择未受信任的应用程序进入,信任,再次点击信任即可。

你可能感兴趣的:(IOS APP通过plist做应用分发)