• Product and Technology

iOS 9即将到来,您的App准备好了吗?

Kevin Wang
Kevin Wang
5 min read
Posted on September 10, 2015
iOS 9即将到来,您的App准备好了吗?

苹果的iOS 9操作系统将于9月16日开放下载,其中包含了许多项改变,可能会影响到您App的广告变现效果。我们希望借此机会向您重点说明这些改变并告知您如何减少可能会对您的广告收入产生的影响。

InMobi SDK更新信息

为了确保流畅的用户体验,并使您能够通过我们的SDK减少本次iOS 9升级对您App广告变现效能的不利影响,我们将于第一时间发布对于iOS9系统的全面支持,包括支持新的优化以及苹果推荐的最佳实践方案。同时我们也建议您及时对iOS 9做好优化和适配准备,并在第一时间升级我们最新版的InMobi SDK(9月中发布)。关于重点新功能的细节介绍,请见如下说明:

App传输安全防护(ATS)

在iOS 9中,苹果新增了一项名为App传输安全防护(App Transport Security, ATS)的默认设置,这项设置要求App必须通过SSL协议进行网络连接。同时,ATS对于SSL协议的版本、加密密码和用户强制HTTPs连接的密钥长度都有特定的要求。我们正在通过与100多家业内合作伙伴一起合作,使大家的平台能够一起支持和兼容这些改变。与此同时,为了使您的App能够完全支持iOS9,您需要遵循以下选项中的一项设置要求以确保来自InMobi的广告请求能够继续如期正常运作。

a) 仅对您的域名或您已知符合ATS要求的域名开启ATS功能,具体可参考如下示例并加入到您的应用参数列表文件中。

	<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) 完全关闭ATS以防止iOS对所有的URL强制进行HTTPS连接,具体可参考如下示例并添加到您的应用参数列表文件中。

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

如果您没有对基于XCode 7的App遵循以上指引进行操作,网络连接将有可能会失败,从而导致广告无法被正确地展示并破坏用户体验,广告变现的效果也会因此大打折扣。

强制并默认设置IPv6

苹果已经强制要求,从2016年初开始,所有提交到苹果应用商店的App必须支持 IPv6。我们正在进行增加对IPv6提供全面支持的准备工作,预计在未来几个月内将完成发布。为了确保您的App能够继续无缝地运行在IPv6网络上,我们建议您只使用操作系统的网络框架(例如:“NSURLSession”),避免使用针对IPv4的API,以及避免在您App的URL中使用硬编码的IP地址。

Bitcode和应用瘦身

iOS 9 SDK提供了包含bitcode编译的应用瘦身功能。苹果应用商店及操作系统将通过裁剪App被传输到用户特定设备的容量并最小化footprint来优化iOS和watchOS应用的安装。对于升级到InMobi即将推出的SDK的开发者, Bitcode功能将获得非常全面的支持。但是,您必须确保集成在您的应用内的其他第三方插件也同样能够支持Bitcode编译。

常见问题解答

1. 如果用户已经通过苹果应用商店安装了我的应用但我的应用集成的是InMobi SDK 4.5版本,将会产生什么后果?
解答:iOS 9并不强制或者强迫所有的连接必须使用SSL协议, 因此HTTP的url在所有的iOS版本上都不会受到白名单等约束性要求的限制。

2. 如果我试图基于将我的App在Xcode7的基础上集成InMobi SDK 4.5或者以下版本的SDK(并在苹果应用商店重新上线),将会产生什么后果?
解答:ATS将会阻止所有来自于SDK的HTTP连接,您通过InMobi进行的广告变现将会受到影响,因此我们不建议这样的技术集成组合。

3. 如果我试图在Xcode 6.4和更低版本的基础上集成InMobi即将发布的SDK5.0,将会产生什么后果?
解答:由于即将发布的SDK 5.0所要求的Xcode的最低版本是Xcode 7, 您的app将无法在更低版本的Xcode上编译(例如:Xcode 6.4及更低版本)。这个限制要求是为了确保您的App能够享受到Bitcoding和其他的来自iOS 9系统的先进功能的好处。

4. 如果我试图在 Xcode 7的基础上编译InMobi SDK 5.0,将会产生什么后果?
解答:这是非常完美的情况,因为SDK 5.0本身就是专为iOS 9设计的,因此可以兼容所有来自iOS 9系统的改变。

5. 目前还有哪些已知的问题?
解答:目前没有发现SDK 4.5与iOS 9存在兼容性问题。

6. 对于iOS 9版本的操作系统,InMobi是否还会继续为目前或更低版本的InMobi SDK提供广告服务?如果SDK崩溃了或者与iOS 9的某个新特性发生了冲突该怎么办?
解答:我们将会设法避免这种消极情况的发生。 截止目前,我们还没有任何关于SDK4.5和iOS 9的兼容性及崩溃问题。

7. 为了与iOS 9兼容,开发者应该集成哪个版本的SDK呢?
解答:目前我们没有发现SDK4.5和iOS 9存在任何已知的兼容性问题,同时,我们正在为即将发布的SDK 5.0与iOS 9进行大规模的测试。SDK 5.0包括其更新版本将会全面支持iOS 9的新特性,包括 ATS 和 Bitcodeing. 但如果开发者希望使用Xcode 7.0,那就必须升级到最新版的SDK 5.0,因为更低版本的SDK无法在Xcode 7.0上被使用。

Stay Up to Date

Register to our blog updates newsletter to receive the latest content in your inbox.