uniapp分享功能提示universal link校验不通过如何解决

在uniapp中实现分享功能时,遇到iOS平台提示"universal link校验不通过"的错误该如何解决?已经按照官方文档配置了Associated Domains和apple-app-site-association文件,但分享时仍报错。请问具体需要检查哪些配置项?是否需要服务器端特殊设置?如何验证universal link是否生效?

2 回复

检查universal link配置:确保关联域名文件正确上传到服务器根目录,并在苹果开发者后台正确配置App ID和Associated Domains。使用苹果官方验证工具测试链接有效性。


在 UniApp 中,Universal Link 校验不通过通常是由于配置错误或环境问题导致的。以下是常见原因及解决方案:

1. 检查 Universal Link 配置

  • Apple Developer 配置:确保在 Apple Developer 后台正确配置了 Associated Domains,并启用 App ID 的 Associated Domains 功能。
  • 域名文件验证:在网站的 .well-known 目录下放置 apple-app-site-association 文件(无后缀),确保文件可通过 HTTPS 访问,且内容格式正确。示例内容:
    {
      "applinks": {
        "apps": [],
        "details": [
          {
            "appID": "TeamID.bundleID",
            "paths": ["*"]
          }
        ]
      }
    }
    
    其中 TeamID 是开发者团队 ID,bundleID 是应用包名。

2. UniApp 项目配置

  • manifest.json 中正确填写 iOS 的 Universal Link 地址(需与域名文件中的配置一致):
    {
      "app-plus": {
        "distribute": {
          "ios": {
            "UIApplicationExitsOnSuspend": false,
            "universalLinks": {
              "url": "https://yourdomain.com/"
            }
          }
        }
      }
    }
    

3. 测试与验证

  • 使用苹果官方验证工具检查 Universal Link 配置:
    https://search.developer.apple.com/appsearch-validation-tool/
    
  • 在 iOS 设备上通过备忘录或短信测试链接是否能直接跳转应用。

4. 常见问题排查

  • HTTPS 要求:确保域名支持 HTTPS,且证书有效。
  • 文件路径:确认 apple-app-site-association 文件可通过 https://yourdomain.com/.well-known/apple-app-site-association 直接访问。
  • 缓存问题:首次安装或更新配置后,重启设备清除缓存。

5. UniApp 代码调用分享

在分享功能中正确使用 Universal Link:

uni.share({
  provider: 'weixin',
  scene: 'WXSceneSession',
  type: 0,
  href: "https://yourdomain.com/path", // 使用配置的 Universal Link
  success: function (res) {
    console.log('分享成功');
  }
});

通过以上步骤,通常可以解决 Universal Link 校验不通过的问题。如仍失败,检查网络环境或重新生成配置文件。

回到顶部