如何通过清单调试 Apple Enterprise Deployment?
How can I debug an Apple Enterprise Deployment by manifest?
我正在尝试通过清单文件部署应用程序。在 Safari 中单击按钮后,没有任何反应,没有错误,只是加载。我的清单如下所示:
<?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>
<!-- Array der Downloads. -->
<key>items</key>
<array>
<dict>
<!-- Array der zu ladenden Ressourcen -->
<key>assets</key>
<array>
<!-- Softwarepaket: die zu installierende ipa-Datei. -->
<dict>
<!-- Pflicht: die Art der Ressource. -->
<key>kind</key>
<string>software-package</string>
<!-- Pflicht: die URL der zu ladenden Datei. -->
<key>url</key>
<string>%url%</string>
</dict>
</array><key>metadata</key>
<dict>
<!-- Pflicht -->
<key>bundle-identifier</key>
<string>%bundleIdentifier%</string>
<key>bundle-version</key>
<string>%bundleVersion%</string>
<!-- Pflicht: die Art des Downloads. -->
<key>kind</key>
<string>software</string>
<!-- Pflicht: der beim Download anzuzeigende Titel. -->
<key>title</key>
<string>%title%</string>
</dict>
</dict>
</array>
</dict>
</plist>
编辑 1
我的 link 看起来像这样:
<a href="itms-services://?action=download-manifest&url=https://someSite.de/applications/557170c4ffcb521300cacb59/versions/557170e7ffcb521300cacb5a/manifest.plist?access_token=g3hf32v8h5bfeg4t50zfepwzrb9w8b3rv9382va0we7352635baivo" target="_blank" translate="INSTALL" class="ng-scope">Installieren</a>
编辑 2
这是我的一个列表:
<plist version="1.0">
<dict>
<!-- Array der Downloads. -->
<key>items</key>
<array>
<dict>
<!-- Array der zu ladenden Ressourcen -->
<key>assets</key>
<array>
<!-- Softwarepaket: die zu installierende ipa-Datei. -->
<dict>
<!-- Pflicht: die Art der Ressource. -->
<key>kind</key>
<string>software-package</string>
<!-- Pflicht: die URL der zu ladenden Datei. -->
<key>url</key>
<string>
https://someSite.de/applications/557170c4ffcb521300cacb59/versions/557170e7ffcb521300cacb5a/app.ipa?access_token=g3hf32v8h5bfeg4t50zfepwzrb9w8b3rv9382va0we7352635baivo
</string>
</dict>
</array>
<key>metadata</key>
<dict>
<!-- Pflicht -->
<key>bundle-identifier</key>
<string>com.someSite</string>
<key>bundle-version</key>
<string>0.0.1</string>
<!-- Pflicht: die Art des Downloads. -->
<key>kind</key>
<string>software</string>
<!-- Pflicht: der beim Download anzuzeigende Titel. -->
<key>title</key>
<string>MyApp</string>
</dict>
</dict>
</array>
</dict>
</plist>
假设你有一个像这样的 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://somewebsite.com/APP.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.mycompany.APP</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>NAME OF APP</string>
</dict>
</dict>
</array>
</dict>
</plist>
和一个有效的 .ipa,然后如果您向 plist 提供带有 link 的网页,如下所示:
<a href="itms-services://?action=download-manifest&url=http://somewebsite.com/APP.plist">Install App</a>
然后用户应该能够安装企业应用,假设他们有正确的配置等。您还需要确保您的网站允许用户执行 .IPA 文件
两个步骤,解决了这个问题:
1.指定显示图像
2.编码清单-url:
例如
<a href="itms-services://?action=download-manifest&url=https%3A%2F%2FsomeSite.de%2Fapplications%2F557170c4ffcb521300cacb59%2Fversions%2F557170e7ffcb521300cacb5a%2Fmanifest.plist%3Faccess_token%3Dg3hf32v8h5bfeg4t50zfepwzrb9w8b3rv9382va0we7352635baivo" target="_blank" translate="INSTALL" class="ng-scope">Installieren</a>
我在互联网上阅读了很多相互矛盾的信息。因为这是一个如此复杂的过程,所以提出了很多建议 "just to be safe",但最终都浪费了时间,因为它们只是您认为必须做的另一个变量。
无关紧要的事情
- URL url 的编码:你可以做到
<a href="itms-services://?action=download-manifest&url=http://example.com/APP.plist">
- mime 类型:建议 plist =
application/xml
和 ipa = application/octet-stream
但我经常拖到 s3 并且什么都不改变。
- plist 和 ipa 位置:它们不需要与锚 link 在同一个地方或在同一个服务器上。我有一个网站,然后 links 直接到 s3
- html https 中的页面:在测试期间,我发现我可以指向位于
192.168.1.x
的本地网络上的服务器,该服务器没有 https,并且可以正常下载
重要的事情
- https - plist,ipa 确实需要是 https
- 查询字符串参数 - 在我的 url 末尾添加
?key=value
中断了下载。
- xml headers - my 调试 6 小时后的个人问题。不要忘记包含
<?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">
。我使用的 xml 解析器和编写器正在将其剥离。
我正在尝试通过清单文件部署应用程序。在 Safari 中单击按钮后,没有任何反应,没有错误,只是加载。我的清单如下所示:
<?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>
<!-- Array der Downloads. -->
<key>items</key>
<array>
<dict>
<!-- Array der zu ladenden Ressourcen -->
<key>assets</key>
<array>
<!-- Softwarepaket: die zu installierende ipa-Datei. -->
<dict>
<!-- Pflicht: die Art der Ressource. -->
<key>kind</key>
<string>software-package</string>
<!-- Pflicht: die URL der zu ladenden Datei. -->
<key>url</key>
<string>%url%</string>
</dict>
</array><key>metadata</key>
<dict>
<!-- Pflicht -->
<key>bundle-identifier</key>
<string>%bundleIdentifier%</string>
<key>bundle-version</key>
<string>%bundleVersion%</string>
<!-- Pflicht: die Art des Downloads. -->
<key>kind</key>
<string>software</string>
<!-- Pflicht: der beim Download anzuzeigende Titel. -->
<key>title</key>
<string>%title%</string>
</dict>
</dict>
</array>
</dict>
</plist>
编辑 1
我的 link 看起来像这样:
<a href="itms-services://?action=download-manifest&url=https://someSite.de/applications/557170c4ffcb521300cacb59/versions/557170e7ffcb521300cacb5a/manifest.plist?access_token=g3hf32v8h5bfeg4t50zfepwzrb9w8b3rv9382va0we7352635baivo" target="_blank" translate="INSTALL" class="ng-scope">Installieren</a>
编辑 2
这是我的一个列表:
<plist version="1.0">
<dict>
<!-- Array der Downloads. -->
<key>items</key>
<array>
<dict>
<!-- Array der zu ladenden Ressourcen -->
<key>assets</key>
<array>
<!-- Softwarepaket: die zu installierende ipa-Datei. -->
<dict>
<!-- Pflicht: die Art der Ressource. -->
<key>kind</key>
<string>software-package</string>
<!-- Pflicht: die URL der zu ladenden Datei. -->
<key>url</key>
<string>
https://someSite.de/applications/557170c4ffcb521300cacb59/versions/557170e7ffcb521300cacb5a/app.ipa?access_token=g3hf32v8h5bfeg4t50zfepwzrb9w8b3rv9382va0we7352635baivo
</string>
</dict>
</array>
<key>metadata</key>
<dict>
<!-- Pflicht -->
<key>bundle-identifier</key>
<string>com.someSite</string>
<key>bundle-version</key>
<string>0.0.1</string>
<!-- Pflicht: die Art des Downloads. -->
<key>kind</key>
<string>software</string>
<!-- Pflicht: der beim Download anzuzeigende Titel. -->
<key>title</key>
<string>MyApp</string>
</dict>
</dict>
</array>
</dict>
</plist>
假设你有一个像这样的 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://somewebsite.com/APP.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.mycompany.APP</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>NAME OF APP</string>
</dict>
</dict>
</array>
</dict>
</plist>
和一个有效的 .ipa,然后如果您向 plist 提供带有 link 的网页,如下所示:
<a href="itms-services://?action=download-manifest&url=http://somewebsite.com/APP.plist">Install App</a>
然后用户应该能够安装企业应用,假设他们有正确的配置等。您还需要确保您的网站允许用户执行 .IPA 文件
两个步骤,解决了这个问题: 1.指定显示图像 2.编码清单-url: 例如
<a href="itms-services://?action=download-manifest&url=https%3A%2F%2FsomeSite.de%2Fapplications%2F557170c4ffcb521300cacb59%2Fversions%2F557170e7ffcb521300cacb5a%2Fmanifest.plist%3Faccess_token%3Dg3hf32v8h5bfeg4t50zfepwzrb9w8b3rv9382va0we7352635baivo" target="_blank" translate="INSTALL" class="ng-scope">Installieren</a>
我在互联网上阅读了很多相互矛盾的信息。因为这是一个如此复杂的过程,所以提出了很多建议 "just to be safe",但最终都浪费了时间,因为它们只是您认为必须做的另一个变量。
无关紧要的事情
- URL url 的编码:你可以做到
<a href="itms-services://?action=download-manifest&url=http://example.com/APP.plist">
- mime 类型:建议 plist =
application/xml
和 ipa =application/octet-stream
但我经常拖到 s3 并且什么都不改变。 - plist 和 ipa 位置:它们不需要与锚 link 在同一个地方或在同一个服务器上。我有一个网站,然后 links 直接到 s3
- html https 中的页面:在测试期间,我发现我可以指向位于
192.168.1.x
的本地网络上的服务器,该服务器没有 https,并且可以正常下载
重要的事情
- https - plist,ipa 确实需要是 https
- 查询字符串参数 - 在我的 url 末尾添加
?key=value
中断了下载。 - xml headers - my 调试 6 小时后的个人问题。不要忘记包含
<?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">
。我使用的 xml 解析器和编写器正在将其剥离。