Using non-secure web services in iOS

As of iOS7ish, if you try to access a normal web site with http:// instead of the more secure https://, you get an error at runtime:

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file. To allow any http:// to get through, add the following to your Info.plist file

	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict>

or if you want specific domains to be allowed (example.com in this case):

	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSExceptionDomains</key>
		<dict>
			<key>example.com</key>
			<dict>
				<key>NSIncludesSubdomains</key>
				<true/>
				<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
				<true/>
				<key>NSTemporaryExceptionMinimumTLSVersion</key>
				<string>TLSv1.1</string>
			</dict>
		</dict>
	</dict>

That being said, its better to use secure web sites when possible.

ERROR iTMS-90022: Missing required icon file. (120×120)

If you get a iTMS-90022 error message and you have what looks like the proper 120×120 icon file in your Images.xcassets, you can try to get this working the old fashioned way by adding the appropriate .png files to your project and updating your Info*.plist file. The entries for the plist file for iPhone targets should be:

<key>CFBundleIconFiles</key>
<array>
    <string>Icon-Small</string>
    <string>Icon-Small-40</string>
    <string>Icon-Small-50</string>
    <string>Icon</string>
    <string>Icon-60</string>
    <string>Icon-72</string>
</array>

Make sure your png files (along with the @2, @3 versions) match this naming convention as well. For me, it was the ‘Spotlight’ files that were misnamed to ‘Icon-40.png’, etc instead of ‘Icon-Small-40.png’.

The entries for the plist file for iPad targets should be:

<key>CFBundleIconFiles~ipad</key>
<array>
    <string>Icon-Small</string>
    <string>Icon-Small-40</string>
    <string>Icon-Small-50</string>
    <string>Icon-72</string>
    <string>Icon-76</string>
</array>

If you have a universal app, add both to your plist file, and make sure the matching png files are all in your project as well.

More info here if you are a developer.