【记录】前端如何实现iPhone不上架AppStore,从游览器直接安装测试App

背景:

都知道 iPhone 苹果手机应用只能通过 AppStore 进行安装,测试包只能通过官方提供的 TestFlight 等工具安装,而且通常有较长的审核流程,无法及时更新安装包,非常不方便。本文主要介绍前端实现对签名成功的 App直接通过浏览器下载安装,开发者可以及时提供测试 App。

流程:
  • 前提条件,评估App必须签名成功,这一步由ios应用开发者完成;
  • 上传到服务器,获得信息和下载地址,得到两个文件,一个是plist文件和ipa文件,及app图标;
  • 通过访问plist文件来达到下载ipa文件和图片的目的,使用了评估safari游览器自带协议,用a标签或者window.open方式打开plist地址;
  • 信任设备并安装。
itms-services:///?action=download-manifest&url=一个https地址

下面是几个过程的具体实现:

实现:

(1)上传资源到服务器
公司文件可部署公司服务器,自己测试文件可以使用github等免费提供文件地址的服务。

  • ipa:需要安装的评估App打包文件,由ios客户端提供;
  • logo:图片格式的App图标;
  • plist:App下载配置文件。

(2)由客户端生成plist文件
app.plist:客户端配置或更改下面ipa下载地址、App图标及App描述信息。



<plist version="1.0">
<dict>
  <key>itemskey>
  <array>
    <dict>
      <key>assetskey>
      <array>
        <dict>
          <key>kindkey>
          <string>software-packagestring>
          <key>urlkey>
          <string>https://ipa 下载地址string>
        dict>
        <dict>
          <key>kindkey>
          <string>display-imagestring>
          <key>needs-shinekey>
          <true/>
          <key>urlkey>
          <string>https://app 图标地址string>
        dict>
      array>
      <key>metadatakey>
      <dict>
        <key>bundle-identifierkey>
        <string>com.xxxx.xxxx.xxxxstring>
        <key>bundle-versionkey>
        <string>0.1.0string>
        <key>kindkey>
        <string>softwarestring>
        <key>titlekey>
        <string>APP名称string>
        <key>subtitlekey>
        <string>App描述string>
      dict>
    dict>
  array>
dict>
plist>

(3)下载页面
install.html:提供给用户的下载html页面,具体样式功能可根据自己的需求调整。

DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
head>
<body>
  <button id="button">下载button>
  <script>
    document.getElementById('button').addEventListener('click', function() {
      window.open('itms-services:///?action=download-manifest&url=https://pan.xchjw.cn/download/app/CorpPrivateInstall.plist', '_self')
    })
  script>
body>
html>

(4)实现效果
将下载地址提供给需要的人,点击下载按钮即可实现App安装。
【记录】前端如何实现iPhone不上架AppStore,从游览器直接安装测试App_第1张图片

市场上很多的分发平台,如蒲公英就是这么做的。

注意:
  • 只可在苹果safari游览器中实现下载,其他游览器中打开可做一些引导提示;
  • 需要注意的是从ios7.1开始,http推送plist已经不能用了,只能使用https推送,因此访问这个文件的地址必须是https开头的。你可以配置自己的服务器支持https服务,也可以借助第三方工具。
第三方app托管下载服务:

其实,也可以不用这么麻烦,自己部署这么多文件,完全可以借助第三方应用内测分发平台,比较出名的有下面几个:

  • fir.im:免费应用内测托管平台,ios应用Beta测试分发,Android应用内测分发;
  • 蒲公英:免费的应用托管平台,App应用众测分发;
  • Pre.im:APP内测托管平台首选–Beta测试,免费的应用内测托管平台;
  • TestFlight Beta Testing:苹果官方测试平台工具。
参考博客:

前端实现iPhone绕过AppStore从浏览器直接安装App https://juejin.cn/post/7021683993980436516#comment

你可能感兴趣的:(JS纪录篇,iphone,前端,ios)