web-dev-qa-db-ja.com

AppStoreからアプリを初めてインストールするときにFirebaseDynamicLinkが機能しない

私はFirebaseDynamic Linkを使用してアプリを共有し(> = IOS 9)、イベントにユーザーを招待しています(つまり、アプリをお持ちの場合はDeepLinkでイベントに参加でき、お持ちでない場合は参加します)イベントに参加する前に、アプリをダウンロードするためにアプリストアに送信します)。

Firebaseのドキュメントの手順に従います:

  • 関連するJSONを https://app_code.app.goo.gl/Apple-app-site-association で取得しています。
  • アプリがインストールされている場合、DeepLinkは正常に機能しています。
  • アプリがインストールされていない場合、ディープリンクからアプリストアに移動しますが、初めて開いたときは機能せず、イベントに参加できません。

これが最初のインストールでリンクを取得するための私のコードです:

didFinishLaunchingWithOption

    FIROptions.default().deepLinkURLScheme =  "com.jerem.ProjectAlphaSasasa"
// "com.jerem.ProjectAlphaSasasa" is my app bundle Identifier
    FIRApp.configure()

firebaseのドキュメントに基づいて、最初に開いたときに、次の関数を使用しています。

//MARK: First entry
//when your app is opened for the first time after installation on any version of iOS.
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {
    print("00000000000000000")
    FIRCrashMessage("Link during first installation")
    downloadEventWithDeepLink = true
    downloadUrl = url
    return application(app, open: url, sourceApplication: nil, annotation: [:])

}

//same as previous but for older version ios 8 (not relevant)
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    let dynamicLink = FIRDynamicLinks.dynamicLinks()?.dynamicLink(fromCustomSchemeURL: url)
    if let dynamicLink = dynamicLink {

        downloadEventWithDeepLink = true
        downloadUrl = dynamicLink.url
        return true
    }

    return false
}

私の場合、downloadEventWithDeepLinkは、ユーザーがアプリにログインした後にチェックするフラグ(グローバル)です(そこでdownloadUrl変数を使用します)。セットアップで何が間違っていますか?

また、デバッグ方法もわかりません。 XcodeでAppstoreの最初のインストールをシミュレートする方法はありますか?以前の関数(Open Url)が呼び出されているかどうかを確認するには?

ご協力いただきありがとうございます!

27
jerem

実装をテストするには、アプリを削除してリンクをクリックします。AppStoreに移動したら、そこからアプリをインストールせず、代わりにXcodeからインストールすると、動的リンク呼び出しが受信されます。

推奨事項として、それについてはあまり心配しないでください。動的リンクがインストールされている場合にアプリが開くかどうかのテストに集中する必要があります。アプリが起動したときと閉じたときに機能することをテストします。

アプリへのリダイレクトで問題が発生した場合は、バンドルIDをURLタイプに登録し、[機能]タブでドメインを_applinks:your_dynamic_links_domain_として追加したことを確認してください。カスタムドメインを使用している場合は、それをinfo.plistに登録する必要もあります。

プロジェクトでFIROptions.default().deepLinkURLScheme変数を設定したことがなく、すべて正常に機能します

1
Diego Garcia