8

私はここでまったくばかげたことをしているに違いありませんが、自分のプロジェクトに PLCrashReporter フレームワークを含めることができません。フレームワークを取得するために行った手順は次のとおりです。

  1. Googleコードの公式プロジェクトサイトから.dmgファイルをダウンロードしました
  2. CrashReporter.framework フォルダーをプロジェクトのルート ディレクトリにコピーしました
  3. プロジェクトに移動し、ターゲットを選択し、[ビルド フェーズ] タブに移動し、[ライブラリとバイナリをリンク] セクションを開き、プラス記号をクリックして、CrashReporter.framework フォルダーを追加することにより、フレームワークを追加しました。

を使用して、クラスファイルにフレームワークを取り込みます

#import <CrashReporter/CrashReporter.h>

4.3 シミュレーターでコンパイルしようとすると、次のエラーが発生します。

アーキテクチャ i386 の未定義シンボル: 「_OBJC_CLASS_$_PLCrashReporter」、参照元: AppDelegate+CrashReporting.o の objc-class-ref 「_OBJC_CLASS_$_PLCrashReport」、参照元: AppDelegate+CrashReporting.o ld の objc-class-ref: symbol( s) アーキテクチャ i386 の clang が見つかりません: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)

デバイスの下でコンパイルすると、すべて問題ありません。含める必要のあるヘッダーまたはライブラリ検索パスはありますか?

アプリは、すべての構成で問題なく XCode 3 でコンパイルされます。

4

3 に答える 3

13

私は同じ問題を抱えていて、それを解決することができました。これが私が完了した手順です...

  1. PLCrashReporter ソース リリースをダウンロードして解凍します。
  2. PLCrashReporter xcode プロジェクトを開きます。このプロジェクトは古い SDK を使用するように設定されており、各ターゲットに必要なすべての SDK を更新して警告を取り除きます。これは、次のステップでコンパイルするためにも必要です。
  3. CrashReporter-iPhoneSimulator ターゲットに移動します。Build Settings の下で、a) [Perform Single-Object Prelink] を [No] に設定し、b) [Mach-O Type] を [Static Library] に設定します。
  4. CrashReport-iPhoneSimulator : [IOS シミュレーション (つまり、iPhone 4.3 シミュレータ)] を選択し、[ビルド] をクリックします。
  5. PLCrashReporter のビルド ディレクトリに移動します。私にとっては、/Users/username/Library/Developer/Xcode/DerivedData/CrashReporter-(ランダムな文字)/Build/Products/Debug-iphonesimulator でした。
  6. 手順 5 のビルド ディレクトリから libCrashReporter-iphonesimulator.a を、クラッシュ レポーターを追加する iphone アプリケーション プロジェクト ディレクトリにコピーします。
  7. iPhone アプリケーション プロジェクトを xcode で開きます。
  8. PLCrashReporter バイナリ リリースをダウンロードし、フレームワークをローカル ディレクトリに抽出します。
  9. このSO 投稿を使用して、CrashReporter フレームワークをプロジェクトに追加します。
  10. 手順 9 と同じ手順に従って、libCrashReporter-iphonesimulator.a スタティック ライブラリをビルド フェーズの "Link Binary with Libraries" セクションに追加します。スタティック ライブラリを追加する場合、*.framework ディレクトリは必要ありません。
  11. Target の「Link Binary with Libraries」を確認します。libCrashReporter-iphonesimulator.a が CrashReporter フレームワークの上にリストされていることを確認してください。ドラッグ&ドロップで並べ替えができます。

これが役立つことを願っています。

于 2011-08-02T14:11:25.860 に答える
0

含めることを忘れないでください

libstdc++.dylib

「ライブラリとバイナリをリンクする」で。

于 2014-04-06T20:16:38.820 に答える