Facebook iOS应用程序请求不启动本地构建的应用程序

时间:2013-08-30 18:33:21

标签: ios facebook facebook-ios-sdk

我们在iOS应用程序商店有一个实时游戏,我目前正在添加一些Facebook集成。我正在尝试测试与应用程序请求的深层链接,但收件人方将不会启动我本地构建的应用程序;相反,它会转到应用程序商店的应用程序页面。我需要更改什么(FB应用程序设置?Xcode构建设置?)才能使其正常工作?我只能假设它有可能......

编辑:应该提到我正在使用最新的SDK(3.7.1),针对iOS 6.1构建。

编辑2 :如果没有截取屏幕截图并将一堆东西搞黑了,我将描述我的FB应用配置是如何设置的:

Settings -> Basic中,我只填写了Native iOS App的数据,其中包含Bundle ID (匹配ID Xcode正在构建应用程序),iPhone/iPad App Store ID(与商店中的实时应用匹配),Facebook LoginDeep Linking都已启用,URL Scheme Suffix为空。该应用也位于Sandbox Mode。在Settings -> Permissions中,我有publish_actionsUser & Friend Permissions}和publish_streamExtended Permissions)。我认为其他一切都是香草。

在项目plist中,Bundle identifier与FB应用程序设置中描述的相同。唯一可能的差异是plist中的FacebookAppID与我正在使用的这个特定的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];

同样,请求确实正确发送(虽然我看到了弹出对话框时遇到的问题here),我可以在收件人的Facebook帐户上看到请求;它只是重定向没有发现我已经在设备上安装了应用程序(尽管使用Xcode本地构建)。

1 个答案:

答案 0 :(得分:0)

上面的汤米是对的;我需要在我的URL types -> Item 0 -> URL Schemes文件中调整Info.plist以包含我尝试连接的新测试应用的FB方案(以fb<Facebook App ID>的形式。我已经拥有实时FB应用程序的一个;我只是没有意识到配置步骤存在。