3

I've been experimenting with which chars in the "Application URL:" field prevent an OTA installation from being triggered at all when deploying enterprise apps off of a manifest link.

I'm trying to generate the paths automatically, but it is common that we will have special characters in the file name and it appears that certain chars in the URL simply prevent the manifest from triggering an install at all.

For example, if you have a space char, you can't escape it out with %20 and put %20 in the application URL. If this is done, no error is thrown and the itms-services://?action=download-manifest&url= action simply fails without a message.

For example, if the Application URL where the pList for the app sits is: http://mydomain.com/my-app.ipa

The install link to the manifest file would be: itms-services://?action=download-manifest&url=http://mydomain.com/my-app.plist

And inside my-app.pList, there would be this entry: url http://mydomain.com/my-app.ipa

However if the - is replaced by a space, you can not use a space char or an escaped %20 in the Application URL, even if you create the ipa with that in the "Application URL:" for the ipa and in the pList.

  1. is there a known way around this?
  2. is there a list of known characters that will break OTA installation when used in a URL?

Thanks in advance.

Alex Zavatone
  • 4,106
  • 36
  • 54

2 Answers2

2

It worked for me when I used %20 in my plist file and %2520 in my itms-services link. The answer here by tc mentions the 'double escaped' trick for the itms-services link.

Community
  • 1
  • 1
Glenn
  • 1,996
  • 2
  • 24
  • 32
1

As I answered here the simplest solution is to replace spaces with "+"(plus) as ...url=... means it is query string parameter and they shall be encoded as form data parameter when encoded for URLs.

From here W3.org - Forms in HTML documents:

"Control names and values are escaped. Space characters are replaced by '+', and then reserved characters are escaped as described in [RFC1738]"

Community
  • 1
  • 1
Jordan
  • 187
  • 1
  • 5
  • Great to know. I tried %20 which fails and will test with + now. Thank you for taking the time to give feedback on this. – Alex Zavatone Mar 15 '13 at 18:11
  • Hate to tell you Jordan, replacing spaces with a + does not work. iOS reports that the URL can not be found. – Alex Zavatone Mar 19 '13 at 19:49
  • Related question: another way to make the download fail is to put the manifest on a HTTPS server, and to address it with 'httpz' in the 'special' URL on the download page. Any idea why this is? – Craig Mar 14 '14 at 16:07