Facebook SDK 3.0 HelloFacebookSample生成错误
我无法编译Facebook SDK 3.0附带的HelloFacebookSample应用程序。
首先,我应该说我正在使用Xcode 4.0.2,iOS SDK 4.3和OS X 10.6.8。 (我正在努力find一种方式来下载Xcode 4.2,而不升级到狮子或山狮,我不愿意这样做。)
当我尝试构build示例项目时,出现以下构build错误:
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 }
我可以“解决”这些问题(不知道如果我解决他们正确),但然后我得到以下链接错误:
未find框架帐户
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang失败,退出代码1
任何人都可以帮我吗? 如果我甚至无法构build示例项目,我将不会有太多的运气将Facebook集成到我的应用程序!
我解决了所有的问题。 看来这个示例并不是立即与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)未find框架帐户; 事实certificate这不是必需的,所以我刚从Project Navigator中的Frameworks组中删除了框架。
4)我忘了在我原来的post中说:关键字strong
是未知的,所以我把它作为retain
在文件FacebookSDK / FacebookSDK.h的顶部,如下所示:
#define strong retain
现在,HelloFacebookSample应用程序编译时没有任何错误或警告,它工作正常。 所有与Facebook的互动工作。
希望这将有助于未来的其他人! 如果它可以帮助你,请投票!
我不是专家,但我会尽我所能。
第一个错误是因为你使用@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?
如果我能find什么,我会告诉你的