У нас такая же проблема с Xcode 12.2 и iOS 14.2, и мы применили дополнительные сведения на форуме разработчиков Apple.
Это может быть связано? В документации к связанному файлу домена внизу показан новый раздел, посвященный macOS 11 и iOS. 14:
Начиная с macOS 11 и iOS 14, приложения больше не отправляют запросы на файлы ассоциаций «яблоко-приложение-сайт» напрямую на ваш веб-сервер. Вместо этого они отправляют эти запросы в управляемую Apple сеть доставки контента (CDN), выделенную для связанных доменов.
Обновление - 3 декабря:
Мы многое проверили:
Подпись кода
Наша цель - автоматическое управление подписью. В App Store connect мы искали право:
- Выберите приложение
- Выберите действие
- Выберите сборку
- Прокрутите вниз до раздела "Хранить информацию", в правом столбце отобразятся Права.
com.apple.developer.team-identifier
соответствует префиксу в application-identifier
. Последний точно совпадает со значением в массиве apps
в ассоциации apple-app-site файл на нашем сайте.
Однако при выполнении сборки и запуска с Xcode на устройстве приложение отладки будет подписано с другим идентификатором подписи:
Разработка Apple: (идентификатор, отличный от com.apple.developer.team-identifier
)
Предполагается, что это приведет к несоответствию с файлом apple-app-site-association. Поэтому мы добавили этот новый идентификатор в существующий файл apple-app-site-association и загрузили на наш сервер:
{
"webcredentials": {
"apps": ["ABCDEF1234.com.domain.appName", // Release ID from App Store
"1234ABCDEF.com.domain.appName"] // Debug ID from Xcode
}
}
Попробовал еще раз, все та же ошибка. Также выполняются обычные вещи вроде:
- Удалите приложение с iPhone и перезагрузите iPhone.
- Папка чистой сборки в Xcode
- Удалите папку Xcode DerivedData из / Users / xxx / Library / Developer / Xcode и перезагрузите MacBook.
Доступность файла apple-app-site-association
При обновлении этого файла на нашем сервере мы обнаружили обновление документации. В июне 2019 года (когда мы запустили это конкретное приложение) упоминалось о размещении файла в 2 папках:
https://<fully qualified domain>/apple-app-site-association
https://<fully qualified domain>/.well-known/apple-app-site-association
Примечание. В настоящее время упоминается только более поздний каталог .well-known
.
Оказалось, что наш файл находится только в первой папке. Мы продублировали его и снова проверили, но ошибка все равно отображается.
Чтобы исключить, что iOS 14 требуется время для обновления изменений файла apple-app-site-association на основе новой управляемой Apple сети доставки контента (CDN), мы даже использовали mode
< параметр href = "https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_associated-domains?language=objc" rel = "noreferrer"> в файле прав:
Если во время разработки приложения ваш веб-сервер недоступен из общедоступного Интернета, вы можете использовать функцию альтернативного режима, чтобы обойти CDN и напрямую подключиться к своему частному домену. Вы включаете альтернативный режим, добавляя строку запроса к праву вашего связанного домена следующим образом:
webcredentials:doamin.com?mode=developer
Опять не повезло.
Версия TestFlight
Чтобы избежать использования отладчика Xcode и его подписи отладки, заархивировали сборку Xcode 12.2 и отправили ее в App Store. Подтвердил права из сборки в App Store Connect, как описано выше. Они соответствуют файлу apple-app-site-association.
Выпущено для внутреннего тестирования TestFlight и протестировано на устройстве. При нажатии на первое текстовое поле пароля предложение пароля не отображается.
Заключение
Хотя нам кажется, что у нас нет вариантов, мы надеемся, что любое из этих упражнений может вдохновить других на поиск решения. Или это просто массовая ошибка Apple, и нам нужно дождаться исправления от них.
person
Martijn
schedule
02.12.2020