1

新しいプロジェクトに含めようとしている古い 32 ビットの非 ARC フレームワーク (プリコンパイル済み、ソースにアクセスできない) がいくつかあります。プロジェクトは正常にビルドされますが、単体テストを実行しようとすると、次のエラーが表示されます。

[...]MappingKitTests.octest のテスト バンドルを読み込めませんでした。Objective-C ランタイム情報が、テスト リグで必要なランタイム情報と一致しないためです。これはおそらく、テスト リグが Objective-C ガベージ コレクションを無効にして実行されているためですが、テスト バンドルには Objective-C ガベージ コレクションが必要です。テスト リグの Objective-C ガベージ コレクションを有効にするには、OBJC_DISABLE_GC 環境変数のない環境で実行します。

私の新しいプロジェクトと単体テストは 32 ビットの非 ARC であるため、このエラーはあまり意味がありません。

プロジェクトとフレームワークは、同じバージョンの OS X SDK でビルドする必要がありますか? それが私が考えることができる唯一のことです。フレームワークは 10.6 SDK で構築され、私の新しいプロジェクトは 10.8 SDK で構築されています。

4

1 に答える 1

0

私はこれを理解しました。ガベージ コレクション (GC) と自動参照カウント (ARC) の間で混乱していました。このエラーは、特に GC を参照していました。

GCC_ENABLE_OBJC_GC = unsupportedのユーザー定義のビルド設定を追加すると、問題が修正されました。

于 2013-01-04T02:48:22.467 に答える