Ios 通用链接在本地工作,但不能从AppStore应用程序中工作
从xCode手动安装应用程序后(设备插入MacBook),我可以单击带有Web应用程序链接的邮件,它会将其打开到cordova应用程序而不是Web应用程序中(如预期的那样) 但是当我从AppStore或testFlight下载并安装应用程序(使用完全相同的代码库)时,通用链接被忽略,Web应用程序被打开 当我监视Apache日志并手动安装应用程序时,我得到:Ios 通用链接在本地工作,但不能从AppStore应用程序中工作,ios,cordova,deep-linking,ios-universal-links,Ios,Cordova,Deep Linking,Ios Universal Links,从xCode手动安装应用程序后(设备插入MacBook),我可以单击带有Web应用程序链接的邮件,它会将其打开到cordova应用程序而不是Web应用程序中(如预期的那样) 但是当我从AppStore或testFlight下载并安装应用程序(使用完全相同的代码库)时,通用链接被忽略,Web应用程序被打开 当我监视Apache日志并手动安装应用程序时,我得到: XX.XX.XX.XX - - [29/Aug/2018:14:32:33 +0000] "GET /.well-known/apple-
XX.XX.XX.XX - - [29/Aug/2018:14:32:33 +0000] "GET /.well-known/apple-app-site-association HTTP/1.1" 200 730 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
但是,当从testFlight或AppStore安装应用程序时,没有对该文件的请求
有人能帮我找到一个线索来搜索。。。
如何为我的生产应用程序启用UniversalLink
[编辑]摘自john316的答案
我解压缩了生成的IPA,打开了嵌入式.mobileprovision,我有:
<key>Entitlements</key>
<dict>
<key>keychain-access-groups</key>
<array>
<string>XXXX.*</string>
</array>
<key>get-task-allow</key>
<true/>
<key>application-identifier</key>
<string>XXXX.my.domain.com</string>
<key>com.apple.developer.associated-domains</key>
<string>*</string>
<key>com.apple.developer.team-identifier</key>
<string>XXXX</string>
<key>aps-environment</key>
<string>development</string>
</dict>
权利
密钥链访问组
XXXX.*
获取任务允许
应用程序标识符
XXXX.my.domain.com
com.apple.developer.associated-domains
*
com.apple.developer.team-identifier
XXXX
aps环境
发展
关联的域已启用,但它们不应该有一个包含所有我的
applinks:domains
?的字符串数组吗?根据我观察到的差异(如您所述),在大多数情况下,这是由于开发和分发配置文件的应用程序权限不同所致。即使您可以在应用程序项目设置中明确说明您需要某些功能(在本例中为“关联域”复选框),但如果配置文件中缺少某些权限,Xcode在签名过程中(导出应用程序进行分发时)可能不会引发任何错误
它们可能由于两个原因而丢失-它们可能没有被添加到developer.apple.com门户中用于此概要文件,或者Xcode没有从该门户刷新概要文件。在后一种情况下,它有助于从本地磁盘擦除旧的配置文件,以强制Xcode重新下载它
要验证您的分发文件中是否确实有com.apple.developer.associated domains
权限,您可以解压缩IPA文件,并按照指定检查com.apple.developer.associated domains
键入权限
部分
另一种调试方法是在运行应用程序的AppStore/TestFlight版本时,查看控制台中的设备日志(Xcode->Window->Devices&Simulators->Open Console)。你可以找到一个日志行,当链接正确地进入应用程序的开发版本时,iOS输出该日志行,并将其与失败时的情况进行比较。通常情况下,iOS会在日志中抱怨权利缺失。最终我解决了这个问题: 确保
权利发布.plist
包含正确的权利。在我的例子中,只有权限Debug.plist
具有正确的权限。此外,当您在最后一步导出应用程序时,您通常会看到有关所包含权利的摘要,请确保com.apple.developer.associated domains与相应的applinks
条目一起列出
它应该类似于:
来源:如果您使用Cordova/Ionic v3 有一只虫子 检查以下步骤: 有四个过程 1.应用程序控制台 应用程序id->选择应用程序id→ 已启用关联域->完成 设置配置文件->再次编辑
<key>com.apple.developer.associated-domains</key> <array>
<string>applinks:example.com</string> </array>
com.apple.developer.associated-domains
applinks:example.com
但“权利-Release.plist”并没有改变。我所做的是将生成的行复制粘贴到authentications-Debug.plist。在这之后,我做了与以前完全相同的归档和上传过程,一切都很好
并使用ionic插件deeplinks获取参数并路由您的Deeplink过程
……感谢您稍后首先构建您的项目对于您在Xcode中为通用链接列出的任何主机名,您是否在
hostname/.well Known/apple app site association
中有AASA文件?苹果从应用商店下载应用程序时需要获取该文件。您可以通过访问浏览器中的hostname/.well know/apple app site association
来确保它在那里。更多信息:我有一个AASA文件,可以使用你提供的URL访问。也给我一个全绿色的验证。这听起来很傻,但是你试过重新启动你的手机吗?有时,除非在某些情况下,否则操作系统可能不会检查.well-known文件。另外,要知道有一个影响通用链接的开放bug。我试着重新启动,结果不一样devices@KyleH我刚注意到你写了。
,我想你是说。
谢谢你详细的回答!我试图打开embedded.mobileprovision。我找到了关联域
部分,但它是空的。你有什么想法吗?好问题-我需要先自己试试。但是,您已经有了一个可以使用的构建(dev-one)——您是否也可以将其embedded.mobileprovision文件中的相同行添加到您的问题中?你应该能找到