从xCode 手动安装应用程序后(设备已插入MacBook),我可以单击带有Web应用程序链接的邮件,然后将其打开到cordova应用程序而不是Web应用程序中(符合预期)。
但是,当我从AppStore或testFlight 下载并安装应用(具有完全相同的代码库)时,通用链接将被忽略,并且Web应用将打开。 / p>
当我监视Apache日志并手动安装应用程序时,我得到:
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?
我解压缩了生成的IPA,打开了 embedded.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>
已启用关联域,但是它们不应该与我所有的applinks:domains
一起使用字符串数组吗?
答案 0 :(得分:7)
以我观察您所描述的差异为例,在大多数情况下,这是由于开发和发行配置文件的应用程序权利不同所致。即使您可能在应用程序项目设置中明确指出需要某些功能(在本例中为“关联域”复选框),但如果缺少某些权利,Xcode在签名过程中(导出应用程序进行分发时)也不会抛出任何错误。在配置文件中。
它们可能由于两个原因而丢失-它们可能没有在developer.apple.com门户上为此配置文件添加,或者Xcode没有从该门户刷新配置文件。在后一种情况下,它有助于从本地磁盘中删除旧的配置文件,以强制Xcode重新下载它。
要验证您的分发文件中实际上是否拥有com.apple.developer.associated-domains
权利,您可以解压缩IPA文件并按照指定的{{3}检查com.apple.developer.associated-domains
部分中的<key>Entitlements</key>
键}。
另一种调试方法是运行应用程序的AppStore / TestFlight版本时,在控制台中查看设备日志(Xcode-> Window-> Devices&Simulators-> Open Console)。您可以找到正确链接到应用程序开发版本的应用程序中iOS输出的日志行,并将其与失败时的情况进行比较。通常,iOS会在那时抱怨日志中缺少权利。
答案 1 :(得分:3)
最后,我能够解决此问题:
确保Entitlements-Release.plist
包含正确的权利。就我而言,只有Entitlements-Debug.plist
拥有正确的权利。另外,当您在最后一步导出应用时,通常应该会看到有关所包含权利的摘要,请确保在 com.apple.developer.associated-domains 中列出了相应的applinks
条目
它应该类似于:
答案 2 :(得分:1)
如果您使用的是Cordova / Ionic v3
有错误...
检查以下步骤:
有四个过程
1.app控制台
应用程序ID->选择应用程序ID→启用关联域->完成 供应配置文件->重新编辑
AppName->常规<->功能->关联域-> +->
applinks:example.com
例如-https://www.skyscanner.com/apple-app-site-association
例如-https://www.skyscanner.com/.well-known/apple-app-site-association
当json保留为文本时,请勿附加此文件 例如-apple-app-site-association
4.(重要)
(cordova)项目文件夹中有两个文件: 项目->平台-> iOS-> projectNameFolder->
Entitlements-Debug.plist
Entitlements-Release.plist
当我将值applinks:example.com添加到Capabilities-> Associated domains-> Domains时,Entitlements-Debug.plist出现以下行:
<key>com.apple.developer.associated-domains</key> <array>
<string>applinks:example.com</string> </array>
但是Entitlements-Release.plist不变。我要解决的问题是将生成的行从Entitlements-Debug.plist复制粘贴。之后,我执行了与以前完全相同的存档和上传过程,一切正常。
并使用ionic-plugin-deeplinks获取参数并路由Deeplink进程
.......感谢以后先构建您的项目
答案 3 :(得分:-1)
请参考以下链接。
请按照上述步骤操作。您必须更改产品的团队ID
https://medium.com/@abhimuralidharan/universal-links-in-ios-79c4ee038272