How can I debug an Apple Enterprise deployment manifest?

I am trying to deploy an application to validate a manifest file. After clicking the button, nothing happens in Safari, there is no error, it just loads. My manifest looks like this:

<?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> 

EDIT 1

My link looks like this:

 <a href="itms-services://?action=download-manifest&amp;url=https://someSite.de/applications/557170c4ffcb521300cacb59/versions/557170e7ffcb521300cacb5a/manifest.plist?access_token=g3hf32v8h5bfeg4t50zfepwzrb9w8b3rv9382va0we7352635baivo" target="_blank" translate="INSTALL" class="ng-scope">Installieren</a> 

EDIT 2

This is one of my plates:

 <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> 
+5
source share
3 answers

Two steps that fixed the problem: 1. Specify the displayed image 2. Encode manifest-url: for example.

 <a href="itms-services://?action=download-manifest&amp;url=https%3A%2F%2FsomeSite.de%2Fapplications%2F557170c4ffcb521300cacb59%2Fversions%2F557170e7ffcb521300cacb5a%2Fmanifest.plist%3Faccess_token%3Dg3hf32v8h5bfeg4t50zfepwzrb9w8b3rv9382va0we7352635baivo" target="_blank" translate="INSTALL" class="ng-scope">Installieren</a> 
+1
source

Assuming you have a plist something like this:

 <?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> 

And a valid .ipa if you provide a web page with a link to plist as follows:

 <a href="itms-services://?action=download-manifest&url=http://somewebsite.com/APP.plist">Install App</a> 

Then the user should be able to install the Enterprise application, assuming that he has the correct preparation, etc. You also need to make sure that your website allows the user to execute .IPA files.

0
source

I read a lot of conflicting information all over the Internet. Since this is such a complex process, many suggestions are made β€œjust to be safe,” but it ends up wasting time because it is just one of the variables that you think you need to make.

things that don't matter

  • URL URL: you can do <a href="itms-services://?action=download-manifest&url=http://example.com/APP.plist">
  • mime types: he suggested that plist = application/xml and ipa = application/octet-stream , but I regularly drag it to s3 and change nothing.
  • plist and ipa: they should not be in the same place or on the same server as the binding. I have a website that then links directly to s3
  • html page in https: during testing, I found that I can point the server on the local network to 192.168.1.x , which does not have https, and it downloaded perfectly

things that matter

  • https - plist, ipa - https
  • query string parameters - adding ?key=value , after which my url broke the download.
  • xml headers is my personal problem after 6 hours of debugging. don't forget to include <?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"> . The parser and xml writer that I used deprived it.
0
source

All Articles