Два приложения для iOS, использующих один и тот же идентификатор приложения Facebook - это возможно?
Я использую последнюю версию iOS для Android iOS (поддержка SSO) для подключения своего iPhone-приложения с помощью facebook. До сих пор так хорошо..
Поскольку мое текущее приложение бесплатное с рекламой, я хотел бы создать другую версию без рекламы (за которую я буду взимать плату). Я предпочитаю не использовать метод покупки в приложении.
Проблема, с которой я сталкиваюсь, заключается в том, что с помощью SSO facebook мне нужно привязать приложение iOS к URL-адресу, основанному на идентификаторе приложения facebook. Поскольку у меня есть только одно приложение для facebook, которое будет использоваться обоими приложениями iphone, два приложения iOS привязаны к одному и тому же URL-адресу, и поэтому, когда оба они установлены на устройстве, обратный вызов из facebook в мое приложение не работает (или вместо этого открывает другое приложение).
Есть ли решение для этого, помимо создания другого приложения facebook, посвященного новой версии приложения iphone?
Спасибо.
Ответы
Ответ 1
В последнем Facebook iOS SDK на Github существует метод под названием authorize:delegate:localAppId:
initWithAppId:urlSchemeSuffix:andDelegate:
. Вы можете использовать параметр localAppId
urlSchemeSuffix
, чтобы различать несколько приложений для iOS, которые используют один и тот же идентификатор приложения Facebook. В документации по методу указано:
urlSchemeSuffix - это строка строчных букв, которая добавляется к базовой схеме URL, используемой для SSO. Например, если ваш идентификатор facebook "350685531728", и вы устанавливаете urlSchemeSuffix на "abcd", приложение Facebook ожидает, что ваше приложение будет привязываться к следующей схеме URL: "fb350685531728abcd". Это полезно, если у вас есть несколько приложений для iOS, которые используют один идентификатор приложения Facebook (например, если у вас есть бесплатная и платная версия в одном приложении), и вы хотите использовать SSO с обоими приложениями. Предоставление обоим приложениям разных значений urlSchemeSuffix позволит приложению Facebook устранять неоднозначность схем URL-адресов и всегда перенаправлять пользователя обратно в правильное приложение, даже если на нем установлены как бесплатные, так и приложение.
urlSchemeSuffix поддерживается в версии 3.4.1 и выше приложения Facebook. Если у пользователя установлена более старая версия приложения Facebook, и ваше приложение использует параметр urlSchemeSuffix, SDK будет действовать так, как если бы приложение Facebook не было установлено на устройство и перенаправило пользователя на Safari.
Ответ 2
Мне пришлось использовать FBLoginView в моем приложении, и ни одно из этих решений не работало. Единственное, что я пропустил, это то, что мне нужно было добавить новую запись в файл plist: на этом шаге 2).= "https://developers.facebook.com/docs/ios/troubleshooting#sharedappid" rel= "noreferrer" > , описанный здесь.
Предположим, что ваш идентификатор приложения - 123456, что я должен был сделать:
1) В своем приложении facebook добавьте суффикс схемы URL-адреса в разделе iOS:
![enter image description here]()
2) В обоих приложениях перейдите в приложение .plist и добавьте следующую запись:
![enter image description here]()
Обратите внимание, что значение должно быть одним из добавленных суффиксов схемы URL.
3) Также измените свою схему URL для Facebook в файле .plist в fb. Например, fb123456client
![enter image description here]()