11
Xcode7 / iOS 9 でハマったこと 第四回 名古屋iPhone開発者勉強会 ビギナーズ ワンダープラネット 取締役 CTO 村田 知常

Xcode7 / iOS 9 対応でハマったこと

Embed Size (px)

Citation preview

Page 1: Xcode7 / iOS 9 対応でハマったこと

Xcode7 / iOS 9 でハマったこと

第四回 名古屋iPhone開発者勉強会 ビギナーズ

ワンダープラネット 取締役 CTO 村田 知常

Page 2: Xcode7 / iOS 9 対応でハマったこと

App Transport Security

第四回 名古屋iPhone開発者勉強会 ビギナーズ

Page 3: Xcode7 / iOS 9 対応でハマったこと

• HTTP通信を行うと自動的にHTTPS通信に置き換える

• 置き換えるというか、エラーで通信できない

• 暗号化スイートは TLS v1.2以上

• HTTPなどでアクセスをする場合はinfo.plistにドメイン指定

• Xcode7でビルドしたiOS9用のアプリがATSの対象

• Xcode6なら大丈夫だが、いつまでXcode6が許されるか…

• 単純にWebページを開く程度であれば SFSafariViewController

第四回 名古屋iPhone開発者勉強会 ビギナーズ

Page 4: Xcode7 / iOS 9 対応でハマったこと

<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>xxxx.com</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> <key>NSExceptionRequiresForwardSecrecy</key> <false/> </dict> <key>yyyy.net</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSExceptionRequiresForwardSecrecy</key> <false/> </dict> </dict> </dict>

サブドメインも含めるか trueだとHTTP

接続可能

falseだとTLS1.0などの非推奨の暗号スイー

トも可能

第四回 名古屋iPhone開発者勉強会 ビギナーズ

Page 5: Xcode7 / iOS 9 対応でハマったこと

他のアプリの呼び出し

第四回 名古屋iPhone開発者勉強会 ビギナーズ

Page 6: Xcode7 / iOS 9 対応でハマったこと

<key>LSApplicationQueriesSchemes</key> <array> <string>line</string> <string>twitter</string> <string>fb</string> </array>

canOpenURLを使って他のアプリを起動する場合 info.plist に追加が必要

スキーマを 記述する

第四回 名古屋iPhone開発者勉強会 ビギナーズ

Page 7: Xcode7 / iOS 9 対応でハマったこと

bitcode

第四回 名古屋iPhone開発者勉強会 ビギナーズ

Page 8: Xcode7 / iOS 9 対応でハマったこと

• Javaでいう中間コードに相当するもの

• Apple側でそれぞれのアーキテクチャーに合ったネイティブのコードがコンパイルされるため、パフォーマンスの向上が見込める

• サードパーティーのライブラリーも対応している必要がある

対応していないことが多くビルド時にエラーとなる

第四回 名古屋iPhone開発者勉強会 ビギナーズ

Page 9: Xcode7 / iOS 9 対応でハマったこと

Yes → No に変更

第四回 名古屋iPhone開発者勉強会 ビギナーズ

Page 10: Xcode7 / iOS 9 対応でハマったこと

Launch Image

第四回 名古屋iPhone開発者勉強会 ビギナーズ

Page 11: Xcode7 / iOS 9 対応でハマったこと

第四回 名古屋iPhone開発者勉強会 ビギナーズ

• iPhone6などで実行して画面上下に黒帯が出たらLaunch Imageを疑ってください

• 昔のXcodeで作成したプロジェクトのLaunch ImageはXcode7ではSupportされていない場合も(実体験)

Launch Imageを作り直す