Два приложения для iOS, использующие один и тот же идентификатор приложения Facebook - возможно ли это? - PullRequest
18 голосов
/ 13 мая 2011

Я использую последний iOS iOS SDK (поддерживающий SSO) для подключения приложения iPhone к Facebook.Пока все хорошо ..

Поскольку мое текущее приложение свободно от рекламы, я хотел бы создать еще одну версию без рекламы (за которую я буду взимать плату).Я предпочитаю не использовать подход к покупке внутри приложения.

Проблема, с которой я сталкиваюсь, заключается в том, что при использовании единого входа в Facebook мне нужно привязать приложение iOS к URL-адресу, который основан на идентификаторе приложения facebook.Поскольку у меня есть только одно приложение facebook, которое будет использоваться обоими приложениями iphone, два приложения iOS привязаны к одному и тому же URL, и поэтому, когда они оба установлены на устройстве, обратный вызов из Facebook в мое приложение не работает (иливместо этого открывает другое приложение).

Есть ли решение для этого помимо создания другого приложения для Facebook, посвященного новой версии приложения для iphone?

Спасибо.

Ответы [ 2 ]

27 голосов
/ 09 июня 2011

В последнем Facebook iOS SDK на Github есть метод, называемый authorize:delegate:localAppId: initWithAppId:urlSchemeSuffix:andDelegate:.Вы можете использовать параметр localAppId urlSchemeSuffix, чтобы различать несколько приложений iOS, которые используют один и тот же идентификатор приложения Facebook.Документация по методу гласит:

urlSchemeSuffix - это строка строчных букв, которая добавляется к базовой схеме URL, используемой для единого входа.Например, если ваш идентификатор Facebook равен «350685531728», а для параметра urlSchemeSuffix установлено значение «abcd», приложение Facebook будет ожидать, что ваше приложение будет привязано к следующей схеме URL: «fb350685531728abcd».Это полезно, если у вас есть несколько приложений iOS, которые имеют один идентификатор приложения Facebook (например, если у вас есть бесплатная и платная версия в одном приложении), и вы хотите использовать SSO с обоими приложениями.Предоставление обоим приложениям различных значений urlSchemeSuffix позволит приложению Facebook устранять неоднозначность своих схем URL-адресов и всегда перенаправлять пользователя обратно к правильному приложению, даже если на устройстве установлено и бесплатное приложение, и приложение.

urlSchemeSuffix поддерживаетсяна версии 3.4.1 и выше приложения Facebook.Если у пользователя установлена ​​более старая версия приложения Facebook, а в вашем приложении используется параметр urlSchemeSuffix, SDK будет работать так, как если бы приложение Facebook не было установлено на устройстве, и перенаправит пользователя в Safari.

22 голосов
/ 06 января 2015

Мне пришлось использовать FBLoginView в моем приложении, и ни одно из этих решений не сработало. Единственное, чего не хватало, так это того, что мне нужно было добавить новую запись в файл plist: FacebookUrlSchemeSuffix ( задокументировано здесь , на шаге 2).

Предположим, что ваш идентификатор приложения 123456, что мне нужно было сделать:

1) В своем приложении Facebook добавьте суффикс схемы URL в разделе iOS:

enter image description here

2) В обоих ваших приложениях перейдите в .plist приложения и добавьте следующую запись:

enter image description here

Обратите внимание, что значение должно быть одним из добавленных суффиксов схемы URL.

3) Также измените свою схему URL для Facebook в файле .plist на fb. Например, клиент fb123456

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...