我已经设置了一个使用自签名证书 (SSL) 运行的本地网络服务器。我还在我的 iOS 15.0 设备上安装了证书,并从设备设置中信任它。但是当我加载 https://my-local-hostname/ 时,它会加载一个带有链接itms-services/.../manifest.plist
的下载按钮,然后单击下载按钮,它会显示“无法安装 ***”。
另一方面,如果我运行ngrok以获取具有受信任的根 CA 签名的证书的静态域,它可以工作,这意味着 manifest.plist 配置是正确的。
有没有办法让它直接在 localhost 上工作?有没有人这样做过?
问问题
72 次
2 回答
0
我终于想通了。
对于那些对解决方案感兴趣的人,这里是使用 localhost 在本地计算机上进行 OTA 工作的步骤。
- 在本地机器上设置一个网络服务器(macOS 有一个内置的)
- 使用自制软件安装minica(用于生成 SSL 证书)
- 使网站可以通过 https://localhost(或 https://{hostname})访问(这是一篇关于如何做到这一点的好文章)
- 用于
minica
生成证书,而不是自己制作(只需跳过Generate a private key and certificate for your site
文章中提到的步骤,并使用minica --domains {hostname}
命令将立即为您生成必要的证书。您可以找到生成的根 CA 证书,其密钥位于~/minica.pem
和~/minica-key.pem
,和您的域的证书位于~/{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,这样您就可以从同一网络中的移动设备访问网站的内容。
于 2022-01-20T14:18:43.413 回答
0
我在一家私人商店发布了一些版本,并且以类似的方式工作。
这个怎么运作 :
为企业分发生成 ipa(使用正确的配置文件) 将 ipa 上传到您想要的任何地方,如果您需要一些漂亮的东西,您可以制作一个应用程序,列出您的 IPA(您自己的私人商店)及其相关信息,以及指向下载它(如下所示) 上传 .plist 文件并使其在 url 字段中的 url 是您在步骤 1 中上传的 .ipa。在您想要的位置创建一个基本的 HTML 页面:用户现在可以单击它并下载;)
<a href="itms-services://?action=download-manifest&url=YOUR-UPLOADED-PLIST-FILE.plist">Click here ;-)</a>
于 2022-01-20T08:51:10.517 回答