Alex Zavatone
Alex Zavatone

Reputation: 4323

Enterprise iOS App distribution - which chars are legal in the app install URL?

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.

Upvotes: 3

Views: 1010

Answers (2)

Glenn
Glenn

Reputation: 2206

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.

Upvotes: 3

Jordan
Jordan

Reputation: 187

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]"

Upvotes: 1

Related Questions