这是我的设置:
- 我有一个带有自定义和有效 SSL 证书的 AWS CloudFront 分配(来自 ACM)
- CF 分发点指向 S3 存储桶
- 我的域 example.com 是我的 CF 分发的别名的 A 记录
- 我使用以下参数将 apple-app-site-association 和 .well-known/apple-app-site-association 上传到我的存储桶:Public Read, Content-Type=application/pkcs7-mime
我的 apple-app-site-association 如下:
{
"webcredentials": {
"apps": [ "TeamID.BundleId1",
"TeamID.BundleId2" ]
}
}
当然,这些值将替换为我的团队 ID 和我的 2 个应用程序的捆绑包 ID。
当我跑
curl -i https://example.com/apple-app-site-association
或者
curl -i https://example.com/.well-known/apple-app-site-association
我有以下结果:
HTTP/2 200
content-type: application/pkcs7-mime
content-length: 156
date: Wed, 18 Dec 2019 03:08:15 GMT
last-modified: Wed, 18 Dec 2019 03:04:14 GMT
etag: "redacted"
x-amz-server-side-encryption: AES256
accept-ranges: bytes
server: AmazonS3
x-cache: Miss from cloudfront
via: 1.1 redacted.cloudfront.net (CloudFront)
x-amz-cf-pop: redacted
x-amz-cf-id: redacted
{
"webcredentials": {
"apps": [ "TeamID.BundleId1",
"TeamID.BundleId2" ]
}
}
这告诉我该文件有效且托管正确。
在 Xcode 方面,我的目标在 Signing & Capabilities > Associated Domains 中有以下行:
webcredentials:example.com
所以我的权利文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>aps-environment</key>
<string>development</string>
<key>com.apple.developer.associated-domains</key>
<array>
<string>webcredentials:example.com</string>
</array>
</dict>
</plist>
但是,当我转到应用程序上的注册屏幕时,我有以下控制台日志:
[自动填充] 无法显示应用 bundleID 的自动强密码:BundleId 由于错误:无法保存此应用的密码。确保您已为您的应用设置关联域,并在设置中启用自动填充密码
我正在 iOS 13 上的真实设备上进行测试,并且启用了 AutoFill。
注意:我的应用还没有上线(如果我被建议使用 Apple 爬虫又名 App Search API 验证工具)
提前感谢您的帮助!