Сбой приложенияDidBecomeActive с Branch.io на iOS

TL;DR
Ошибка: пробел в URL не закодирован. Будет исправлено ребятами из филиала на их стороне.


Я интегрировал iOS SDK и выполнил все настройки для Universal Links, как описано в руководствах. У меня все правильно настроено (или так кажется), и открытие ссылки приводит меня к приложению. Однако эта проблема, похоже, не связана с функцией deeplinking.

Шаги:

1.– Откройте приложение
2.– Вернитесь на главный экран (не закрывайте приложение)
3.– Откройте приложение еще раз
4.– АВАРИЙНОЕ ЗАВЕРШЕНИЕ

Указанный URL-адрес имеет неподдерживаемую схему. Поддерживаются только URL-адреса HTTP и HTTPS

Сбой строки (BNCStrongMatchHelper.m:114):
UIViewController * safController = [[SFSafariViewControllerClass alloc] initWithURL:[NSURL URLWithString:urlString]];

Но на данный момент urlString является ссылкой https.

Дополнительная информация:

    Fatal Exception: NSInvalidArgumentException
    0 CoreFoundation 0x1819bae38 __exceptionPreprocess
    1 libobjc.A.dylib 0x18101ff80 objc_exception_throw
    2 CoreFoundation 0x1819bad80 -[NSException initWithCoder:]
    3 SafariServices 0x18dd9e3fc -[SFSafariViewController initWithURL:entersReaderIfAvailable:]
    4 [myapp] 0x1002acc00 -[BNCStrongMatchHelper presentSafariVCWithBranchKey:] (BNCStrongMatchHelper.m:114)
    5 [myapp] 0x1002ac590 -[BNCStrongMatchHelper createStrongMatchWithBranchKey:] (BNCStrongMatchHelper.m:66)
    6 [myapp] 0x1002bdef0 -[Branch registerInstallOrOpen:] (Branch.m:1369)
    7 [myapp] 0x1002bdd74 -[Branch initializeSession] (Branch.m:1354)
    8 [myapp] 0x1002bd914 -[Branch initUserSessionAndCallCallback:] (Branch.m:1328)
    9 [myapp] 0x1002bc104 -[Branch applicationDidBecomeActive] (Branch.m:1203)
    10 CoreFoundation 0x18195ceac __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__
    11 CoreFoundation 0x18195c6cc _CFXRegistrationPost
    12 CoreFoundation 0x18195c44c ___CFXNotificationPost_block_invoke
    13 CoreFoundation 0x1819c5494 -[_CFXNotificationRegistrar find:object:observer:enumerator:]
    14 CoreFoundation 0x18189a788 _CFXNotificationPost
    15 Foundation 0x1822a289c -[NSNotificationCenter postNotificationName:object:userInfo:]
    16 UIKit 0x186b8e014 -[UIApplication _stopDeactivatingForReason:]
    17 UIKit 0x186dacdc4 __62-[UIApplication _sceneSettingsPostLifecycleEventDiffInspector]_block_invoke1180
    18 FrontBoardServices 0x18334c7b4 __52-[FBSSettingsDiffInspector inspectDiff:withContext:]_block_invoke27
    19 Foundation 0x1823517e8 __NSIndexSetEnumerate
    20 BaseBoard 0x1832d4728 -[BSSettingsDiff inspectChangesWithBlock:]
    21 FrontBoardServices 0x183347d94 -[FBSSettingsDiff inspectOtherChangesWithBlock:]
    22 FrontBoardServices 0x18334c58c -[FBSSettingsDiffInspector inspectDiff:withContext:]
    23 UIKit 0x186dad648 __70-[UIApplication scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke
    24 UIKit 0x186dad2a4 -[UIApplication scene:didUpdateWithDiff:transitionContext:completion:]
    25 FrontBoardServices 0x18335b7ac __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__
    26 FrontBoardServices 0x18335b618 -[FBSSerialQueue _performNext]
    27 FrontBoardServices 0x18335b9c8 -[FBSSerialQueue _performNextFromRunLoopSource]
    28 CoreFoundation 0x181971124 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
    29 CoreFoundation 0x181970bb8 __CFRunLoopDoSources0
    30 CoreFoundation 0x18196e8b8 __CFRunLoopRun
    31 CoreFoundation 0x181898d10 CFRunLoopRunSpecific
    32 GraphicsServices 0x183180088 GSEventRunModal
    33 UIKit 0x186b6df70 UIApplicationMain
    34 [myapp] 0x1001b6984 main (main.m:16)
    35 libdispatch.dylib 0x1814368b8 (Missing)

person Andres C    schedule 10.05.2016    source источник


Ответы (2)


Алекс из Branch.io с обновлением: после некоторой отладки мы определили, что это произошло из-за пробела в urlString (прошел из номера версии приложения). Удаление этого пробела устранило сбой.

Более постоянное решение со стороны Бранча также находится в разработке.

person Alex Bauer    schedule 11.05.2016
comment
Спасибо парень! Шикарная поддержка, как всегда! - person Andres C; 12.05.2016
comment
Моя (наша) радость! Не стесняйтесь отмечать этот ответ, если считаете, что он полезен для следующего посетителя :) - person Alex Bauer; 12.05.2016

Попробуйте добавить это в свой файл Info.plist:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
person Vishal Chandran    schedule 11.05.2016