我们在 iOS 应用商店有一个现场游戏,我目前正在添加一些 Facebook 集成。我正在尝试使用应用程序请求测试深度链接,但接收方不会启动我本地构建的应用程序;相反,它会转到应用商店上的应用页面。我需要更改什么(FB 应用程序设置?Xcode 构建设置?)才能使其正常工作?我只能假设这是可能的...
编辑:应该提到我正在使用最新的 SDK (3.7.1),针对 iOS 6.1 构建。
编辑 2:没有截取屏幕截图并将一堆东西涂黑,我将描述我的 FB 应用程序配置是如何设置的:
在Settings -> Basic
中,我只填写了 中的数据Native iOS App
,其中包括Bundle ID
(与 Xcode 正在构建应用程序的 ID 匹配)、iPhone/iPad App Store ID
(与商店中的实时应用程序匹配),Facebook Login
并且Deep Linking
都已启用,并且URL Scheme Suffix
为空。该应用程序也在Sandbox Mode
. 在Settings -> Permissions
,我有publish_actions
(in User & Friend Permissions
) 和publish_stream
(in Extended Permissions
)。我认为其他一切都是香草。
在项目 plist 中,Bundle identifier
与 FB 应用程序设置中描述的相同。唯一可能的差异是FacebookAppID
plist 中的 与我正在使用的这个特定的 Facebook 测试应用程序不匹配......我认为这无关紧要,但值得一提。
至于实际发送请求,代码如下:
[FBWebDialogs presentRequestsDialogModallyWithSession:nil
message:message
title:nil
parameters:nil
handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
// handle response
}];
我之前也这样做,以确定要连接到哪个 FB 应用程序:
NSString *path = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
#if GO_TO_TEST_APP
NSString *fbAppId = [dict objectForKey:@"TestFacebookAppID"];
#else
NSString *fbAppId = [dict objectForKey:@"FacebookAppID"];
#endif
NSAssert(fbAppId, @"Failed to get Facebook app id from plist file!");
[FBSettings setDefaultAppID:fbAppId];
同样,请求确实被正确发送(尽管我看到与弹出对话框时在这里看到的相同的问题),并且我可以在收件人的 Facebook 帐户上看到请求;只是重定向并没有注意到我已经在设备上安装了应用程序(尽管是使用 Xcode 在本地构建的)。