iOS系统在线下载安装ipa文件,以及跳转描述文件信任证书的实现

上周写了一个iOS系统在没有上架苹果应用商店的情况下,通过企业证书安装 ipa 软件的实例。

1-1Z306222551123.png iOS系统在线下载安装ipa文件,以及跳转描述文件信任证书的实现 经验总结

教程简介:

1、利用 itms-services 和 plist 文件,在线下载安装 ipa 文件。

2、直接跳转【设置-通用-描述文件】,信任证书。

首先需要特别注意

1、ipa 的下载地址放到 plist 的文件中,链接指定 plist(格式见下文)

2、plist 的链接必须是 https (SSL加密)的,而且必须是公网,自签名及免费的 https 不可用。

3、链接格式要求一定是符合苹果规范的,itms-services://?action=download-manifest&url=https://****/***.plist

目前可以使用 https 测试用的域名:https://raw.githubusercontent.com/  

下载安装ipa:

将 plist 上传到 github 上,查看 plist 内容页面上右上角点击“Raw”。

使用该地址链接格式为 https://raw.githubusercontent.com/用户名/项目名/master/xxxx.plist

拼接链接: itms-services://?action=download-manifest&url=https://raw.githubusercontent.com/用户名/项目名/master/xxxx.plist

在 iPhone 手机中打开 Safari ,访问该链接,提示:在"iTunes"中打开链接吗?,点击打开。

提示“raw.githubusercontent.com”要安装“XXXXX”,点击安装即可在线下载安装 ipa 。

点击直接跳转信任证书:

针对企业应用安装后如何在 Safari 中引导用户跳转到 [设置 - 通用 - 描述文件] 页面,以便用户信任企业签名描述文件,在 iOS9 的时候很方便,无论是在应用内还是在 Safari 中都可以直接唤起,但是从 iOS10 起,苹果禁止了一切对 [设置] 的主动跳转。

iOS9

iOS10
in-App (openURL)
Safari

另外还测试了一下,在应用内用 UIWebView 加载 HTML 进行跳转,结论与上一致。

URL Scheme

iOS 9 : prefs:root=General&path=ManagedConfigurationList
iOS 10 : App-Prefs:root=General&path=ManagedConfigurationList

解决:

可以看到 iOS10 并不能从 Safari 直接跳转 [描述文件] 了,但是还有一个方式可以达到该效果,直接链接到一个企业签名的描述文件(.mobileprovision),在 Safari 中直接访问 https://raw.githubusercontent.com/用户名/项目名/master/hello.mobileprovision (你的企业描述文件地址)就可以实现跳转了。

.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>http://xxxxxxxxxxxxxxxxxxx/xxx.ipa</string>
				</dict>
				<dict>
					<key>kind</key>
					<string>full-size-image</string>
					<key>needs-shine</key>
					<true/>
					<key>url</key>
					<string>http://xxxxxxxxxxxxxxxxxx.png</string>
				</dict>
				<dict>
					<key>kind</key>
					<string>display-image</string>
					<key>needs-shine</key>
					<true/>
					<key>url</key>
					<string>http://xxxxxxxxxxxxxxxxxx.png</string>
				</dict>
			</array>
			<key>metadata</key>
			<dict>
				<key>bundle-identifier</key>
				<string>com.xxxx.demo</string>
				<key>bundle-version</key>
				<string>1.0.0</string>
				<key>kind</key>
				<string>software</string>
				<key>title</key>
				<string>XXXX App download</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>

参考文档:

ipa在线下载安装(itms-services)

如何在 iOS10 Safari 中跳转 [设置-通用-描述文件]

推荐阅读:

给Sublime增加代码格式化快捷键

phpsStorm实现打开*.jsp文件代码高亮和代码格式化

https百度推送push.js报错的解决方法

使用float后清除浮动的几种方法

Bootstrap 模态框(Modal)插件的基本应用

赞 (1)
分享到: +

评论 沙发

Avatar

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)