DynamicLinksに問題があります。アプリがインストールされている場合、iPhoneでは、ダイナミックリンクによりディープリンクを含むiOSアプリが開き、すべてが正常に動作します。ただし、アプリがインストールされていない場合は、Apple App Storeにアプリのページを表示する代わりに、「ダイナミックリンクが見つかりません」というWebページが表示されます。
そして、これが私が全体をどのように構成したかです。 Firebaseプロジェクトの設定で、App Store IDとチームIDを設定しました。
Dynamic Linksの設定で、カスタムドメインとサブパスを使用して新しいURLプレフィックスを定義しました(ドメインのルートにWebサイトがあり、Firebase Hostingでホストされています)。
それで私は https://nomadflare.com/Apple-app-site-association に以下を持っています:
_{"applinks":{"apps":[],"details":[{"appID":"HLAKBN9F84.com.nomadflare.NomadFlare","paths":["NOT /_/*","/*"]}]}}
_
次に、XCodeプロジェクトで、関連ドメインを機能で有効にし、最初の関連ドメインをapplinks:$(DYNAMIC_LINKS_DOMAIN)
に設定します。DYNAMIC_LINKS_DOMAINは、ビルド構成に依存するユーザー定義のビルド設定ですが、prodは_nomadflare.com
_。
情報/ URLタイプでは、カスタムURLスキームは$(PRODUCT_BUNDLE_IDENTIFIER)
です(これもビルド構成によって異なりますが、製品版では_com.nomadflare.NomadFlare
_です)。
最後に、私のSwiftコードでは、ユーザーが[共有]ボタンをタップしたときにトリガーされる次の関数があります。
_ func share() {
guard let uid = Session.shared.authenticatedUser?.id else {
return
}
guard let customDomains = Bundle.main.object(forInfoDictionaryKey: "FirebaseDynamicLinksCustomDomains") as? [String],
let bundleIdentifier = Bundle.main.bundleIdentifier,
let websiteUrlString = Bundle.main.object(forInfoDictionaryKey: "WebsiteUrl") as? String,
let websiteUrl = URL(string: websiteUrlString),
let appStoreID = Bundle.main.object(forInfoDictionaryKey: "AppStoreID") as? String else {
return
}
let urlBase = customDomains[0]
let link = URL(string: "\(urlBase)/?invitedby=\(uid)")
let referralLink = DynamicLinkComponents(link: link!, domainURIPrefix: urlBase)
referralLink?.iOSParameters = DynamicLinkIOSParameters(bundleID: bundleIdentifier)
referralLink?.iOSParameters?.minimumAppVersion = "1.0.0"
referralLink?.iOSParameters?.appStoreID = appStoreID
referralLink?.otherPlatformParameters = DynamicLinkOtherPlatformParameters()
referralLink?.otherPlatformParameters?.fallbackUrl = websiteUrl
KRProgressHUD.show()
referralLink?.shorten { (shortURL, warnings, error) in
KRProgressHUD.dismiss()
if let error = error {
print(error.localizedDescription)
return
}
let invitationUrl = shortURL
let text = NSLocalizedString("Check out NomadFlare. It's a dating app for travellers and digital nomads.", comment: "")
let shareAll = [text, invitationUrl!] as [Any]
let activityViewController = UIActivityViewController(activityItems: shareAll, applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = self.view
self.present(activityViewController, animated: true, completion: nil)
}
}
_
そして、ここに私のInfo.plistの関連するキーがあります:
_<key>FirebaseDynamicLinksCustomDomains</key>
<array>
<string>https://$(DYNAMIC_LINKS_DOMAIN)/app</string>
</array>
<key>LSApplicationQueriesSchemes</key>
<key>WebsiteUrl</key>
<string>$(WEBSITE_URL)</string>
<key>AppStoreID</key>
<string>1474350816</string>
_
そして、_WEBSITE_URL
_は、もう1つのビルド構成固有のユーザー定義設定であり、その値は、本番環境では_https://www.nomadflare.com
_です。
私は私の紹介リンクのlink
部分に何を入れたのか本当にわかりません。
また、アプリのアプリストアIDとダイナミックパラメータのiTunesパラメータを設定する必要があります。よろしくお願いいたします。