注意事项

自建分发平台,首先需要有一个可以提供下载功能的服务器,而且服务器需要支持HTTPS协议!

其实,使用七牛云就可以完成这些操作。

推荐方案

七牛云实践方案简述(感兴趣的朋友可以和我交流具体的实现方案):

买入一个域名并配置子域名用于App下载,然后去腾讯云申请一个免费的SSL证书,再去七牛云配置CDN以及HTTPS。

后续需要进行上传的文件,都可以存入七牛云中。

操作步骤

1.首先以Ad-hoc方式进行打包,然后导出.ipa文件;

2.自定义一个供浏览器获取的应用安装配置文件,比如当前版本为1.0.0,这个文件的文件名可以定义为:manifest_v1.0.0.plist;

manifest_v1.0.0.plist中定义了App的实际下载地址、图标、包名、版本、应用名称等信息;

在进行自定义manifest_v1.0.0.plist的操作之前,你需要将 57x57 和 512x512 像素的png文件、已导出的.ipa文件文件 上传到你的HTTPS服务器上,以供iOS系统下载资源;

根据个人情况,自定义文件里的内容:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5. <key>items</key>
  6. <array>
  7. <dict>
  8. <key>assets</key>
  9. <array>
  10. <dict>
  11. <key>kind</key>
  12. <string>software-package</string>
  13. <key>url</key>
  14. <string>https://xxx.xxx.com/app_v1.1.1.ipa</string>
  15. </dict>
  16. <dict>
  17. <key>kind</key>
  18. <string>display-image</string>
  19. <key>url</key>
  20. <string>https://xxx.xxx.com/57x57.png</string>
  21. </dict>
  22. <dict>
  23. <key>kind</key>
  24. <string>full-size-image</string>
  25. <key>url</key>
  26. <string>https://xxx.xxx.com/512x512.png</string>
  27. </dict>
  28. </array>
  29. <key>metadata</key>
  30. <dict>
  31. <key>bundle-identifier</key>
  32. <string>com.your.app</string>
  33. <key>bundle-version</key>
  34. <string>1.0.0</string>
  35. <key>kind</key>
  36. <string>software</string>
  37. <key>title</key>
  38. <string>App-Name</string>
  39. </dict>
  40. </dict>
  41. </array>
  42. </dict>
  43. </plist>

3.将这个配置好的manifest_v1.0.0.plist文件上传到你的HTTPS服务器上,配置好manifest_v1.0.0.plist的外部访问路径,比如:  https://xxx.xxx.com/manifest_v1.0.0.plist。

这个链接其实就是下载App时第一步需要下载的内容,iOS系统根据这个manifest_v1.0.0.plist去下载真正的App,然后进行安装。

4.在Safari浏览器中尝试访问  itms-services://?action=download-manifest&url=https://xxx.xxx.com/manifest_v1.0.0.plist (将网址改为你自己配置的域名)。

如果你的配置都是有效的,你将会看到系统的应用安装提示!

5.在后续更新中,每次更新都上传一个新版本的 app_va.b.c.ipa 文件到HTTPS服务器上,然后上传对应版本的已配置好的 manifest_va.b.c.plist 文件到HTTPS服务器上。

然后将下载地址改为 itms-services://?action=download-manifest&url=https://xxx.xxx.com/manifest_va.b.c.plist ,即可下载最新的版本啦!

参考文章:

1.Distribution methods (注意Ad Hoc部分的内容:If you are a member of the Apple Developer Enterprise Program, choose this option to test your app.)

2.in-house发布的ipa包,如何触发下载安装

3.iOS 通过GitHub或者OSChina自建内测分发


Ficow原创,转载请注明出处: https://www.cnblogs.com/ficow/p/10039469.html

