FSSDKShareKit - 初始化 iOS 上的 FBSDKShareDialog 崩溃

Posted

技术标签:

【中文标题】FSSDKShareKit - 初始化 iOS 上的 FBSDKShareDialog 崩溃【英文标题】:FSSDKShareKit - FBSDKShareDialog crash on init iOS 【发布时间】:2015-09-30 10:22:47 【问题描述】:

这是我的问题:我已经放弃了https://developers.facebook.com/docs/ios/getting-started 中的所有步骤

我已经从官方网站下载了最新的SDK,我已经配置了Facebook App Settings并正确设置了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 *dialog = [[FBSDKShareDialog alloc] init] 上崩溃。

大家有什么建议吗?

非常感谢

编辑:

我尝试使用 FBSDKShareButton,但遇到了同样的问题,在初始化时崩溃...谢谢!

【问题讨论】:

【参考方案1】:

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

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

<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

【讨论】:

感谢 Sam Weng,我在 plist 中包含了类似的内容,我不记得是否准确 :) 我会再试一次并告诉你!感谢您的回答顺便说一句【参考方案2】:
<i>
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

return [FBAppCall handleOpenURL:url
              sourceApplication:sourceApplication];       

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

【讨论】:

感谢 Avinash Jadhav 的回答,但 FBAppCall 是 SDK 的旧版本,不适合我

以上是关于FSSDKShareKit - 初始化 iOS 上的 FBSDKShareDialog 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap:解析不在 ios 或 android 上初始化

Branch.io SDK 无法在 Unity3D 中的 Android 构建上初始化

React Native 'yarn run ios' 没有在 M1 上初始化项目

在 Firebase 中,使用 FlutterFire,如何在 iOS 上初始化辅助应用程序?带有选项的 InitializeApp 给出 GOOGLE_APP_ID 错误

在初始屏幕 iOS 8 上强制使用深色状态栏文本颜色

如何在 iOS 上设置 VLCMediaPlayer 的音量?