Swift 2.xと3.xは共存できない

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

これは当たり前といえば当たり前なのだが、Swift 2.xと3.xは共存させることはできない。これはSwiftで書かれたフレームワークを使っている場合に問題となるのだが、Swift 3.xを使ったプロジェクトはSwift 2.xで作られたフレームワークをリンクすることはできない ((その逆も同様)) 従って、Swiftのフレームワークを使い、なおかつアプリもSwiftで開発する場合は要注意である。

これはSwift 3でかなり破壊的な仕様変更が行われたことによるもので、Swift 2.xと3.xでは互換性も失われてしまっていることに起因するものと考えられる。Swiftの場合は今日でこそフレームワークとして利用されることがあるものの、基本的にはアプリ開発で利用されるということを前提としていたフシがあり、今日でもライブラリーには未対応であることを考えると、ライブラリーやフレームワークにはObjective-C系を使うことを想定としているようである。

なお、Objective-Cについては、Swiftのバージョン問わずそのまま使うことができる。Swiftの登場でNullabilityなどのSwiftとの連携をしやすくするための要素は増えた。iOS SDK 10のAPIも増えているが、基本的にはObjective-Cそのままであり、ライブラリーとして使う分にはXcodeのバージョンを変えるだけで概ね問題はなさそうである。

なお、Xcode 8ではiOSのDeployment Targetで指定できるバージョンは8.0以降となっている模様である。これは、すでにiOS 7までのシェアがほとんどなくなっていることで、もうサポート不要と判断されたことによるものと考えられる。

何れにしても、毎年恒例のバージョンアップで大変だとは考えるも、是非とも対応はしっかり行いたいところである。

タイトルとURLをコピーしました