Jerry's Blog

Less is more, Live and learning

Hello,I'm an iOS developer in China.


自建IPA分发平台

前言

目前iOS App的内侧分发渠道很多,包括:蒲公英、fir.im等等三方分发平台,用户注册账号后,可以直接上传Archive后的ipa文件即可通过生成的应用下载页来下载安装。但是,为了满足个性化以及品牌宣传等需求,我们需要自建H5下载页,并配置好相关数据也可以制定自定义的分发下载渠道。

配置步骤

首先我们需要配置一个plist文件,包含2种尺寸的icon图标、app基本信息、和ipa文件的下载地址等,下面我们就以一个例子,介绍下具体的实现步骤:

1. Plist 文件
# manifest-demo.plist 文件
....
<array>
				<dict>
					<key>kind</key>
					<string>software-package</string>
					<key>url</key>
					<string>https://com.download.ipa</string>		<!-- 这里填写ipa文件的下载地址 -->
				</dict>
				<dict>
					<key>kind</key>
					<string>display-image</string>
					<key>url</key>
					<string>https://com.icon.57x57.png</string>	<!-- 57x57 像素的icon图片 -->
				</dict>
				<dict>
					<key>kind</key>
					<string>full-size-image</string>
					<key>url</key>
					<string>https://com.icon.512x512.png</string> <!-- 512x512 像素的icon图片 -->
				</dict>
			</array>
			<key>metadata</key>
			<dict>
				<key>bundle-identifier</key>
				<string>com.app.xxx</string>	<!-- 包名 -->
				<key>bundle-version</key>
				<string>1.0.0</string>				<!-- 版本号 -->
				<key>kind</key>
				<string>software</string>
				<key>title</key>
				<string>appName</string>					<!-- 应用名称 -->
        <key>subtitle</key>	
				<string>subName</string>				  <!-- 副标题 -->
			</dict>
....

上面是一个plist配置文件的demo,可以直接在上面修改相关信息,也可以在Archive 打包的时候在Xcode 的提示框中勾选同时生成该plist文件。一般都采取直接修改现成的plist文件即可。demo文件可以点击这里下载

2. 下载链接

接下来,我们需要将上面配置好的plist文件移交给后台开发人员,进行服务器端配置。然后,前端需要将点击下载链接按照如下格式配置:

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

其中,最主要的是修改”url= ‘’ 为刚才服务器端配置的plist文件下载地址,例如:https://app.download.xxx.com/install-manifest.plist

然后,在h5页面中将下载按钮的响应链接(例如:<a> 标签)配置为上面的地址。例如:

<a href="itms-services://?action=download-manifest&url=https://app.download.xxx.com/install-manifest.plist">立即下载</a>
3. 测试

基本的配置就这么多,现在我们可以在实际项目中进行测试了,当点击下载按钮的时候回弹出一个提示框:”是否下载xxx应用?”,这里注意前提是需要先给这个ipa包进行企业签名才能进行公测分发。点击下载后,回到桌面即可看到应用已经在安装了。

结语

整个配置流程也很简单,从配置plist文件,到配置下载链接,最重要的还是要和后台配合。有此需求的小伙伴,赶快动手亲自尝试一下吧!

最近的文章

iOS国际化实践

前言为了实现在iOS项目中的多语言切换,我们需要对工程中的各个资源、 各个模块进行相应的国际化操作。在实际的项目需求中,一般还需要进行应用内语言切换,除了默认的跟随系统之外,还要实现动态的语言版本切换。实现思路字面上理解,国际化就是对应用中出现的文字、图片资源进行翻译,然后通过键值映射的方式进行切换即可,但是在实践中需要处理的地方和注意的点还是挺多的, 尤其对于旧项目进行国际化改造时,工作量还是挺大的。总的来说,国际化就是对资源进行替换,分别涉及到了字符串国际化、图片文件等资源国际化、xi...…

iOS继续阅读
更早的文章

ReactiveCocoa 使用指南

简介ReactiveCocoa是由GitHub开源的一款函数响应式编程框架(FRP),打破了Objective-C一贯的命令式编程的风格,结合函数式编程和响应式编程思想,将iOS开发中的各种不同事件抽象成一个数据流(RACSignal),这也被称做信号,并且内部制定了统一接口,并提供了对数据流进行连接、过滤和组合的API接口。RactiveCocoa 中使用使用到的编程风格: 函数式编程(Functional Programming):使用高阶函数,例如:函数用其他函数作为参数。 响应...…

ReactiveCocoa继续阅读