You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么我的Universal Link无法打开iOS应用?已完成Firebase配置仍失效

我正在尝试通过Firebase配置Universal Link,预期点击链接时直接打开已安装的iOS应用,但完成所有配置步骤后,点击链接仍然会跳转到Safari,无法唤起应用。以下是我执行的全部操作流程,恳请帮忙定位问题:

已完成的操作步骤

  • 创建新的Xcode项目
  • 添加In-app Purchase Capability,让Xcode将Bundle ID同步到App Store Connect,之后移除该Capability
  • 登录开发者后台,确认Bundle ID可用
  • 在App Store Connect中创建新应用
  • 创建新的Firebase项目,可选择启用Gemini和Google Analytics
  • 向Firebase项目添加iOS应用,填入Bundle ID、昵称以及从App Store Connect获取的App Store ID
  • 下载GoogleService-Info.plist文件,添加到Xcode项目根目录,必要时重命名为GoogleService-Info
  • 通过Swift Package添加Firebase iOS SDK,至少选择一个子模块(比如Firestore)
  • 创建AppDelegate文件,代码如下:
    import SwiftUI
    import FirebaseCore
    
    class AppDelegate: NSObject, UIApplicationDelegate {
        func application(_ application: UIApplication,
                         didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
            FirebaseApp.configure()
            return true
        }
    }
    
  • 在主App结构体中注册App Delegate以初始化Firebase:
    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
  • 执行Cmd + B构建项目,确认无编译错误
  • 获取Team ID,在Firebase项目设置中为iOS应用添加该Team ID
  • 终端操作:
    • 安装/更新nvm:
      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
      
    • 安装Node.js(自动附带npm)
    • 确保/usr/local/bin在环境变量$PATH中:
      export PATH="/usr/local/bin:$PATH"
      
    • 安装Firebase CLI(必要时加sudo):
      npm install -g firebase-tools
      # 如需sudo
      sudo npm install -g firebase-tools
      
    • 登录Firebase CLI:
      firebase login
      
    • 验证CLI正常工作,列出Firebase项目:
      firebase projects:list
      
    • 若出现项目列表错误,重新认证:
      firebase login --reauth
      
  • 本地创建名为Hosting的文件夹,终端导航到该文件夹:
    cd [Hosting文件夹路径]
    
  • 初始化Firebase Hosting:
    firebase init hosting
    
    选择Use an existing project,粘贴Firebase项目ID,设置为公开,配置为单页应用(输入y),跳过GitHub自动部署(选择N)
  • 首次部署:
    firebase deploy
    
  • 配置AASA文件:
    • 进入public文件夹:
      cd public
      
    • 创建.well-known文件夹:
      mkdir .well-known
      
    • 进入该文件夹:
      cd .well-known
      
    • 创建无扩展名的apple-app-site-association文件:
      touch apple-app-site-association
      
    • 用Xcode打开该文件,填入以下内容,替换$TEAM_ID.com.firebase.UniversalLinks为实际的Team ID+Bundle ID:
      {
        "applinks": {
          "apps": [],
          "details": [
            {
              "appId": "$TEAM_ID.com.firebase.UniversalLinks",
              "paths": [
                "NOT /_/*",
                "/*"
              ]
            }
          ]
        }
      }
      
    • 编辑firebase.json,添加AASA文件的Header配置,最终文件内容如下:
      {
        "hosting": {
          "public": "public",
          "ignore": [
            "firebase.json",
            "**/.*",
            "**/node_modules/**"
          ],
          "rewrites": [
            {
              "source": "**",
              "destination": "/index.html"
            }
          ],
          "headers": [
            {
              "source": "/.well-known/apple-app-site-association",
              "headers": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          ]
        }
      }
      
    • 重新部署更改:
      firebase deploy
      
  • 验证AASA文件:
    • 直接访问项目域名下的.well-known/apple-app-site-association文件
    • 通过苹果的验证渠道确认苹果已获取该文件
  • Xcode配置:
    • 进入项目的Signing & Capabilities标签,添加Associated Domains Capability
    • 添加关联域名,格式为applinks:[你的Firebase托管域名],开发阶段可追加?mode=developer,示例:applinks:universallinkdemo-fa91c.web.app?mode=developer
  • 设备端设置:
    • 打开iPhone的设置-开发者选项,启用Associated Domains Development
    • 删除已安装的应用,重启手机
    • 在设置-开发者-诊断中添加Firebase托管域名
  • 已在SwiftUI视图中添加openURL修饰符处理应用内Universal Link

所有步骤执行完毕后,点击Universal Link仍然会打开Safari,无法唤起应用,求帮忙排查问题。

内容的提问来源于stack exchange,提问作者Rebeloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 14:27:03