Cordova Ionic v1 应用程序在 IOS 中与 branch.io 深度链接时崩溃

Cordova Ionic v1 App crashes on deep linking with branch.io in IOS

我正在使用 ionic v1 构建一个 cordova 项目。我的应用程序在 android 和 iOS 中运行。但是当我尝试使用分支实现深度链接时,应用程序崩溃了。我也无法跟踪控制台。这是我的应用程序的详细信息。

节点:6.11.2 科尔多瓦:7.1.0 离子:1.7.16

插件列表

branch-cordova-sdk 2.6.24 "branch-cordova-sdk"
com.googlemaps.ios 2.7.0 "Google Maps SDK for iOS"
cordova-custom-config 2.0.3 "cordova-custom-config"
cordova-plugin-admobpro-firebase 2.29.23 "AdMob Plugin Pro"
cordova-plugin-apprate 1.1.7 "AppRate"
cordova-plugin-camera 4.0.3 "Camera"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-console 1.1.0 "Console"
cordova-plugin-device 1.1.7 "Device"
cordova-plugin-dialogs 2.0.1 "Notification"
cordova-plugin-extension 1.5.4 "Cordova Plugin Extension"
cordova-plugin-facebook4 1.7.4 "Facebook Connect"
cordova-plugin-file 4.1.1 "File"
cordova-plugin-file-transfer 1.5.1 "File Transfer"
cordova-plugin-geolocation 4.0.1 "Geolocation"
cordova-plugin-globalization 1.11.0 "Globalization"
cordova-plugin-googlemaps 1.4.5 "cordova-googlemaps-plugin"
cordova-plugin-inappbrowser 2.0.2 "InAppBrowser"
cordova-plugin-network-information 1.3.4 "Network Information"
cordova-plugin-splashscreen 3.2.2 "Splashscreen"
cordova-plugin-statusbar 1.0.1 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-plugin-x-socialsharing 5.1.8 "SocialSharing"
cordova-plugin-x-toast 2.6.2 "Toast"
cordova.plugins.diagnostic 3.1.7 "Diagnostic"
es6-promise-plugin 4.2.2 "Promise"
ionic-plugin-keyboard 1.0.9 "Keyboard"
phonegap-plugin-barcodescanner 6.0.8 "BarcodeScanner"
phonegap-plugin-push 2.1.2 "PushPlugin"

这是我的代码:

Config.xml

<plugin name="branch-cordova-sdk" spec="^2.5.0" />
<branch-config>
<branch-key value="key_live_XXXXXXXX" />
<uri-scheme value="xxxx" />
        <link-domain value="xxxx.app.link" />
        <ios-team-release value="XXXXXXX" />
    </branch-config>

代码:

// for development and debugging only
Branch.setDebug(true)

// for GDPR compliance (can be called at anytime)
Branch.disableTracking(true);

// Branch initialization
Branch.initSession().then(function(data) {
  if (data['+clicked_branch_link']) {
    // read deep link data on click
    alert('Deep Link Data: ' + JSON.stringify(data))
  }
})

该应用程序在 Android 中运行良好。但是在 iOS 中,它一直在崩溃。请帮助

看起来您使用的是旧版本 (v2.6.24) 的 Branch Cordova SDK。最新版本是 v3.1.0。您能否将 SDK 更新到最新版本并检查您是否能够重现 iOS 上的崩溃?

如果您仍然能够重现崩溃,能否通过写信给 support@branch.io 来分享符号化的崩溃报告?

我想通了这个问题。当我尝试使用 xcode 进行调试时,出现找不到分支键的错误。当我检查时, info.plist 文件,分支键不存在。我尝试再次删除和添加插件,但分支密钥仍然没有附加到 info.plist 文件。后来我在 config.xml 文件中添加了以下行,这有助于解决问题。

<config-file mode="replace" parent="branch_app_domain" platform="ios" target="*-Info.plist">
            <string>myApp.app.link</string>
        </config-file>
<config-file mode="replace" parent="branch_key" platform="ios" target="*-Info.plist">
            <string>key_live_XXXXXXXXXXXXXXXXX</string>
        </config-file>

在配置文件中添加以上行后,再次构建应用程序。现在分支密钥已添加到 info.plist 文件并且应用程序正常运行。