有一个这样的需求:一些大厂比如:BATDS等,开发的应用很多,有些应用只是员工使用,只需要内部分发,不需要上架AppStore。那么怎么让员工通过iPhone下载尼?

这里就讲一下如何不上架AppStore 通过企业证书打包的ipa 企业分发?

首先:苹果允许用itms-services协议来直接在iphone/ipad上安装应用程序,我们可以直接生成该协议需要的相关文件,这样产品经理和测试都可以直接在设备上安装新版的应用。

1. 第一步准备:

  1. 299$的企业账号
    用于打包,只有用企业证书打包的ipa才能下载

  2. 对应的plist文件

<?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>software-package</string><key>url</key><string>https://bsssit.cjh.com/dtap/public/app/ios/VoiceCollection.ipa</string></dict><dict><key>kind</key><string>full-size-image</string><key>needs-shine</key><true/><key>url</key><string>https://bsssit.cjh.com/dtap/public/app/ios/configFile/audiopro.png</string></dict><dict><key>kind</key><string>display-image</string><key>needs-shine</key><true/><key>url</key><string>https://bsssit.cjh.com/dtap/public/app/ios/configFile/audiopro.png</string></dict></array><key>metadata</key><dict><key>title</key><string>话术</string><key>bundle-version</key><string>1.0.0</string><key>kind</key><string>software</string><key>bundle-identifier</key><string>com.chj.VoiceCollection</string></dict></dict></array>
</dict>
</plist>

这个我的测试过plist,注意plist 的结构,一定不能搞错(有同事搞错这个文件,害得我和后台找了2天才搞定)

software-package:url :ttps://bsssit.cjh.com/dtap/public/app/ios/VoiceCollection.ipa (你的ipa的地址)
url:logo图片的地址
bundle-identifier:com.xx.xx:(bundleID需要ipa中需要保持一致)
bundle-version:1.0.0 (CFBundleVersion需要和ipa中的保持一致)
title:话术 (随便起,用于踊跃alert确认时的提示)


3. IPA安装包一个

2.部署plist文件与IPA安装包

itms-services协议:

itms-services://?action=download-manifest&url=https://********/**/tue_test.plist

