【问题标题】:Facebook SDK 3.0 HelloFacebookSample build errorsFacebook SDK 3.0 HelloFacebookSample 构建错误
【发布时间】:2012-09-10 21:03:52
【问题描述】:

我在编译 Facebook SDK 3.0 附带的 HelloFacebookSample 应用程序时遇到问题。

首先,我应该说我使用的是 Xcode 4.0.2、iOS SDK 4.3 和 OS X 10.6.8。 (我正在努力寻找一种在不升级到 Lion 或 Mountain Lion 的情况下下载 Xcode 4.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 集成到我的应用程序中!

【问题讨论】:

  • 你有什么项目吗?转到文件-> 新项目。它会构建吗?
  • 嗨,是的,我可以构建所有其他项目,包括在下载 Facebook SDK 之前构建的所有项目。我进行了广泛的研究并解决了前两个构建错误,只是链接错误仍然是一个问题。但 Facebook SDK 3.0 表示它与 iOS 4.0 及更高版本兼容,所以我认为示例测试构建起来完全没有问题。

标签: ios facebook-ios-sdk


【解决方案1】:

我解决了所有问题。该示例似乎无法立即与 iOS 4.3 或 Xcode 4.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) 未找到框架帐户;原来它不是必需的,所以我只是从 Project Navigator 的 Frameworks 组中删除了框架。

4) 我忘了在我的原始帖子中说:关键字strong 是未知的,所以我在文件 FacebookSDK/FacebookSDK.h 的顶部将其宏定义为 retain如下:

#define strong retain

现在 HelloFacebookSample 应用程序编译时没有错误或警告,并且运行良好。与 Facebook 的所有互动都有效。

希望这对将来的其他人有所帮助!如果对你有帮助,请投票!

【讨论】:

    【解决方案2】:

    我不是专家,但我会尽力而为。

    第一个错误是因为你使用了@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-code 4.0.2 和您的 iOS SDK 的项目,以了解主要功能是如何存在的。

    我正在查看另一个错误,我相信它与您正在使用的 iOS SDK 有关。不能只更新SDK吗?不更新 xcode?​​p>

    如果我发现了什么,我会告诉你的

    【讨论】:

    • 嗨,谢谢。我实际上已经解决了构建错误——我只是很困惑为什么我必须对示例代码进行任何更改,因为 Facebook SDK 3.0 说它与 iOS 4.0 及更高版本兼容,而我使用的是 4.3!所以这只是链接错误,这是因为 Accounts.framework 没有找到。有谁知道我在哪里可以找到那个?我查了一下,好像是iOS 5.0自带的,那为什么Facebook SDK 3.0说它兼容iOS 4.0及更高版本?
    猜你喜欢
    • 2017-10-26
    • 2019-02-21
    • 1970-01-01
    • 2015-06-08
    • 2021-01-25
    • 2012-07-20
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多