iOS 12.xのプロジェクトをiOS 13対応させる際に気付いたこと

投稿者: | 2019年9月21日

iOS 13用へこれまでの(12.x用の)プロジェクトを更新する

実機にもiOS13アップデートのお知らせが来たので試しにあるプロジェクトを13対応にしようとした。macOS Mojave 10.14.6 上のXcode 11.0 (11A420a)

12.x向けのプロジェクトをビルドする際に、コンパイラーはSwift 5.0.1というパターンが多いと思う。

GitHubなどに上げているプロジェクトのバイナリも5.0.1でビルドしたものかも知れない。

その場合、Xcode 11の5.1コンパイラーでビルドしようとすると

Module compiled with Swift 5.0.1 cannot be imported by the Swift 5.1 compiler

というエラーが出てしまう。

GitHubに入れておいたのは、5.0.1でビルドしたパッケージ(バイナリ)だった。つまりバイナリ互換はなさそうだ。

と言うわけで、Module化してある部品も5.1でビルドしなくてはいけない。

「コードを書くと言う面」に限れば5.1、5.0.1の差異は小さかったので、ビルドできないことはないと思うが、振る舞いが異なる可能性があるので、悩ましい問題ではある。

まとめ

プロジェクトにバイナリとして組み込んでいる各モジュールもSwift 5.1でビルドし直さなくてはならない。

GitHub等のみで管理していると大規模プロジェクトでは厳しいだろう。なんらかの構成管理ツールが必要かも知れないと思い始めた。

コメントを残す