使用相同Facebook应用程序ID的两个iOS应用程序 - 是否可能?

Ami*_*aor 18 facebook single-sign-on ios

我正在使用最新的facebook iOS SDK(支持SSO)将我的iPhone应用程序与facebook连接.到现在为止还挺好..

由于我目前的应用程序是免费的广告,我想创建另一个没有广告的版本(我将收取费用).我不想使用应用内购买方式.

我面临的问题是,使用facebook SSO,我需要将iOS应用程序绑定到基于facebook应用程序ID的URL.由于我只有一个Facebook应用程序可供两个iphone应用程序使用,因此两个iOS应用程序绑定到相同的URL,因此当它们都安装在设备上时,从Facebook到我的应用程序的回调不起作用(或而是打开另一个应用程序).

除了创建另一个专门用于新版iPhone应用程序的Facebook应用程序之外,还有解决方案吗?

谢谢.

Zar*_*ony 27

Github上的最新Facebook iOS SDK中,有一个叫做的方法.您可以使用该参数来区分使用相同Facebook应用程序ID的多个iOS应用程序.方法文档说:authorize:delegate:localAppId: initWithAppId:urlSchemeSuffix:andDelegate:localAppId urlSchemeSuffix

urlSchemeSuffix是一个小写字母字符串,附加到用于SSO的基本URL方案.例如,如果您的Facebook ID是"350685531728"并且您将urlSchemeSuffix设置为"abcd",则Facebook应用程序将期望您的应用程序绑定到以下URL方案:"fb350685531728abcd".如果您有多个共享单个Facebook应用程序ID的iOS应用程序(例如,如果您在同一个应用程序上有免费和付费版本)并且您希望在两个应用程序中使用SSO,则此功能非常有用.为两个应用提供不同的urlSchemeSuffix值将允许Facebook应用消除其URL方案的歧义,并始终将用户重定向回正确的应用,即使设备上安装了免费和应用.

Facebook应用程序的3.4.1及更高版本支持urlSchemeSuffix.如果用户安装了较旧版本的Facebook应用程序并且您的应用程序使用了urlSchemeSuffix参数,则SDK将继续进行,就像设备上未安装Facebook应用程序并将用户重定向到Safari一样.

  • 我遇到了同样的问题并且(使用此答案)我通过设置:"fb40000000000006 $ {PRODUCT_NAME}"作为我的网址方案解决了这个问题,并将urlSchemeSuffix设置为按此处建议获得的产品名称:http:// stackoverflow.com/questions/1247142/getting-an-iphone-apps-product-name-at-runtime.这样,SSO可以在共享相同Facebook App ID的应用程序中正确绑定,而无需额外的努力. (2认同)

luc*_*t89 23

我必须在我的应用程序中使用FBLoginView,并且这些解决方案都不起作用.唯一缺少的是我需要在plist文件中添加一个新条目:FacebookUrlSchemeSuffix(在此处记录,在步骤2中).

假设您的App ID是123456,我必须做的是:

1)在您的Facebook应用程序中,在iOS部分添加URL Scheme Suffix:

在此输入图像描述

2)在两个应用程序中,转到应用程序的.plist,并添加以下条目:

在此输入图像描述

请注意,Value必须是添加的URL Scheme Suffix之一.

3)同时将.plist文件中的Facebook URL方案更改为fb.例如,fb123456client

在此输入图像描述