web-dev-qa-db-ja.com

Swift 4でレルムを使用するにはどうすればよいですか?

現在のプロジェクトを新しいXcode9ベータで実行しようとしていますが、実行するとModule compiled with Swift 3.1 cannot be imported in Swift 4.0と表示されます。どうすればこの問題を解決できますか?私はココアポッドを使用していません。

10
Lennart P.

更新: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つの方法のいずれかでソースからレルムを構築できます。

  1. CocoaPodsの使用。

    CocoaPodsは常にソースから依存関係を構築します。

  2. カルタゴの使用。

    デフォルトでは、Carthageはビルド済みのバイナリをダウンロードしようとしますが、ビルド済みのバイナリが使用中のXcodeのバージョンとは異なるSwiftバージョン用である場合、ソースからのビルドにフォールバックします。

  3. ソースから手動でレルムをビルドしてから、レルムが提供するビルド済みのバイナリと同じように、ビルドされたフレームワークを統合します。

    これを行うには、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を使用するアプリでも機能するはずです。

15
bdash

ソースから手動でレルムをビルドする方法に関するbdashの項目3のフォローアップとして、およびxcodebuildエラー(私も遭遇した)に関するaddzoの質問に答える:回避するために、iPhone6シミュレーターがXcode9用にセットアップされていることを確認してくださいそのエラー。 Realmのビルドスクリプトはそれをターゲットにする必要があると思います。とにかく、これは私にとってそれを解決しました。

2
Smartcat