部署plist文件的地址必须是https,不然在iPhone设备上可能会导致“无法连接到xxx”这样的提示,导致安装失败。如果没有https服务器。可以利用开源中国(http://git.oschina.net/)提供的代码托管服务,托管一下plist文件,然后ipa的安装包和index.html依旧放在自己的服务器上.itms-services协议后面的url地址,改成在plist文件在开源中国上的url(注意url结束到.plist为止,后面的那一串参数不要带,直接手动把http改为https)。

将修改后的plist放到https 的服务、把企业证书打的ipa 上传到自己的服务器。

3.下载使用

编写一个简单的HTML页面,手机通过访问这个页面点击下载安装
比如:立即下载 的地址就是

itms-services://?action=download-manifest&url=https://.../xxx.plist

<!DOCTYPE HTML>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Install</title></head><body><p align=center><font size="10"><a style="color:#69DEDA" href="itms-services://?action=download-manifest&url=https://.../xxx.plist">立即下载</a></font></p></body>
</html>
  • 我们可以看到 “href=” 里面是指向了 plist 文件的地址(而不是IPA安装包的地址)
  • 最好还是使用iPhone设备自带的Safari浏览器打开该页面,点击下载。

    上面是Safari 下载,在应用中更新的代码:有更新时触发下面的代码
NSString *scheme = @"itms-services://?action=download-manifest&url=https://.../xxx.plist";
[self openScheme:scheme];
- (void)openScheme:(NSString *)scheme {UIApplication *application = [UIApplication sharedApplication];NSURL *URL = [NSURL URLWithString:scheme];if (@available(iOS 10.0, *)) {[application openURL:URL options:@{} completionHandler:^(BOOL success) {NSLog(@"Open %@: %d",scheme,success);}];} else {// Fallback on earlier versionsif ([application canOpenURL:URL]) {[application openURL:URL];}}
}

直接安装实例:(慧眼)

    UIApplication *application = [UIApplication sharedApplication];NSURL *URL = [NSURL URLWithString:@"itms-services://?action=download-manifest&url=https://oss.suning.com/sastore/snapp/upload/app_inner/ios/20190524/cc1c8baa88705aab909e571c435eef81.plist"];if (@available(iOS 10.0, *)) {[application openURL:URL options:@{} completionHandler:^(BOOL success) {NSLog(@"Open %@: %d",scheme,success);}];} else {// Fallback on earlier versionsif ([application canOpenURL:URL]) {[application openURL:URL];}}

借鉴:https://www.jianshu.com/p/4eeddf929b90

(0091)iOS开发itms-services协议安装IPA安装包相关推荐

  1. 安卓开发:魅族手机安装apk安装包提示安装失败、更新包不兼容问题的解决方法

    遇到了两次给自己魅族MX5手机安装APP的apk安装包的时候提示安装失败,反复删除安装都不行,问题如下图所示: 其实是app没有卸载成功,需要打开手机访客模式,重新进入手机,就会发现需要安装更新的AP ...

  2. 通过 itms:services://? 在线安装ipa ,跨过appstore

    1.需要一个html文件,引导下载用户在线安装ipa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&quo ...

  3. IOS开发笔记之推广安装(用网页判断是否安装App)

    IOS开发笔记之推广安装(用网页判断是否安装App) 在做App推广的时候,我们经常会用到网页链接下载,亦或是一张二维码,最常见的做法就是将App在iTunes中的下载链接嵌入,当用户扫描或者点击网页 ...

  4. iOS ipa 安装包安装失败原因

    前言 iOS 的内测应用在安装时,很多人都遇到过安装失败的情况,安装失败的原因比较多,下面将一些常见原因总结如下,方便开发者进行排查. 在 iOS 9 中启动应用时,出现提示"未受信任的企业 ...

  5. 快用苹果助手安装失败_爱思助手 | 苹果IPA安装包,免费自签教程来了!

    击关注/置顶 玩转网络科技 (今日封面,长按保存) 每日听歌 编辑|测试|配图|排版|@萌妹酱 原创不易,且读且珍惜,未经许可,谢绝抄袭,转载请联系小编开白名单. 请点"在看",& ...

  6. 两种方法扫二维码下载APP,获取IPA安装包

    注意:苹果手机只有UDID被加入到开发者的设备中之后才可以扫描二维码安装否则不能安装,如果没有请将UDID加入到开发者设备中重新下载证书点击运行就可以了(电脑证书不用动). 如果不知道怎么查UDID请 ...

  7. Ubuntu20.04安装 WineHQ 安装包

    本次安装环境的配置均使用在该网站: https://wiki.winehq.org/Ubuntu_zhcn 主要说的是在Ubuntu 20.04上的配置: 上述是图片,下面是相应步骤的代码: 1.下载 ...

  8. 获取ipa安装包的最新方式

    获取IPA包的的方式 1.利用Apple Configurator 2 2.使用爱思助手 之前我们可以借助PP助手来获取越狱或者非越狱后的IPA安装包,但现在PP助手已经凉凉了,不过我们还是有其他的方 ...

  9. VAPS XT开发入门教程01:软件安装包

    本文首发于:VAPS XT开发入门教程01:软件安装包 上一篇:VAPS XT开发入门教程00:基本介绍 VAPS XT软件包括三个部分: 主程序,按照版本不同大小也不同,大概在800M~2GB左右 ...

最新文章

  1. 2022-2028年中国PE膜产业竞争现状及发展前景分析报告
  2. 中国矿业大学计算机学院机房,2020年中国矿业大学计算机学院初试自命题科目考试大纲-数据结构...
  3. uniapp无法使用substr_SQLite 3.34.0发布,世界上使用量最大的数据库引擎
  4. 精细化容量管理的设备成本优化之路
  5. Linux修改hostname(临时或者永久)
  6. Python基础中一些高效的数据操作,可以提高你十倍工作效率
  7. 二、Zabbix 服务端部署安装
  8. 服务器复制不了文档,服务器复制粘贴不了
  9. ionic android绝对定位,Safari中的CSS故障与Ionicons作为背景内容和绝对定位
  10. 【MyBatis笔记】12-多对一添加操作(添加新客户及对应的新订单)
  11. 解决 ImportError: No module named ‘pip._internal‘问题
  12. 苹果x漫画脸_【漫画大全】:漫画韩国全集
  13. 使用diskpart命令修复损坏的U盘
  14. 移动宽带套餐介绍_中国移动宽带最新套餐介绍
  15. 腾讯产品的创新“渐进式”
  16. s4i9500 android6.0,三星Galaxy S4(i9500)各版本的区别:教你区别三星S4的5个版本(图文)...
  17. 黑马程序员——OC基础---核心语法(id,构造方法,Category,description,SEL)
  18. 2022大作业项目报告
  19. 【SAP】公司代码与采购组织的分配关系
  20. EasyPlayer.js支持VR视频播放,TSINGSEE青犀视频全力打造网页VR生态圈

热门文章

  1. selenium基础八种元素定位
  2. 江南大学计算机科学专业排名,江南大学热门专业排名
  3. JS实现身份证号码15位转18位时最后一位的算法
  4. python 跳出两层循环
  5. 程序猿生存指南-61 离巢之鸟
  6. mysql 日期比较_详解Mysql中日期比较大小的方法
  7. SQL(面试实战01)
  8. 原创 | 自学编程,我该如何寻找自学资源?
  9. matplotlib 绘图入门详解
  10. 因缺失增量信息而导致recoverseg恢复失败的情况