iOS 自建企业级应用(In-House)分发平台的更多相关文章

  1. 分析Tapjoy的模式—分发用于ios设备的企业级应用程序

    下面简单介绍下Tapjoy的模式,供大家参考: Tapjoy最初的合作模式:“按安装奖励”(pay-per-install) Tapjoy利用非常成功的奖励性下载模式影响了App Store的免费游戏 ...

  2. iOS自建分发

    1.首先满足具有https证书的域名和空间.2.通常使用github或者国内第三方托管平台.3.上传ipa文件到空间内,获取ipa文件的下载地址.4.然后编辑plist文件(注意:ipa文件和plis ...

  3. Maven--构建企业级仓库(二)

    <Maven--搭建开发环境(一)> <Maven--构建企业级仓库(二)> <Maven—几个需要补充的问题(三)>              看到经历的两家公司 ...

  4. 手把手教你 iOS通过自己的服务器实现应用分发

    第一步:打包ipa 1:可以是development.ad-hoc.enterprise任何一种打包方式,导出的ipa, 稍后会将安装包上传到服务器上. 2:如下图,箭头指的要打勾 3.点击下一步后出 ...

  5. 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台

    开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...

  6. java中用中国网建提供的SMS短信平台发送短信

    接下来的项目需求中提到需要短信发送功能,以前没有做过,因此便在网上搜了一下.大体上说的都是有三种方法,分别是sina提供的webservice接口.短信mao和中国网建提供的SMS短信平台. 这三种方 ...

  7. streamdataio 实时数据分发平台

    streamdataio 是一个实时的数据分发平台(当然是收费的,但是设计部分可以借鉴),我们可以通过这个平台 方便的拉取rest api 数据,或者发布数据到后端,streamdataio 可以帮助 ...

  8. 短信验证登陆-中国网建提供的SMS短信平台

    一.JAVA发送手机短信常见的有三种方式(如下所列): 使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册 使用短信mao的方式进行短信 ...

  9. iOS UI-创建空项目

    一.创建工程 二.删除ViewController 三.在Supporting Files/Info.plist文件中清空值 四.创建新的控制器 五.写代码 1.在AppDelegate.h文件中 # ...

随机推荐

  1. Intel Active Management Technology

    http://en.wikipedia.org/wiki/Intel_Active_Management_Technology Intel Active Management Technology F ...

  2. wxpython中控件对键盘输入无响应的可能原因

    问题描述: 开发环境:Win7 32bit + Python2.7.6 + WxPython 3.0.1-b20140707 开发某初级CAD软件中,需要实现点击TreeCtrl控件的相应选择,实现G ...

  3. XJTUOJ wmq的A×B Problem FFT/NTT

    wmq的A×B Problem 发布时间: 2017年4月9日 17:06   最后更新: 2017年4月9日 17:07   时间限制: 3000ms   内存限制: 512M 描述 这是一个非常简 ...

  4. spin_lock、spin_lock_irq、spin_lock_irqsave区别

    void spin_lock(spinlock_t *lock); void spin_lock_irq(spinlock_t *lock); void spin_lock_irqsave(spinl ...

  5. Android源代码下载过程中无法下载repo的解决方法【转】

    本文转载自:http://blog.csdn.net/shangyuan21/article/details/17618575 我们都知道下载Android源代码需要使用repo进行辅助下载,但是最进 ...

  6. dns服务器报错解决

    搭了个dns服务器,配置完毕老是报错,这里总结一下常见思路: ①关闭firewalld ②关闭selinux ③/var/named里面的配置文件所属用户组是否是root:named ④named.c ...

  7. 后台while收发过程

    fuse_loop_mt.c 中fuse_do_work函数使用while循环在后台不断运行,每一个while循环中,主要有两个操作. 1. fuse_session_receive_buf(mt-& ...

  8. 关于include,load的几个问题

    参考:http://www.network-theory.co.uk/docs/gccintro/gccintro_17.html 1. include的文件在哪找,找不到会如何? 工具: gcc - ...

  9. NIO与IO的区别

    nio是new io的简称,从jdk1.4就被引入了.现在的jdk已经到了1.6了,可以说不是什么新东西了.但其中的一些思想值得我来研究.这两天,我研究了下其中的套接字部分,有一些心得,在此分享.  ...

  10. flask的config配置和给实例化传入参数

    灵活性主要体现在配置上,需要什么就配置什么 from flask import Flask app = Flask(__name__) # type:Flask # 调试模式:是否开启调试模式并捕获异 ...