使用 localhost 的 OTA ipa 分发
OTA ipa distribution using localhost
我已经设置了本地网络服务器 运行 自签名证书 (SSL)。
我还在我的 iOS 15.0 设备上安装了证书,并从设备设置中信任它。但是当我加载 https://my-local-hostname/ 加载带有 link 的下载按钮到 itms-services/.../manifest.plist
并单击下载按钮时,它显示“无法安装 ***” .
另一方面,如果我 运行 ngrok 获得一个带有由受信任的根 CA 签名的证书的静态域,它可以工作,这意味着 manifest.plist 配置是正确的。
有没有办法让它直接在本地主机上工作?有人做过吗?
我在私人商店做了一些发布,它以类似的方式工作。
工作原理:
为企业分发生成 ipa(使用正确的配置文件)
将 ipa 上传到任何你想要的地方,如果你需要一些漂亮的东西,你可以制作一个列出你的 IPA(你自己的私人商店)及其相关信息的应用程序,以及一个 link 来下载它(见下文)
上传 .plist 文件并使 url 字段中的 url 成为您在步骤 1 中上传的 .ipa。
在你想要的地方用这一行创建一个基本的 HTML 页面:
用户现在可以点击并下载 ;)
<a href="itms-services://?action=download-manifest&url=YOUR-UPLOADED-PLIST-FILE.plist">Click here ;-)</a>
我终于明白了..
对于那些对解决方案感兴趣的人,这里是使用 localhost 使 OTA 在本地机器上工作的步骤。
- 在你的本地机器上设置一个网络服务器(macOS 有一个内置的)
- 使用自制程序安装 minica(用于生成 SSL 证书)
- 使网站可通过 https://localhost(或 https://{hostname})访问 (here is a nice article on how to do that)
- 使用
minica
生成证书而不是自己制作(只需跳过文章中提到的Generate a private key and certificate for your site
步骤,并使用minica --domains {hostname}
命令生成必要的证书立即为您生成证书。您可以在 ~/minica.pem
和 ~/minica-key.pem
处找到密钥生成的根 CA 证书,
以及您位于 ~/{hostname}/(cert/key).pem
的域的证书,
{hostname}
是您本地计算机的 主机名 。如果您不确定机器的主机名是什么,只需打开终端并输入 hostname
.
- 在
/etc/apache2/extra/httpd-ssl.conf
中指定SSLCertificateFile
、SSLCertificateKeyFile
和SSLCACertificateFile
路径到/path/to/key.pem
、/path/to/cert.pem
和/path/to/minica.pem
对应.
- 将
minica.pem
和 cert.pem
导入钥匙串并更改为“始终信任”。
- 重新启动您的网络服务器。
- 将
minica.pem
和 cert.pem
发送到 iPhone(使用 AirDrop 或其他方式),安装配置文件,并从证书信任设置屏幕信任它们)
基本上就是这样。只需在 HTML 代码和 manifest.plist 文件中的所有位置使用 https://{hostname} 而不是 https://localhost ,这样您就可以从同一网络中的移动设备访问该网站的内容。
我已经设置了本地网络服务器 运行 自签名证书 (SSL)。
我还在我的 iOS 15.0 设备上安装了证书,并从设备设置中信任它。但是当我加载 https://my-local-hostname/ 加载带有 link 的下载按钮到 itms-services/.../manifest.plist
并单击下载按钮时,它显示“无法安装 ***” .
另一方面,如果我 运行 ngrok 获得一个带有由受信任的根 CA 签名的证书的静态域,它可以工作,这意味着 manifest.plist 配置是正确的。
有没有办法让它直接在本地主机上工作?有人做过吗?
我在私人商店做了一些发布,它以类似的方式工作。
工作原理:
为企业分发生成 ipa(使用正确的配置文件) 将 ipa 上传到任何你想要的地方,如果你需要一些漂亮的东西,你可以制作一个列出你的 IPA(你自己的私人商店)及其相关信息的应用程序,以及一个 link 来下载它(见下文) 上传 .plist 文件并使 url 字段中的 url 成为您在步骤 1 中上传的 .ipa。 在你想要的地方用这一行创建一个基本的 HTML 页面: 用户现在可以点击并下载 ;)
<a href="itms-services://?action=download-manifest&url=YOUR-UPLOADED-PLIST-FILE.plist">Click here ;-)</a>
我终于明白了..
对于那些对解决方案感兴趣的人,这里是使用 localhost 使 OTA 在本地机器上工作的步骤。
- 在你的本地机器上设置一个网络服务器(macOS 有一个内置的)
- 使用自制程序安装 minica(用于生成 SSL 证书)
- 使网站可通过 https://localhost(或 https://{hostname})访问 (here is a nice article on how to do that)
- 使用
minica
生成证书而不是自己制作(只需跳过文章中提到的Generate a private key and certificate for your site
步骤,并使用minica --domains {hostname}
命令生成必要的证书立即为您生成证书。您可以在~/minica.pem
和~/minica-key.pem
处找到密钥生成的根 CA 证书, 以及您位于~/{hostname}/(cert/key).pem
的域的证书,{hostname}
是您本地计算机的 主机名 。如果您不确定机器的主机名是什么,只需打开终端并输入hostname
. - 在
/etc/apache2/extra/httpd-ssl.conf
中指定SSLCertificateFile
、SSLCertificateKeyFile
和SSLCACertificateFile
路径到/path/to/key.pem
、/path/to/cert.pem
和/path/to/minica.pem
对应. - 将
minica.pem
和cert.pem
导入钥匙串并更改为“始终信任”。 - 重新启动您的网络服务器。
- 将
minica.pem
和cert.pem
发送到 iPhone(使用 AirDrop 或其他方式),安装配置文件,并从证书信任设置屏幕信任它们)
基本上就是这样。只需在 HTML 代码和 manifest.plist 文件中的所有位置使用 https://{hostname} 而不是 https://localhost ,这样您就可以从同一网络中的移动设备访问该网站的内容。