現在のプロジェクトを新しいXcode9ベータで実行しようとしていますが、実行するとModule compiled with Swift 3.1 cannot be imported in Swift 4.0
と表示されます。どうすればこの問題を解決できますか?私はココアポッドを使用していません。
更新:2017-09-14にリリースされたv2.10.1の時点で、Realmのビルド済みバイナリには、Swift 3.2および4.0用のXcode9でビルドされたフレームワークが含まれています。不要になりました。それらを自分で構築します。
以下の情報は、将来XcodeのプレリリースバージョンでRealmを使用することを検討しているすべての人に関連しています。
現在Realmのビルド済みバイナリを統合している場合、Realmはプレリリースバージョンのビルド済みバイナリを公開しないため、Swift 3.2および4.0をサポートするために、ソースからRealmをビルドするように切り替える必要があります。 Xcode。次の3つの方法のいずれかでソースからレルムを構築できます。
CocoaPodsの使用。
CocoaPodsは常にソースから依存関係を構築します。
カルタゴの使用。
デフォルトでは、Carthageはビルド済みのバイナリをダウンロードしようとしますが、ビルド済みのバイナリが使用中のXcodeのバージョンとは異なるSwiftバージョン用である場合、ソースからのビルドにフォールバックします。
ソースから手動でレルムをビルドしてから、レルムが提供するビルド済みのバイナリと同じように、ビルドされたフレームワークを統合します。
これを行うには、Gitからリリースタグをチェックアウトします。
git clone --recursive https://github.com/realm/realm-cocoa.git
cd realm-cocoa
git checkout v2.10.0
次に、レルムを構築するために関心のあるプラットフォームに対応する次のコマンドのいずれかを実行しますSwiftそのプラットフォームのフレームワーク:
REALM_Swift_VERSION=4.0 sh build.sh ios-Swift
REALM_Swift_VERSION=4.0 sh build.sh osx-Swift
REALM_Swift_VERSION=4.0 sh build.sh watchos-Swift
REALM_Swift_VERSION=4.0 sh build.sh tvos-Swift
ビルドされたフレームワークは、レルムソース内のbuild
ディレクトリに配置され、レルムが提供するビルド済みのバイナリと同じように統合できます。
これらの構築されたフレームワークは、Swift 4.0と同じコンパイラを使用しているため、Swift 3.2を使用するアプリでも機能するはずです。
ソースから手動でレルムをビルドする方法に関するbdashの項目3のフォローアップとして、およびxcodebuildエラー(私も遭遇した)に関するaddzoの質問に答える:回避するために、iPhone6シミュレーターがXcode9用にセットアップされていることを確認してくださいそのエラー。 Realmのビルドスクリプトはそれをターゲットにする必要があると思います。とにかく、これは私にとってそれを解決しました。