0

FacebookSDK3.0に付属するHelloFacebookSampleアプリのコンパイルに問題があります。

まず、Xcode 4.0.2、iOS SDK 4.3、OSX10.6.8を使用していると言えます。(LionまたはMountainLionにアップグレードせずにXcode4.2をダウンロードする方法を見つけるのに苦労していますが、これはやりたがりません。)

サンプルプロジェクトをビルドしようとすると、次のビルドエラーが発生します。

1)プログラム内の予期しない「@」

int main(int argc, char *argv[])
{
    @autoreleasepool {    // error on this line
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([HFAppDelegate class]));
    }
}

2)期待される識別子

- (BOOL)application:(UIApplication *)application 
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    // attempt to extract a token from the url
    return [FBSession.activeSession handleOpenURL:url];    // error on this line
}

- (void)applicationWillTerminate:(UIApplication *)application {
    // FBSample logic
    // if the app is going away, we close the session object
    [FBSession.activeSession close];                       // error on this line
}

これらの問題を「解決」することはできますが(正しく解決したかどうかはわかりません)、次のリンクエラーが発生します。

フレームワークが見つかりませんアカウント

コマンド/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clangが終了コード1で失敗しました

誰かが私を助けてくれますか?サンプルプロジェクトを作成することさえできなければ、Facebookをアプリに統合することはできません。

4

2 に答える 2

1

私はすべての問題を解決しました。サンプルはiOS4.3またはXcode4.0.2とすぐには互換性がないようです。これが私がしたことです:

1)プログラム内の予期しない@。次のように変更されました。

int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [NSAutoreleasePool new];
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([HFAppDelegate class]));
}

2)予想される識別子。交換済み

    return [FBSession.activeSession handleOpenURL:url];    // error on this line
...
    [FBSession.activeSession close];                       // error on this line

    return [[FBSession activeSession] handleOpenURL:url];
...
    [[FBSession activeSession] close];

3)フレームワークが見つからないアカウント。必須ではないことがわかったので、ProjectNavigatorのFrameworksグループからフレームワークを削除しました。

4)元の投稿で言うのを忘れました:キーワードstrongが不明だったのでretain、ファイルFacebookSDK/FacebookSDK.hの先頭にあるように次のようにマクロ化しました。

#define strong retain

そして今、HelloFacebookSampleアプリはエラーや警告なしでコンパイルされ、正常に動作します。Facebookとのすべてのやり取りは機能します。

これが将来誰か他の人に役立つことを願っています!それがあなたを助けるならば、それを投票してください!

于 2012-09-11T19:42:10.443 に答える
0

私は専門家ではありませんが、最善を尽くします。

最初のエラーは、'eがを使用しているためです@autoreleasepool。これは自動リリースプールのまったく新しい構文だと思います。それがこのようなものになる前は:

NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
NSString *string;
string = [[[NSString alloc] init] autorelease]; // NSString or any other allocated objects
                                                // With autorelease tag
/* use the string */
[pool drain];

X-code4.0.2とiOSSDKのプロジェクトを調べて、メイン機能がどのように存在するかを確認する必要があります。

私は他のエラーを見ています、それはあなたが使用しているiOSSDKと関係があると思います。SDKのみを更新することはできませんか?xcodeを更新せずに?

何か見つけたらお知らせします

于 2012-09-10T23:09:46.830 に答える