2012-03-30 10 views
4

私はiOS側からMac側にアプリケーションを移植しています。リンカが(x86_64)の代わりにcoredataフレームワークのiOS版を使用しようとしているようで、迷惑なリンクエラーが発生しています。私はフレームワークを削除して再追加し、私はMac版を追加していることを知っている。私もモデルクラスを再生成しました。私はこのエラーを取得しています:CoreDataが私の移植されたiOS-> Mac Appでリンクされないのはなぜですか?

ld: warning: ignoring file /Users/xxxxx/xcode_projects/xxxxx/CoreData.framework/CoreData, file was built for unsupported file format which is not the architecture being linked (x86_64) 
    Undefined symbols for architecture x86_64: 
    "_NSSQLiteStoreType", referenced from: 
    -[CoreDataSingleton persistentStoreCoordinator] in CoreDataSingleton.o 
    "_NSInferMappingModelAutomaticallyOption", referenced from: 
    -[CoreDataSingleton persistentStoreCoordinator] in CoreDataSingleton.o 
    "_NSMigratePersistentStoresAutomaticallyOption", referenced from: 
    -[CoreDataSingleton persistentStoreCoordinator] in CoreDataSingleton.o 
    "_OBJC_CLASS_$_NSManagedObjectContext", referenced from: 
    objc-class-ref in CoreDataSingleton.o 
    "_OBJC_CLASS_$_NSManagedObjectModel", referenced from: 
    objc-class-ref in CoreDataSingleton.o 

    etc... 

    ld: symbol(s) not found for architecture x86_64 


    clang: error: linker command failed with exit code 1 (use -v to see invocation) 

任意の提案を参考になる、おかげで、

ニック

+0

私はプロジェクトを再作成しましたが、リンクエラーを修正するように見えました – nickthedude

+0

実際にこれは以前と同じ方法で起動したcoredataシングルトンクラスを使い始めた時点ではうまくいきませんでした。私はそれはアプリケーションの代理人のためのシングルトンで前方宣言をすることと関係があるかもしれませんが、私はそれを今見ています。 – nickthedude

+0

最後のビットを確認して、古いプロジェクトLOLをビルドしていました。それは実行されているが、私はbeleieveがこの元の問題とは無関係であることに対処するためのより多くの問題があるので、私はこれを解決することを検討している。 – nickthedude

答えて

13

リンクエラーは通常、あなたがプロジェクトにフレームワークを含めていません意味します。

プロジェクトのビルド設定の[ビルド段階]タブの[ライブラリとバイナリをリンク]セクションで、CoreData.frameworkが表示されていることを確認してください。そうでない場合は、「+」ボタンを押して選択します。 enter image description here

+0

ちょっとありがたいことに、私は間違いなくcoredata.frameworkを含んでいたと思います。私が最初にiosプロジェクトからmacプロジェクトにフレームワークをドラッグした何らかの理由で、何か理由があっても新しいアーキテクチャに移行しなかったのです。削除して再追加した後でも、まだMac版ではなくiOS版のcoredataをリンクしようとしていました。 – nickthedude

関連する問題