Приложение не может быть загружено на устройство

#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>}
  

Я пробовал несколько разных способов исправить эту проблему, и, похоже, ничего не работает.

Я попробовал ручной способ:

  1. На портале разработчиков Apple я создал новый явный идентификатор приложения, в котором я добавил .dev в конец. т.Е. com.company_name.vnext.ios.app_name.dev.

  2. Я выбрал идентификатор команды в качестве префикса идентификатора приложения.

  3. Я добавляю необходимые мне права, связанные домены и Push-уведомления, а затем нажимаю Зарегистрировать.

  4. Прежде чем я создал новый профиль подготовки, я отредактировал идентификатор приложения, созданный выше, чтобы я мог настроить сертификаты уведомлений. Поэтому я нажал «Редактировать» и создал новый SSL-сертификат разработки, используя Keychains «Запросить сертификат у центра сертификации» и загрузить этот сертификат на портал разработки приложений. Затем я загрузил установленный новый сертификат IOS Push Services.

  5. Затем я создал свой новый профиль подготовки, выполнив шаги; в качестве типа я выбрал 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 для его тестирования, поскольку оно находится в стадии разработки.