Preparing Your Apps for iOS9

Posted on September 03, 2015
By Abhishek Khurana, Product Marketing ManagerProduct Marketing Manager

This fall Apple will release their latest operating system, iOS 9, which will include a number of changes that might impact your app’s monetization. We would like to take this opportunity to highlight the changes and how you can minimize the impact on your revenues.

Update to the InMobi SDK

To ensure a smooth experience and minimize the impact on your monetization through our SDK, we plan to release full iOS9 support once the Gold Master build is available. We plan to also support the new enhancements and best practices recommended by Apple in the new OS. Key highlights of the new features and how we will address them are detailed below. We also recommend that you prepare your apps for iOS 9 and upgrade your integration with InMobi when the new InMobi SDK is launched (Mid September).

App Transport Security (ATS)

With iOS 9, Apple has introduced a new default setting, known as App Transport Security, which requires apps to make network connections only over SSL. ATS also has specific requirements on the SSL version, encryption cipher and key length used for enforcing HTTPS connection. We are currently working with over 100+ ecosystem partners to transition their platforms to support this change and ensure that they are compliant. In the meantime, for updates to your apps to fully support iOS 9, you will need to follow one of the options below to ensure demand from InMobi continues to work as expected.

a. Enable ATS only for your domains and domains which are known to comply with ATS requirements. Please see the example below and add to your app’s plist file.

	<key>NSAppTransportSecurity</key>
   	<dict>
        	<key>NSAllowsArbitraryLoads</key>
         	<true/>
         	<key>NSExceptionDomains</key>
        	<dict>
              		<key>example.com</key>
             		<dict>
                   		<key>NSIncludesSubdomains</key>
                   		<true/>
              		</dict>
         	</dict>
    	</dict>

b. Disable ATS entirely which will prevent iOS from forcing HTTPS connections for all URLs. Please see the example below and add to your app’s plist file.

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

If you do not follow the above instructions for apps built on XCode 7, monetization will be severely impacted as some web connections might fail resulting in the ads not rendering correctly and therefore, a bad user experience.

Mandatory and default IPv6

Apple has mandated that all apps submitted to the App Store must support IPv6 starting in early 2016. We are currently in the midst of adding support for IPv6 and expect this to be rolled out in the next few months. To ensure your apps continue to function seamlessly over IPv6 networks, we recommend that you only use the OS networking frameworks (e.g., “NSURLSession”), avoid use of IPv4-specific APIs, and avoid using hard-coded IP addresses in URLs in your apps.

Bitcode and App Thinning

The iOS 9 SDK offers App Thinning, which includes compiling bitcode. The App Store and operating system optimize the installation of iOS and watchOS apps by tailoring app delivery to the capabilities of the user’s particular device, with minimal footprint. For publishers who upgrade to the upcoming InMobi SDK, bitcode will be supported out of the box. You must, however, also ensure all other 3rd party libraries used in your app are also compiled to support bitcoding.


Frequently Asked Questions

  1. What will happen if a user installs my app which is already integrated with the InMobi SDK 4.5 and available on the appstore?
    Answer: iOS 9 will not mandate or force all connections to use SSL and hence all HTTP urls will work without any whitelisting required on all iOS Versions.
  2. What will happen if I try to compile my app with the InMobi SDK 4.5 or below with Xcode 7 (and so republish to the app store)?
    Answer: ATS will block all the HTTP connections from the SDK which will then impact your monetization with InMobi. This is not a recommendation integration combination.
  3. What will happen if I try to compile my app with the upcoming InMobi SDK 5.0 with Xcode 6.4 and below?
    Answer: As the minimum Xcode version for the upcoming InMobi SDK 5.0 is Xcode 7, the app cannot be compiled on lower versions of Xcode (i.e. Xcode 6.4 and below). This restriction is required to ensure bitcoding and the other benefits coming with iOS 9 are available to your apps.
  4. What will happen if I try to compile my app with InMobi SDK 5.0 with Xcode 7?
    Answer: This is the ideal situation as SDK 5.0 is specially designed for iOS 9 and is compatible with the changes coming with iOS 9.
  5. What are the currently known issues?
    Answer: There are no known compatibility issues between SDK 4.5 and iOS 9.
  6. Will InMobi continue to serve ads on the current and older InMobi SDKs on iOS 9? What if the SDK crashes or has a problem with a specific creative feature?Answer: We will filter out such scenarios. As of now, there are no known compatibility or crash issues on SDK 4.5 & iOS 9.
  7. Which SDK should a publisher integrate with to be compatible with iOS 9?
    Answer: While we know of no issues between SDK 4.5 and iOS 9, the upcoming SDK 5.0 is being tested exhaustively with iOS 9. SDK 5.0 also contains updates to support the newer features in iOS 9 including ATS and Bitcoding. If the publisher intends to start using Xcode 7.0, they will need to upgrade to SDK 5.0 as the older SDKs cannot be used on Xcode 7.0.


Back to Top