ПОМИЛКА ITMS-90164/90046: Недійсні права підпису коду


82

Примітка: Я розробляю за допомогою Xamarin. Подібне запитання розміщено тут на форумі Xamarin

Я створюю додаток з назвою, скажімо CompanyApp . Потім я створив ідентифікатор програми для нього com.Company.CompanyApp , поряд із профілем надання розподілу, який використовує відповідний ідентифікатор програми. Я завантажив двійковий файл, і він працював чудово.

Потім я продовжив створювати демонстраційну версію програми (в основному той самий додаток з невеликими змінами, отже це одне і те ж рішення та проект, лише різні налаштування підпису пакета), CompanyAppDemo з новим ідентифікатором програми com.Company.CompanyAppDemo , разом із новий профіль надання розподілу, який використовує новий ідентифікатор програми. Я оновив параметри підпису iOS Bundle Signing, щоб використовувати новий профіль надання, і створив 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, після чого ставиться крапка'. ', А потім ідентифікатор пакета. "

Я цілими днями налагоджував, щоб безрезультатно це з’ясувати.

Мені цікаво, чому, коли я підписався з новим профілем, помилка, яку викинув Завантажувач додатків, стосується ідентифікатора оригінального TEAMID.com.Company.CompanyApp замість TEAMID.com.Company.CompanyAppDemo ? Це помилка в Xamarin, яка підбирає неправильний профіль забезпечення, чи я чогось пропускаю? Вам не потрібен різний сертифікат для іншого додатка, чи не так?

Зауважте, що я завжди оновлював список профілів надання у розділі XCode> Налаштування перед тим, як змінити параметр підписання збірки iOS у Xamarin.

Відповіді:


133

Якщо хтось потрапляє сюди, шукаючи ПОМИЛКУ ITMS-90046, як я, моє рішення було очистити його та видалити всі попередньо скомпільовані фреймворки (власні), а потім побудувати заново.

Примітка: В описі помилки дещо сказано про ключове "aps-середовище" як "розвиток".

Редагувати: Фактичне повідомлення про помилку


Ви можете пояснити це трохи більше?
Джон

1
Так, у моєму додатку я використовую власні фреймворки, вони додаються в розділ "Фази побудови" "Цільові залежності", тому, коли я компілюю додаток, вони компілюються і також підписуються. Також у мене в кожному фреймворці є сценарій "фази побудови", який переміщує скомпільований фреймворк в іншу папку. Здається, є помилка з процесом підписання, і я думаю, що ключовою частиною було видалення фреймворків, що змусило компілятор компілювати та підписати їх знову. Ця помилка більше ніколи не повторюється.
кварак

Це спрацювало, я просто очистив його та скомпілював ще раз і нічого не змінив, чому це не вдалося з першого разу? Mystery
rr1g0

Ту ж проблему тут і те саме вирішення! Ти врятував мені сильний головний біль! Велике спасибі.
stefat

7
Все, що мені потрібно було зробити, це зробити Clean ... Це була нова помилка після приблизно 50 збірок, завантажених до TestFlight
Phamer

63

У мене була та ж проблема, і я її вирішив за допомогою простого Продукту -> Очистити .


1
подяка спрацювала для мене, щоб вирішити ПОМИЛКУ ITMS-90164: "Недійсні права підпису коду. Права в підписі набору додатків не збігаються з тими, що містяться в профілі підготовки. Відповідно до профілю надання, пакет містить ключове значення, яке заборонено: "true" для ключа "get-task-allow" у "Payload / Palau Moja.app/Palau Moja" "ПОМИЛКА ITMS-90164:" Недійсні права підпису коду. Права в підписі набору додатків не збігаються з тими, що містяться у профілі забезпечення.
Хосеп Ескобар,

Була та ж помилка, що і Хосеп, і очистити -> архів -> завантажити знову вирішити. Дякуємо за розміщення цього рішення!
маленький

Де ви робите Продукт-> Чистий ? У XCode чи Visual Studio? Я розробляю, використовуючи Xamarin, до речі.
Джеймс Лавері,

20

Якщо хтось потрапляє сюди, шукаючи як помилку ITMS-90164, так і помилку ITMS-90046 за допомогою ключів get-task-allow та asp-environment :

1

Як сказав Девід П., Product -> Clean перед тим, як новий архів вирішив мою проблему.

Я просто хочу додати, що у моєму випадку я зауважив, що в несправному xarchive відсутній такий файл:

2

Перш ніж надсилати цей файл .xarchive вашому клієнтові для виробничого підпису, ви можете захотіти знайти файл archived-expand-entitlements.xcent і переконатися, що він там.


18

Нарешті через 2 тижні висмикування волосся ..

З якихось причин, якщо в списку Entitlements.pill немає ключа «ідентифікатор програми», який має значення TEAMID.com.Company.CompanyAppDemo , Xamarin використовуватиме оригінальний ідентифікатор програми, тобто TEAMID.com.Company.CompanyApp

Отже, рішенням було додати ідентифікатор програми із зазначенням правильного ідентифікатора пакета додатків усередині Entitlements.plist. Потім включіть цей список у Параметри збірки> Підпис пакета iOS.


13
ксамарин - це таке підвищення продуктивності!
Антон Тропашко


8

Змініть це в Entitlements.plist:

<key>aps-environment</key>
<string>development</string>

До цього:

<key>aps-environment</key>
<string>production</string>

5

