You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

将app.json改为app.config.js后Expo深度链接失效问题排查

深度链接失效问题排查方案

针对你将app.json改为app.config.js后深度链接失效的问题,结合仅修改版本号配置的背景,问题大概率出在环境变量处理或配置解析环节,以下是具体排查方向:

1. 环境变量类型错误或未正确注入

  • 核心问题:Android的versionCode要求是数字类型,但环境变量默认都是字符串,直接赋值会导致Android配置生成异常,间接破坏intentFilters的正确注册;如果APP_VERSION未正确加载,version字段会变成undefined,干扰整体配置的解析逻辑。
  • 验证方法:临时替换为固定值测试:
    version: "1.0.0",
    // ...
    android: {
      // ...
      versionCode: 1,
    }
    
    重新构建后若深度链接恢复,说明是环境变量的问题。
  • 解决方式
    • 确保构建时环境变量已正确注入(EAS Build需在项目设置中配置,本地构建需使用expo-dotenv插件并创建.env文件)。
    • versionCode转为数字类型:
      versionCode: parseInt(process.env.VERSION_CODE, 10),
      

2. 配置解析的隐性错误

  • 核心问题:若环境变量未定义,versionversionCode会变为undefined,Expo解析app.config.js时可能出现隐性错误,导致intentFilters(Android)或associatedDomains(iOS)未被正确生成到原生配置文件中。
  • 验证方法:查看构建日志,搜索是否有version is undefinedversionCode must be a number这类警告/错误信息。

3. 原生配置生成偏差

  • 核心问题app.config.js的动态配置可能导致Expo生成原生配置文件时出现偏差,比如intentFilters的结构未被正确解析。
  • 验证方法:构建后解压APK/IPA,检查原生配置:
    • Android:查看AndroidManifest.xml中是否存在对应share.huddle.am<intent-filter>节点。
    • iOS:查看Info.plistAssociatedDomainsNSAppTransportSecurity的配置是否正确。

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

火山引擎 最新活动