今天研究了一下企业应用分发,网络上有很多文章讲如何利用一个 Web 页面进行 iOS 企业应用分发下载安装,这里就不再赘述;这篇文章主要针对的是企业应用安装后如何在 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 中直接访问 http://foo.com/hello.mobileprovision
就可以实现跳转了。
引导
既然我们知道了如何跳转,那么在网页中何时跳转呢?有的做法是用户在 Safari 中点击安装按钮后,制造一个假的进度条,比如大概 10 秒,估算应用已经下载、安装完毕,因为其实是无法获取真实的企业应用安装进度的,然后弹出一个 [信任] 按钮或一些操作图示,由以上方法跳转至 iOS 系统设置中的描述文件页面,让用户选择自己的企业证书描述并信任,这样才能打开对应企业应用。