GM版が出て着々とiOS10対応を進めていることかとおもいますが、特にCocoapodsやCarthageなどを使っている人にとってどうすれば使っているライブラリを即対応できるかというのは死活問題だと思います。
僕も自作のImageniusというアプリをXcode8で動かそうとして少しハマったので共有させていただこうと思います。
早見表
大半はswift3というブランチを作ってくれているのですが、中にはissueをたどらないとどのブランチにあるのかわからないものもあったので共有します。
ライブラリ | Xcode8 GM対応ブランチ | 備考 |
---|---|---|
Alamofire | ver.4.0が正式リリースしSwift3に完全対応しました | |
SwiftyJSON | https://github.com/IBM-Swift/SwiftyJSON が対応 | |
RxSwift/RxCocoa | ver.3.0.0.alpha.1で正式対応 | |
Swifter | master | 対応したようです |
RealmSwift | master | RealmとRealmSwiftの両方をsubmodulesをtrueにして入れる必要があります。 |
とりあえず自分の使っているところのみなのでSwifterなども混ざってますが汗
なにか他にもあれば追記します。
おまけ
Carthageでのブランチ指定方法
以下のように書けます。
github "名前" "ブランチ名"
submodulesをtrueにするには
$ carthage update --use-submodules
です。
Cocoapodsでのブランチ指定方法
以下のように書きます。
pod 'Podでの名前', :git => 'Gitへのアドレス', :branch => 'ブランチ名'
また、submodulesをダウンロードするにはさらに
pod 'Podでの名前', :git => 'Gitへのアドレス', :branch => 'ブランチ名', :submodules => true
と:submodules => true
を付け足してあげます。
注意点
Podでは確かにSwiftで書かれているライブラリに関して上のようにブランチを指定してあげればSwift3.0版のコードがダウンロードされますが、それだけではビルド失敗してしまいます。Podfileの一番最後に以下のコードを付け足して、これらのライブラリをSwift3でビルドするというように指定してあげましょう。
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
なお、後からBuild SettingsのUse Legacy Swift Version
をNO
にしてあげるという方法もあります。