2016-07-07 5 views
3

目標:!はにObjCプロジェクトで撮影cocoapods `use_frameworksを使用しているときRealm.ioがエラーを構築`

手順を迅速ポッドを使用することができる:use_frameworks!を追加することによってPodfileを変更した

  • Ran pod install(Cocoapodsバージョン1.0。0)

結果再び

  • 内蔵ワークスペース(エラー):

    • I取得するには、次Realm.ioエラー(私はにObjCでコーディングしていますので、ポッドがpod 'Realm'からインストール):
      • RLMRealm.h:51:1: Duplicate interface definition for class 'RLMRealm'
      • RLMRealm.h:95:62: Property has a previous declaration
      • 撮影
      • RLMRealm.h:105:38: Property has a previous declaration
      • RLMRealm.h:110:56: Property has a previous declaration
      • RLMRealm.h:115:38: Property has a previous declaration
      • RLMRealm.h:297:28: Property has a previous declaration
      • RLMRealm.h:493:1: Duplicate interface definition for class 'RLMNotificationToken'

    問題解決の手順:

    • (この単純化された質問につながっ編集履歴の前のもの)
    • は、すべてのポッドを削除し、再インストール(効果なし)
    • リンクされていないポッドビルドフェーズにおけるフレームワークと再リンク(効果なし)
    • 洗浄し、構築されました/クリーンビルドフォルダと構築された(効果なし)
    • ""でインポートしようとしました
    • <>、および@import(私のコードでは、現在のすべての輸入が#import <Realm/Realm.h>で行われます)(#import <Realm#import "Realmで検索)(効果なし)
    • は、新しいプロジェクト、コピーされたファイルオーバーを作成し、"@interface RLMNotificationToken"だけのためのポッドインストール(効果なし)
    • 検索プロジェクトフォルダはRLMRealm.hファイルの1つのインスタンスを見つけたので、私は私のすべてのファイルを削除する重複
    • を持っていませんAppDelegate.h/m以外は不正を成功裏#import "R#import <R@import Rを検索
    • を構築した#import <RLMRealm.h>

    質問:

    私は率直に言って本当に混乱し、この時点で何をすべきかわかりません。

    これらのビルドエラーをどのように修正できますか?なぜこうなった?それとも他のどのような問題解決の手順を試すべきですか?(これらの質問のいずれかの回答に感謝します)

  • +0

    ビルドフォルダをクリーンアップしようとしましたか(単に「クリーン」と混同しないでください)? Xcodeでは、Alt/Optionキーを押しながら[プロダクト]メニューに移動し、[ビルドフォルダのクリーンアップ]オプションを選択します。それが役立つかどうかを見てください。 – AustinZ

    +0

    @AustinZ - 良い考え!残念ながらそれはどちらもうまくいかなかった。他に何かお勧めしますか? – smileham

    答えて

    2

    明らかに私のファイルの1つに#import <RLMRealm.h>が含まれていました。私はそれを@import Realm;に変更しました。私は前に検索するときにそれを逃して、私のコードを梳きながらそれを見つけただけです。興味深いことに、それはライブラリでは動作しますが、フレームワークでは機能しません。さて、それを理解して、それはすべて今良いです。

    1

    リアムポッドスウィフトは"RealmSwift"です。あなたはobjective-cのポッドを使っていると思います。

    Realm for Swiftをご覧ください。また、レルム・フレームワークをドラッグ・アンド・ドロップすることもできます。これにより、直面していたエラーから保護されます。

    +0

    私はObjective-Cでコードを書いていますが...「RealmSwift」はSwift用に最適化されておらず、ObjCと幾分互換性がありません(ジェネリック型などは使用できません)? – smileham

    +0

    両方の言語に異なるポッドがあります。それらを同じ意味で使用することはできません。あなたの目標が迅速に使用されるなら、あなたは 'RealmSwift'を使用する必要があります。 – Priyansh

    +0

    ああ、 'use_frameworks! 'でもobjcプロジェクトで素早くポッドを使うことはできないのですか? – smileham

    0

    レルムクラスをインポートする場所をすべて確認してください。私の場合、私は#import <RLMArray.h>を輸入しました。 #import <Realm/RLMArray.h>

    関連する問題