0

http://damienh.org/2009/06/20/setting-up-mgtwitterengine-with-yajl-106-for-iphone-development/の指示に従って、XCode でコンパイルされている MGTwitterEngine のコピーを取得しようとしました。 .

プロジェクトのフレームワークとして YAJL とフレームワークとして OAuthConsumer をインストールしました。プロジェクトをビルドしようとすると、次のエラーが発生します。

Ld build/Debug-iphonesimulator/UFrame.app/UFrame normal i386
cd /Users/twhume/Documents/Projects/UFrame
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk -L/Users/twhume/Documents/Projects/UFrame/build/Debug-iphonesimulator -L/Users/twhume/Documents/Projects/UFrame -F/Users/twhume/Documents/Projects/UFrame/build/Debug-iphonesimulator -F/Users/twhume/Documents/Projects/UFrame -F/Users/twhume/Documents/Projects/UFrame/../../../Desktop/tmp/obj-c/OAuthConsumer/build/Release -filelist /Users/twhume/Documents/Projects/UFrame/build/UFrame.build/Debug-iphonesimulator/UFrame.build/Objects-normal/i386/UFrame.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -framework Foundation -framework UIKit -framework CoreGraphics -framework YAJLiOS -lxml2 -framework OAuthConsumer -o /Users/twhume/Documents/Projects/UFrame/build/Debug-iphonesimulator/UFrame.app/UFrame

Undefined symbols:
  "_OBJC_CLASS_$_OAConsumer", referenced from:
      objc-class-ref-to-OAConsumer in MGTwitterEngine.o
  "_OBJC_CLASS_$_OAToken", referenced from:
      objc-class-ref-to-OAToken in MGTwitterEngine.o
  "_OBJC_CLASS_$_OAMutableURLRequest", referenced from:
      objc-class-ref-to-OAMutableURLRequest in MGTwitterEngine.o
  "_OBJC_CLASS_$_OARequestParameter", referenced from:
      objc-class-ref-to-OARequestParameter in MGTwitterEngine.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

私は Xcode に比較的慣れていませんが、これはリンク エラーのように見えます。OAuth ライブラリが何らかの形で含まれていないということです。しかし、ここで何が起こっているのか正確にはわかりません。答えを探し回っても役に立ちませんでした。問題は、他の何よりも Xcode に慣れていないことにあるのではないかと思います。

また、OAuthConsumer フレームワークをゼロからダウンロードしてビルドし、それを含めることも試みました (MGTwitterEngine ソース コードにバンドルされているバージョンを含める代わりに)。違いはありませんでした。クリーニング、再構築などを行いました。また、libxml2.dylib がプロジェクトのターゲットの下にある「Link Binary With Libraries」グループに含まれていることも確認しました。

これを解決する方法についてのアイデアはありますか?

4

3 に答える 3

4

code.google.comにあるプレーンな Mac 対応の OAuthConsumer の代わりに、jdg の iPhone 対応の OAuthConsumerを使用してみてください。

これは、フレームワークではなく一連のファイルとして提供されます (フレームワークは、XCode がクロスコンパイルを行うため、iPhone では扱いにくい場合があります)。

MGTwitterYAJLParser.mダミアンが提案した変更を加えずに最新の MGTwitterEngine を使用できるはずです。また、彼が指摘するようにガブリエルの YAJLを使用できますが、プロジェクトにソースを含めることもできます。

幸運を!

アダム

于 2011-04-20T20:51:34.330 に答える
1

私は Adam のアドバイスに従いました。最終的にこれを機能させるために必要だったマイナーな編集の 1 つは、次のソースを から に変更することでしたrequestParameterWithNamerequestParameter

    [request setParameters:[NSArray arrayWithObjects:
    [OARequestParameter requestParameterWithName:@"x_auth_mode" value:@"client_auth"],
    [OARequestParameter requestParameterWithName:@"x_auth_username" value:username],
    [OARequestParameter requestParameterWithName:@"x_auth_password" value:password],nil]];
于 2011-10-26T16:23:05.707 に答える
0

これで問題が解決しました。このライブラリを使用して OAAttachment.m/.h (ファイル名は OAAtachment.m/.h) のタイプミスを修正する予定の人や、上記のファイルの fileName インスタンス変数 (変数の名前は filename です)。

于 2011-05-27T17:39:21.073 に答える