Xcode7にしてちょっと困ったこと

アプデ作業がようやく落ち着いたので、Xcode7を入れて実験中のアプリを動かそうと思ったら、ハマったのでメモ

PromiseKitがコンパイルエラー

Swift2になった影響で、PromiseKitのコンパイルがエラーになってしまいす。現在対応中のようでCocoapodsには対応バージョンが無い様なので、対応済みブランチを使うようにPodfileを修正しました。

pod 'PromiseKit', :git => 'https://github.com/mxcl/PromiseKit.git', :branch => 'swift-2.0-minimal-changes'


執筆時点の最新バージョンは2.2.1です。近いうちに対応されたら普通に最新版にあげればいけると思います。

iOS9でHTTP通信をドメイン指定で許可する方法

実験アプリでは、外部のテストサイトにアクセスするんですが、iOS9で追加されたApp Transport Security(ATS)の影響で以下のようなエラーが出てアクセスできませんでした。

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.

対応方法としてはATS自体を無効にする方法もあるのですが、以下のようにInfo.plistに設定することでドメイン指定で許可することができます。

f:id:kaz_29:20150926180152p:plain

example.comの部分をアクセス対象のFQDNに変えればOKです。

僕が作っているアプリでも細かな問題が起きて色々対応した(してる)んですが、メジャーバージョンが上がる時はなかなか大変ですね(^^;。

2015/9/28追記

スクショが切れちゃってたんでplistの該当部分を貼っときます。

<key>NSAppTransportSecurity</key>
<dict>
	<key>NSExceptionDomains</key>
	<dict>
		<key>labo.decr.jp</key>
		<dict>
			<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
			<true/>
		</dict>
	</dict>
</dict>