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 错误