概要
Elcaptain で Xcode8 にアップデートしました
案の定既存のプロジェクトがエラーだらけになったのでとりあえずエラーを解消させてビルドできるまで対応してみました
ライブラリ管理は Cocoapod だけ使っています
環境
- Mac OS X 10.11.6
- Xcode 7.3.1 -> Xcode 8.0 (8A218a)
- Cocoapod 1.0.1
やったこと
コードに関して
1 - プロジェクトを選択 -> Target -> プロジェクト名 -> Build Settings -> Use Legacy Swift Language Version -> Yes
2 - Edit -> Convert -> To Current Swift Syntax -> Convert to Swift 2.3 を選択する
Xcode 起動時にもコンバートするかどうか聞かれるので、そこで Later -> Later と選択していれば上記は実施する必要なし
3 - Podfile の編集
Podfile の最後に以下を追記する
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '2.3'
end
end
end
追記したら再度 pod install
し Xcode を開き直す
4 - Module file was created by an older version of the compiler
上記のエラーが発生したので Cmd + Alt + Shift + k でクリーンしsた
5 - NSBluetoothPeripheralUsageDescription について Info.plist について追記
Xcode8 でビルドして iTunesConnect にバイナリをアップロードしたら以下の警告がメールで来て弾かれた
This app attempts to access privacy-sensitive data without a usage description.
The app's Info.plist must contain an NSBluetoothPeripheralUsageDescription key with a string value
explaining to the user how the app uses this data.
どうやら Info.plist に以下を追記する必要があるらしい
Key -> NSBluetoothPeripheralUsageDescription
Value -> Advertisement would like to use bluetooth.
他にも Admob を使っている場合やカレンダーにアクセスする場合などいろいろなケースで説明が必要になるらしい
http://dev.classmethod.jp/smartphone/iphone/ios10-privacy-data-purpose-description/
Storyboard
Storyboard のベースデバイスを iPhone6s にする
すべての ViewController に対して Update Frames を掛ける必要がある
最後に
上記の内容だけ実施すれば自分のプロジェクトはとりあえずビルドできるようになりました
結局 Swift は 3.0 ではなく 2.3 を使っています
ライブラリが順次 3.0 に対応してきたら本体も 3.0 に上げる感じでしょうか
コードコンバートは自動で行ってくれるはずなので、そこまで大変な感じにならないといいのですが、、、
0 件のコメント:
コメントを投稿