在IOS开发过程中,总会遇到这样或者那样的问题。这几天做了一个app,需要直接更新客户端,正常体系是在appstore中更新,这个APP不上appstore,这样就需要使用到
itms-services://?action=download-manifest&url=这样一段代码。总结一下该方法的使用,代码如下:
NSURL*nsUrl=[NSURLURLWithString:[NSStringstringWithFormat:@"itms-services://?action=download-manifest&url=%@",self.client_url]];
//要用真机器
[[UIApplicationsharedApplication]openURL:nsUrl];
其中的self.client_url是来自网络可访问的一个plist文件链接,如:https://xxx.xxx.xxx/app.plist
这个plist文件示例会在之后的经验中说明。这里先说一下该方法使用。
在使用该方法时,遇到一个问题,那就是在IOS7.1以下的版本时可以直接安装plist中指定的APP。
当ios版本大于7.1时,会出现xxx.xxx.xxx证书无效,或者无法连接到xxx.xxx.xxx。
原因是在IOS7.1之后该方法要求链接必须是支持https的链接,如果自己能配置ssl倒是没多大问题。但是像本屌丝这样的程序猿。有点犯难了。嫌弃配置太麻烦。
这里提供一个方案。使用七牛云存储。在七牛上申请一个账号。开辟一个空间,然后需要实名认证,只有实名认证后才能上传多种格式的文件。七牛是支持ssl的,只需将app.plist文件放置在七牛上就可以了,其中app的ipamubiao地址只要保持可访问就行。
还有一点,七牛在你上传文件之后,默认的下载地址也就是其外链,是不带https的,需要在如图:
空间设置-》申请域名绑定,新增一个后缀为qbox.me的域名,这个是支持https的,然后将文件的链接域名改成这个新邦的域名即可。
如原链接为http://xx.qiniudn.com/testapp.plist直接改成https://dn-xxx.qbox.me/testapp.plist中再放入
http://xx.qiniudn.com/testapp.plist直接改成https://dn-xxx.qbox.me/testapp.plist
代码如下:
self.client_url=@"https://dn-xxx.qbox.me/testapp.plist";
NSURL*nsUrl=[NSURLURLWithString:[NSStringstringWithFormat:@"itms-services://?action=download-manifest&url=%@",self.client_url]];
//要用真机器
[[UIApplicationsharedApplication]openURL:nsUrl];
这样我们就可以直接安装testapp.plist中指定的app了,当然前提是设备已经越狱,或者打包app的证书是企业证书。