Примечание: я разрабатываю с помощью Xamarin. Аналогичный вопрос размещен на форуме Xamarin здесь
Я создаю приложение под названием, скажем, CompanyApp . Затем я создал для него идентификатор приложения com.Company.CompanyApp вместе с профилем обеспечения распространения, который использует соответствующий идентификатор приложения. Я загрузил двоичный файл, и он работал отлично.
Затем я продолжил создание демонстрационной версии приложения (в основном то же приложение с небольшой модификацией, так что это то же решение и проект, просто другая настройка подписи пакетов ), CompanyAppDemo с новым идентификатором приложения com.Company.CompanyAppDemo , вместе с новый профиль обеспечения распространения, который использует новый идентификатор приложения. Я обновил параметры подписи пакета iOS, чтобы использовать новый профиль обеспечения, и создал IPA. Но когда я загрузил это в Application Loader, я получил следующую ошибку:
[2015-01-23 16:08:21 SGT] ОШИБКА: ОШИБКА ITMS-90164: «Недействительные права подписи кода. Права в подписи вашего пакета приложений не совпадают с теми, которые содержатся в профиле обеспечения. В соответствии с подготовкой профиль, пакет содержит недопустимое значение ключа: 'TEAMID.com.Company.CompanyApp' для ключа 'идентификатор-приложения' в 'Payload / CompanyApp.app / CompanyApp' »
[2015-01-23 16:08:21 SGT] ОШИБКА: ОШИБКА ITMS-90046: «Недопустимые права подписи кода. Подпись пакета вашего приложения содержит права подписи кода, которые не поддерживаются в iOS. В частности, значение 'TEAMID.com.Company .CompanyApp 'для ключа' идентификатор-приложения 'в' Payload / CompanyApp.app / CompanyApp 'не поддерживается. Это значение должно быть строкой, начинающейся с вашего TEAMID, за которой следует точка'. ', За которой следует идентификатор пакета ".
Я отлаживал несколько дней, чтобы понять безрезультатно.
Мне интересно, почему, когда я подписался с новым профилем, ошибка, выданная Application Loader, относится к идентификатору исходного TEAMID.com.Company.CompanyApp вместо TEAMID.com.Company.CompanyAppDemo ? Это ошибка в Xamarin, которая выбирает неправильный профиль подготовки, или мне что-то не хватает? Вам не нужны разные сертификаты для разных приложений, верно?
Обратите внимание, что я всегда обновлял список профилей подготовки в XCode> Preference перед изменением параметра подписи сборки iOS в Xamarin.
источник
У меня была такая же проблема, и я решил ее с помощью простого продукта -> Очистить .
источник
Если кто-то попадает сюда, выполнив поиск ошибок ITMS-90164 и ITMS-90046 с ключами get-task-allow и asp-environment :
Как сказал Дэвид П., « Продукт -> Очистить до того, как новый архив» действительно решил мою проблему.
Я просто хочу добавить, что в моем случае я заметил, что в неисправном xarchive отсутствовал следующий файл:
Перед отправкой этого .xarchive вашему клиенту для производственной подписи вы можете найти файл archived-extended-sizes.xcent и убедиться, что он там.
источник
Наконец, после 2 недель выдергивания волос ..
По некоторым причинам, если в Entitlements.plist нет ключа 'application-identifier', для которого задано значение TEAMID.com.Company.CompanyAppDemo , Xamarin будет использовать исходный идентификатор приложения, то есть TEAMID.com.Company.CompanyApp
Таким образом, решение заключалось в том, чтобы добавить идентификатор приложения, указывающий правильный идентификатор пакета приложения внутри Entitlements.plist. Затем включите plist в Параметры сборки> Подписание пакета iOS.
источник
Та же проблема и решается простым Product -> Clean .
источник
Измените это в Entitlements.plist:
<key>aps-environment</key> <string>development</string>
К этому:
<key>aps-environment</key> <string>production</string>
источник
Это также может быть вызвано тем, что вам нужно согласиться с новым контрактом в iTunes connect. Войдите в iTunes connect, и вы должны увидеть баннер вверху, предлагающий вам согласиться с последним изменением контракта.
источник
Для меня проблема заключалась в том, что Entitlements.plist был добавлен автоматически и был пуст. Убрал его из поля Пользовательские права и решил проблему.
источник
Если вы не выберете соответствующий сертификат выпуска перед упаковкой, появится сообщение об ошибке ITMS-90164.
Настройка сборки -> Идентификация подписи кода -> Выпуск -> Любой SDK для IOS
источник
При архивировании убедитесь, что вы выбрали цель приложения, а не приложение WatchKit.
источник
Ни один из других ответов не решил эту ошибку для меня, но это помогло:
Создайте новое приложение XCode и изучите его настройки подписи кода.
Попытайтесь настроить свое приложение аналогично настройкам подписи и подготовки XCode 7 или Xcode 8 по умолчанию, здесь показан XCode 7, он снова изменился в XCode 8.
источник
Я пытался загрузить сборку из ветки git, которая не была главной. Чтобы решить проблему, я объединил ветку в мастер и построил заново. После этого я смог успешно загрузить сборку.
источник
К этому может привести проект, включающий 2 цели (с 2 идентификаторами разработчика и 2 правами). (Не спрашивайте меня, как это случилось ...)
При архивировании временно удалите другой файл полномочий.
источник
Выполнение правильного Xcode «Выход» и затем перезапуск было последним действием, которое заставило меня работать.
Я изменил идентификатор пакета (для демонстрационной версии) и получил ту же ошибку (подробно описанную в вопросе) при проверке моей заархивированной сборки. Я использую Xcode. Просто закрыть Xcode и снова открыть мой проект было недостаточно, но было достаточно полного выхода. Я предполагаю, что что-то было где-то в кэше.
источник
Я пробовал все, что здесь перечислено, и оказалось, что проблема в моем
.entitlement
файле, в котором были строки, которые я никогда не вставлял, они просто как-то добавлялись.Удалил эти строки и попробовал еще раз, сработало.
источник
Я только что переименовал в grantlements.plist значение доменов доступа из applinks: htts: //domain.app.link на applinks: domain.app.link, это работает как шарм. Ура!
источник
Build Phase
в XcodeУра, ты с этим покончил. Задача решена
источник
Для меня я смог решить эту проблему, снова отключив / включив функцию автоматической подписи кода:
источник
Для меня у меня был неправильный файл в моих настройках Custom Entitlements в разделе iOS Bundle Signing. Удалил и все заработало!
источник
После многочасовых исследований я нашел простое решение.
Вместо того, чтобы использовать загрузчик приложения для загрузки приложения, я использовал Организатор из XCode, и он работал без каких-либо предупреждений при загрузке!
источник
Моя проблема в том, что я использовал неправильный пакет для создания файла IPA
источник
У меня была точно такая же проблема, и это была довольно глупая ошибка. Я не хочу, чтобы кто-то тратил на это время, поэтому для этого:
Итак, что здесь произошло, я ввел цифру «10» в цель развертывания. Вместо этого должно было быть 10.0. Вот что привело меня к печально известной ERROR ITMS-90164/90046: Invalid Code Signing Entitlements для меня!
источник
Вам следует проверить свои права. Это похоже на файл plist. Отредактируйте его до разработки и удалите лишние поля.
введите описание изображения здесь
источник
Мои два цента здесь.
Только сейчас я застрял в этой проблеме, потому что, когда я копирую свой TeamID / Application ID с портала разработчика Apple, это приносит много несвязанной ценности в entity.plist. Я не заметил этого, потому что я использовал Xcode для редактирования entity.plist, и поле ввода не будет отображать все после первого символа новой строки.
В этом случае я предлагаю использовать текстовый редактор для entity.plist.
Спасибо, Самуэль
источник
Попробовав все трюки, прочитанные за последние дни в Stackoverflow, я удаляю файл «xxxxxx.entitlements» и снова создаю его. Я нажимаю на Возможности , выбираю ВКЛ в связанных доменах и добавляю «Домены». Затем в разделе «Возможности»> «Push-уведомления» нажмите «Исправить» «Добавить право на push-уведомления в свой файл полномочий».
Сделав это, позвольте мне сделать АРХИВ Успешно
источник
У меня была такая ссылка
webcredentials:https://************.link
, из-за которой загрузка не удалась. Я удалил его, и проблема была решена.источник