Xcode 8.1へ移行する際の注意点

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

iOS 10およびmacOS Sierraの登場に伴って提供されたXcode 8.0から、早くもiOS 10.1及びmacOS Sierra 10.12.1向けの環境が整ったXcode 8.1がリリースされたが、Xcode 8.0から8.1へ移行する際に落とし穴があるため、そこは要注意である。

Swiftはソースコードから再ビルドする必要がある

まず、Xcode 8.0でビルドされたSwiftのフレームワークは、Xcode 8.1でリンクすることはできない。これは、Swift 3.0を採用していたXcode 8.0に対し、Xcode 8.1ではSwift 3.0.1を採用していること、Swiftコンパイラー及びリンカーはコンパイラーのバージョンを厳密に扱っているため、バージョン間ではバイナリーレベルの互換性はないものとして扱われていることによるものである。

幸いにして、Xcode 8.0でビルドできるプロジェクトではXcode 8.1でも基本的にビルドできるため、そこまで深刻な問題ではなく、ソースコードからビルドしなおせば基本的に問題ない。

なお、Carthageでバイナリーが提供されている場合は、「–no-use-binaries」をつければ、ソースコードからインストールできるようになる。

Objective-Cへの影響は軽微

一方、これによるObjective-Cへの影響は軽微で、特に対策を行う必要はない。

とはいえ、Xcode 8.1では新型MacBook Pro向けに追加された機能もあり、それに向けた機能追加はなされている。

最後に

Xcode 8.1に移行する際に、Swift周りで落とし穴が多く、移行の際には手間取る部分が多いが、しっかり気をつければ良いだろう。なお、規模が大きくなるとバージョンの統一も難しくなるので、ルールを厳格化する、あるいはObjective-Cを使うといった対策が必要である。

Xcodeの移行ではトラブルは付き物ではあるが、新しい環境で開発していきたいものである。

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