gpt4 book ai didi

ios - Firebase 与自定义域的动态链接

转载 作者:行者123 更新时间:2023-11-29 05:15:24 24 4
gpt4 key购买 nike

我已在多个 iOS 应用中集成了 Firebase 动态链接,这些应用位于同一个 Firebase 项目中,并且运行良好。但是当我在同一设备上安装这两个应用程序时,动态链接没有打开设备上的特定应用程序。因此,我在根目录中使用 firebase 和自定义 apple-app-site-association 注册了一个自定义子域。但我仍然遇到同样的问题。我想生成短动态链接,例如

https://apps.mybrand.co.id/partner/xXXx

Files in public folder

enter image description here

apple-app-site-association

{
"applinks": {
"apps": [],
"details": [
{
"appID": "XXXXX.com.XXXX.Customer",
"paths":[ "/customer/", "/brand/"]
},
{
"appID": "XXXXX.com.XXXX.Partner",
"paths": ["/partner/"]
}
]
}
}

Firebase.json

{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"appAssociation": "AUTO",
"rewrites": [
{
"source": "/**",
"dynamicLinks": true
}
],
"headers": [
{
"source": "apple-app-site-association",
"headers": [{"key": "Content-Type", "value": "application/json"}]
}
]
}
}

我使用以下代码来生成链接

//在 firebase 上注册的自定义域 让dynamicLink =“apps.mybrand.co.id”

    //create link url components
var urlComponents = URLComponents()
urlComponents.scheme = "https"
urlComponents.host = dynamicLink
urlComponents.path = "/data"
let queryItem = URLQueryItem(name: "myBrandReferCode", value: "60C38A")
urlComponents.queryItems = [queryItem]

// get the url from url component
guard let linkParameter = urlComponents.url else {
return
}
//print the url string for debugging
print("I am sharing \(linkParameter.absoluteString)")

// create dynamic link components with custom domain
guard let shareLink = DynamicLinkComponents.init(link: linkParameter, domainURIPrefix: "https://apps.mybrand.co.id/partner") else {
print("Unable to create FDL component.")
return
}

shareLink.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.ranosys.DFM-BM")
//temporary app id of another app, same in firebase console app settings
shareLink.iOSParameters?.appStoreID = "359085099"

//call shorten method to get short dynamic link
shareLink.shorten { (shortURL, warnings, error) in

for warning in warnings ?? [String]() {
print(warning)
}

//remove wait view from the button
self.shareCodeButton.removeWaitView()
//if there is any error, print it
if let error = error {
print(error.localizedDescription)
return
}
//if dynamic link is successfully shortened
if let shortLink = shortURL {
//show the activity controller
self.showActivityCoontroller(shortLink)
}
}

但是我收到错误,操作无法完成。您的项目没有动态链接域:https://apps.mybrand.co.id

最佳答案

不确定这是否会对任何人有帮助,但我也遇到了类似的问题。我想设置自己的域用作无密码身份验证的动态链接,而不是默认情况下可以使用的 appname.page.link 动态链接域。相反,我想使用 myowndomain.com/DynamicLinks。

要以这种方式将动态链接与 Firebase 结合使用,您必须将域控制权交给 Firebase,然后 Firebase 将在域的根目录中为您生成 JSON apple-app-site-association 文件。如果您想在此域上托管页面,则需要使用 firebase 托管。换句话说,对于要使用与 Firebase 的动态链接的域,该域必须由 Firebase 通过创建必要的关联 DNS 记录以指向其服务器来控制。

最好创建一个子域来定向到 Firebase,这样您就可以将自己的托管用于主域。 IE。yourdomain.com -> 定向到您的服务器主机Dynamiclinkssubdomain.yourdomain.com -> 定向到 Firebase

确保您已在项目设置下正确设置了正确的 AppID、BundleID、StoreID 和 TeamID。

但是这就是我感到沮丧的地方:我按照预期做了一切,但它仍然不起作用。我联系了 Apple 支持人员,他们说 apple-app-site-association 的传播需要时间。结果花了大约36个小时。现在工作完美。还发现该文件是在根目录中创建的,因此您的 actionCodeSettings.dynamicLinkDomain 需要指向根目录而不是您配置的动态链接前缀目录。

希望这对某人有帮助。花了大约 4 天时间搞清楚动态链接!

关于ios - Firebase 与自定义域的动态链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59238125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com