#ios #xamarin #code-signing #provisioning-profile #entitlements
#iOS #xamarin #подписание кода #подготовка-профиль #права
Вопрос:
Я пытаюсь загрузить свое приложение на iPhone. До этого момента я разрабатывал это приложение на симуляторе, но теперь мне нужна возможность получать удаленные уведомления, а также универсальные ссылки. Поскольку удаленные уведомления несовместимы с симулятором, мне нужно подготовить этот iPhone 7 для тестирования.
Всякий раз, когда я пытаюсь развернуть приложение на телефоне, это происходит:
CopyingFile - PercentComplete: 99%
CopyingFile - PercentComplete: 99%
CreatingStagingDirectory - PercentComplete: 5%
ExtractingPackage - PercentComplete: 15%
InspectingPackage - PercentComplete: 20%
TakingInstallLock - PercentComplete: 20%
PreflightingApplication - PercentComplete: 30%
InstallingEmbeddedProfile - PercentComplete: 30%
VerifyingApplication - PercentComplete: 40%
ApplicationVerificationFailed: Failed to verify code signature of
/private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.xJmSvP/extracted/App.iOS. приложение: 0xe8008016 (исполняемый файл был подписан с недопустимыми правами.)
ошибка MT1006: не удалось установить приложение «/Users /kyleformeck/sinum/App.iOS/bin/iPhone/Debug /App.iOS.app» на устройстве «iPhone 7»: Ваши профили подписи кода / подготовки настроены неправильно. Возможно, у вас есть право, не поддерживаемое вашим текущим профилем подготовки, или ваше устройство не является частью текущего профиля подготовки. Пожалуйста, проверьте журнал устройства iOS для получения подробной информации (ошибка: 0xe8008016).
Не удалось загрузить приложение на устройство.
Соответствующая информация журнала устройства:
Error (219) / streaming_zip_conduit: Failed to install application at <private> : Error Domain=MIInstallerErrorDomain Code=13 UserInfo={LibMISErrorNumber=-402620394, LegacyErrorString=<private>, SourceFileLine=199, FunctionName=<private>, NSLocalizedDescription=<private>}
Я пробовал несколько разных способов исправить эту проблему, и, похоже, ничего не работает.
Я попробовал ручной способ:
-
На портале разработчиков Apple я создал новый явный идентификатор приложения, в котором я добавил .dev в конец. т.Е. com.company_name.vnext.ios.app_name.dev.
-
Я выбрал идентификатор команды в качестве префикса идентификатора приложения.
-
Я добавляю необходимые мне права, связанные домены и Push-уведомления, а затем нажимаю Зарегистрировать.
-
Прежде чем я создал новый профиль подготовки, я отредактировал идентификатор приложения, созданный выше, чтобы я мог настроить сертификаты уведомлений. Поэтому я нажал «Редактировать» и создал новый SSL-сертификат разработки, используя Keychains «Запросить сертификат у центра сертификации» и загрузить этот сертификат на портал разработки приложений. Затем я загрузил установленный новый сертификат IOS Push Services.
-
Затем я создал свой новый профиль подготовки, выполнив шаги; в качестве типа я выбрал iOS App Development, выбрал новый идентификатор приложения, который я только что создал, который включает все новые права, которые мне нужны, выбрал мой существующий сертификат разработчика, выбрал новый iPhone 7, который я ранее добавил в нашу учетную запись, зарегистрировав его UDID. Затем я загрузил и установил этот профиль подготовки.
Я знаю, что установка профиля подготовки сработала, потому что перед тем, как я сделал это, опять же, в 10-й раз на этой неделе, я удалил все существующие профили подготовки в Library MobileDevice Provisioning Profiles
Я также попробовал способ Fastlane после ручного создания нового идентификатора приложения с соответствующими правами (все соответствующие данные были помещены в файл соответствия).
fastlane nuke development
fastlane match init
fastlane match development
Вот как выглядит мой файл Entitlements.plist:
<?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>beta-reports-active</key>
<true/>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:<supported_URL_scheme></string>
</array>
<key>aps-environment</key>
<string>development</string>
</dict>
</plist>
Я также убедился, что мой профиль подготовки — это тот, который я только что создал, а пользовательские права — это файл Entitlements.plist, показанный выше.
Информация об окружающей среде
MacOS Mojave v10.14.4
XCode v10.2 (10E125)
Visual Studio for Mac v8.0.1 (build 1)
Xamarin.iOS v12.6.0.25
iPhone 7 running iOS 12.1.4 (16D57)
Комментарии:
1. Я действительно нашел способ обойти эту проблему, это было удаление бета-отчетов-активного ключа. Тем не менее, мне все еще нужен этот ключ для сборки дистрибутива. Невозможно ли использовать этот ключ в сборках разработки?
2. Нет необходимости добавлять бета-отчеты-активный ключ в стадии разработки. Вы не будете использовать testflight для его тестирования, поскольку оно находится в стадии разработки.