两个iOS应用程序使用相同的Facebook应用程序ID – 可以吗?

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

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

我面临的问题是,与Facebook SSO,我需要绑定iOS应用程序到一个基于Facebook应用程序ID的URL。 由于我只有一个Facebook应用程序被两个iphone应用程序使用,所以两个iOS应用程序绑定到相同的URL,因此当他们都安装在设备上时,从Facebook到我的应用程序的callback不起作用(或打开另一个应用程序)。

除了创build另一个Facebook应用程序专用于新版本的iPhone应用程序,是否有解决scheme?

谢谢。

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

urlSchemeSuffix是附加到用于SSO的基本URLscheme的小写字母的string。 例如,如果您的Facebook ID是“350685531728”,并且您将urlSchemeSuffix设置为“abcd”,则Facebook应用程序将希望您的应用程序绑定到以下URLscheme:“fb350685531728abcd”。 如果您有多个共享一个Facebook应用程序ID的iOS应用程序(例如,如果您在同一应用程序上有免费和付费版本),并且您希望在两个应用程序中使用SSO,则这非常有用。 为这两个应用程序提供不同的urlSchemeSuffix值将允许Facebook应用程序消除他们的URLscheme的歧义,并始终将用户redirect到正确的应用程序,即使免费和应用程序都安装在设备上。

在Facebook应用程序的3.4.1及更高版本上支持urlSchemeSuffix。 如果用户安装了Facebook应用程序的旧版本,并且您的应用程序使用了urlSchemeSuffix参数,则SDK将继续进行,如果Facebook应用程序未安装在设备上并将用户redirect到Safari。

我不得不在我的应用程序中使用FBLoginView,并且这些解决scheme都没有工作。 唯一缺less的是我需要在plist文件中添加一个新条目:FacebookUrlSchemeSuffix( 这里logging在步骤2中)。

假设你的应用程序ID是123456,我要做的是:

1)在你的Facebook应用中,在iOS部分添加一个URL Scheme Suffix:

在这里输入图像说明

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

在这里输入图像说明

请注意,该值必须是已添加的url格式后缀之一。

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

在这里输入图像说明