FSSDKShareKit - 初始iOS上的FBSDKShareDialog崩溃

时间:2015-09-30 10:22:48

标签: ios objective-c iphone facebook xcode7

这是我的问题:我已经完成了https://developers.facebook.com/docs/ios/getting-started

中的所有步骤

我已经从官方网站下载了最新的SDK,我已经配置了Facebook应用设置并正确设置了plist文件。

我已将所需的框架复制到Frameworks文件夹中,如下所述: http://i.stack.imgur.com/kYXdq.png

我把它放在我的appDelegate:

    //  AppDelegate.m
#import <FBSDKCoreKit/FBSDKCoreKit.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  return [[FBSDKApplicationDelegate sharedInstance] application:application
    didFinishLaunchingWithOptions:launchOptions];
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
  return [[FBSDKApplicationDelegate sharedInstance] application:application
    openURL:url
    sourceApplication:sourceApplication
    annotation:annotation
  ];
}

在按钮触发的方法中使用FBSDKCore和FBSDKShare之后,我将使用以下代码:

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:@"my URL"];

FBSDKShareDialog *dialog = [[FBSDKShareDialog alloc] init];
dialog.fromViewController = self;
dialog.shareContent = content;
dialog.mode = FBSDKShareDialogModeShareSheet;
[dialog show];

我的应用程序在带有SIGABRT的FBSDKShareDialog *对话框= [[FBSDKShareDialog alloc] init]上崩溃。

你们有什么建议吗?

非常感谢

编辑:

我试过使用FBSDKShareButton,我遇到了同样的问题,在init上崩溃了......谢谢!

2 个答案:

答案 0 :(得分:2)

找到了解决这个问题的方法.. 根据调试模式下的Exception消息。 需要在Info.plist中添加名为LSApplicationQueriesSchemes的参数。

如果您使用的是SDK的v4.6.0,则只需添加:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fb-messenger-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
</array>

参考Facebook SDK文档。 https://developers.facebook.com/docs/ios/ios9

答案 1 :(得分:0)

<i>
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

return [FBAppCall handleOpenURL:url
              sourceApplication:sourceApplication];}       

这段代码对我有用。你可以试试。