Я пытался (безуспешно) использовать Branch, чтобы реализовать глубокую привязку к нашему приложению iOS. URL-адрес ветки перенаправляется непосредственно в App Store и никогда не пытается открыть приложение. Мне что-то не хватает.
Что я сделал:
- Включенный Branch SDK (CocoaPods) Добавлен
branch_key
в приложение PLIST - Добавлена схема URL-адресов для типов URL-адресов в области приложений
- Включено
Associated Domains
как в проекте, так и в консоли разработчика. -
Убедитесь, что файл прав включен в сборку.
-
Зарегистрированный обработчик глубоких ссылок в AppDelegate
Панель инструментов: Настройки → Настройки ссылок:
- "Всегда пытаться открыть приложение" проверяется
- "Схема URI IOS" установлена в пользовательскую схему URI приложения.
- "Включить универсальные ссылки".
-
Идентификатор пакета и префикс приложения Apple установлены правильно.
На вкладке "Маркетинг" на панели "Филиал" я создал одну ссылку. Я отправляю по электронной почте эту ссылку себе и открываю ее на устройстве (Mail.app). Safari открывается, тогда App Store открывается, как будто приложение не установлено.
Вызываются ни application:openURL:sourceApplication:annotation
, ни application:continueUserActivity:restorationHandler
.
Методы AppDelegate:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let branch: Branch = Branch.getInstance()
branch.initSessionWithLaunchOptions(launchOptions, andRegisterDeepLinkHandler: { params, error in
if (error == nil) {
// params are the deep linked params associated with the link that the user clicked -> was re-directed to this app
// params will be empty if no data found
// ... insert custom logic here ...
NSLog("params: %@", params.description)
}
})
return true
}
func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
// pass the url to the handle deep link call
return Branch.getInstance().continueUserActivity(userActivity)
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
// pass the url to the handle deep link call
Branch.getInstance().handleDeepLink(url);
// do other deep link routing for the Facebook SDK, Pinterest SDK, etc
return true
}
Мне не хватает шага конфигурации? Это потому, что приложение установлено с помощью отладки Xcode, а не через магазин приложений? Я ожидаю, что вызовут методы делегирования приложения, но это не так.