Це також може бути спричинено тим, що вам доведеться погодитися на новий контракт у iTunes connect. Увійдіть до iTunes connect, і вгорі ви побачите банер, що підказує вам прийняти останню зміну контракту.


1
Your'e a life saver :) Потрібно любити не пов'язані повідомлення про помилки Apple
Yoav Schwartz

4

Для мене проблемою був Entitlements.plist, який був автоматично доданий та порожній. Видалено його з поля Спеціальні права та вирішено проблему.

Перегляд підпису iOS Bundle у Visual Studio 2015


3

Якщо ви не оберете відповідний сертифікат випуску, перш ніж упакувати, буде повідомлено про ПОМИЛКУ ITMS-90164

Налаштування збірки -> Ідентифікація підпису коду -> Випуск -> Будь-який IOS SDK


2

Переконайтесь, що під час архівування ви вибрали ціль програми, а не програму WatchKit.


2

Жодна з інших відповідей не вирішила цю помилку для мене, але це зробило:

  1. Створіть нову програму XCode і перейдіть до вивчення її налаштувань підписання коду.

  2. Спробуйте домогтися того, щоб ваш додаток був встановлений аналогічно налаштуванням підписання та забезпечення XCode 7 або Xcode 8 за замовчуванням.

забезпечення та підписання

  1. Якщо вищезазначеного недостатньо, можливо, вам доведеться зробити це ще раз, але цього разу, перш ніж це зробити, видаліть зі свого Apple Keyring будь-який старий прострочений профіль підготовки або видаліть і повторно ввійдіть у свій обліковий запис розробника яблук (itunes) у XCode уподобання. Переконайтеся, що вийшли з XCODE та RESTART після будь-яких змін. Потім додайте свій обліковий запис ще раз і дозвольте XCode отримати ваш новий підпис та інформацію про команду.

1

Я намагався завантажити збірку з гілки git, яка не була майстром. Щоб вирішити проблему, я об’єднав гілку в майстер і побудував знову. Потім я зміг успішно завантажити збірку.


1

До цього може призвести проект, що включає 2 цілі (з 2 ідентифікаторами розробника, 2 права). (Не питайте мене, як це сталося ...)

Під час архівування тимчасово видаліть інший файл прав.


1

Виконання належного Xcode "Quit", а потім перезапуск було останньою дією, яка змусила мене працювати.

Я змінив ідентифікатор пакета (для демо-версії) і отримав ту саму помилку (як детально описується у запитанні) під час перевірки моєї заархівованої збірки. Я використовую Xcode. Просто закрити Xcode і повторно відкрити мій проект було недостатньо, але повне "Quit" було. Щось, напевно, було кешовано десь, про що я здогадуюсь.


Це зробило це для мене. XCode іноді може бути настільки вибагливим.
Аарон Краус

1

Я спробував усе, перераховане тут, виявилося, проблема в моєму .entitlementфайлі, в якому були рядки, які я ніколи не вставляв, вони просто якось додавались.
Видалили ці рядки і спробували ще раз, запрацювали.


1

Я щойно перейменовував у entitlements.plist значення доменів Access із посилань на додатки: htts: //domain.app.link до додаткових посилань: domain.app.link, це працює як шарм. На здоров’я!


0
  1. Перейдіть до Build Phaseв Xcode
  2. Видаліть усі рамки
  3. Додайте їх назад
  4. Тепер складіть-> Архів-> Завантажити в App Store

Ура, ви закінчили з цим. Проблема вирішена


0

Для мене я зміг це вирішити, знову вимкнувши / увімкнувши функцію автоматичного підписання коду:

введіть тут опис зображення


0

Для мене у мене був неправильний файл у моєму налаштуванні "Спеціальні права" в розділі Підпис пакетів iOS. Видалили, і це спрацювало!


1
Знімок екрана було б непогано.
Warren P

0

Після багатьох годин розслідування я знайшов просте рішення.

Замість того, щоб використовувати завантажувач додатків для завантаження програми, я скористався Органайзером від XCode, і він працював без попереджень під час завантаження!


0

Моя проблема полягає в тому, що я використовував неправильний пакет для створення файлу IPA


0

У мене була точно така ж проблема, і це була досить дурна помилка. Я не хочу, щоб хтось витрачав на це час, тому для цього:

Помилка

Отже, що тут сталося, так це те, що я ввів 10 у ціль розгортання. Натомість це мало бути 10,0. Ось що породило сумнозвісну ПОМИЛКУ ITMS-90164/90046: Недійсні права підписання коду для мене!



0

Мої два центи тут.

Тільки зараз я застряг у цій проблемі, тому що, коли я копіюю свій TeamID / Ідентифікатор програми з порталу розробника apple, що приносить багато не пов’язаних значень для prava.plist. Я не помітив цього, оскільки використовував Xcode для редагування prava.plist, і поле введення не відображатиме все після першого нового символу рядка.

Я пропоную для цього використовувати редактор простого тексту для pravu.plist.

Дякую, Семюеле


0

Спробувавши всі трюки, прочитані останніми днями у Stackoverflow, я видаляю файл "xxxxxx.entitlements" і відновлюю його знову. Я натискаю на Можливості , вибираю УВІМК. У асоційованих доменах та додаю "Domains". Потім у меню Можливості> Push-сповіщення клацніть на Fix «Додати право на push-сповіщення до вашого файлу прав».

Це дозволило мені зробити АРХІВ Успішним


0

У мене було таке посилання webcredentials:https://************.link, яке спричинило невдачу завантаження. Я видалив його, і проблема була вирішена.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.