Не вдалося встановити додаток через право на ідентифікатор програми


304

Неможливо встановити додаток watchOS 2 WatchKit через права на ідентифікатор програми. Це сталося після включення груп додатків на вкладці "Можливості".

Повна помилка:

Помилка встановлення програми

Право на ідентифікатор програми для цієї програми не відповідає визначенню встановленої програми. Ці значення повинні відповідати, щоб було дозволено оновлення.

Знімок екрана 1

Це запуск програми у режимі налагодження на фізичному пристрої. Запуск лише програми iOS працює чудово.

Я знову відключив Групи додатків і видалив додані файли прав, але така ж помилка.


Ви змогли знайти виправлення?
prasad1250

1
Так, відповідь від @ john-nesbitt зробила трюк
Рік Сантос

1
Щодо того, "чому" це відбувається (можливо, це буде корисно перерахувати), у моєму випадку, щодо зміни облікового запису розробника. Був встановлений в обліковому записі A і намагався запуститись після зміни акаунта B. (У мене немає файлу прав у проекті).
bauerMusic

Спершу ознайомтеся з другою відповіддю, вона є всеосяжнішою і не призведе до втрати даних.
аркадій боб

Відповіді:


746

У мене виникла ця проблема з додатком для iPhone, і виправлено її за допомогою наступних кроків.

  • Коли ваш пристрій підключено та відкрито Xcode, виберіть Вікно-> Пристрої
  • На лівій вкладці вікна, що спливе, виберіть проблемний пристрій
  • На панелі деталей праворуч вийміть додаток, який порушує вас, зі списку "Встановлені програми".

Після того, як я це зробив, мій додаток відбудувався і запустився просто чудово. Оскільки ваш додаток є програмою watchOS, я не впевнений, що ви отримаєте такий самий результат, але варто спробувати.


59
Це видалить додаток і весь його вміст. Мені потрібно оновити і не втратити всі мої дані в процесі, якщо це можливо.
Роберт Гаммессон

65
Тож ви видалили додаток
railparade

6
Моя програма не відображалася у списку Windows-> Пристрої, але я видалив її з телефону (натиснувши та утримуючи піктограму), що вирішило проблему. Дякую, Джон.
Стів А

16
Я хочу перевірити міграцію додатків на нову версію, і я не можу цього зробити, якщо видалити існуючий додаток (версія AppStore) з пристрою.
mixly87

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

97

У мене була ця проблема, і я не зміг її вирішити, не видаляючи та перевстановлюючи додаток (возитися з профілями надання, як дехто тут пропонував, не допомогло).

Однак я не втратив існуючих даних тесту. Ось як це зробити для тих, хто має цю проблему в майбутньому:

  1. Перш ніж видалити додаток, відкрийте вікно "Пристрої" Xcode (це cmd-shift-2).
  2. Виберіть свій пристрій і знайдіть своє додаток у списку "Встановлені програми".
  3. Натисніть на значок шестірні та виберіть "Завантажити контейнер ...". Це скопіює всі дані програми на ваш Mac. Збережіть це десь зараз.
  4. Видаліть додаток і перевстановіть його з Xcode. Убийте додаток з Xcode (натисніть кнопку зупинки), щоб він не працював.
  5. Повернувшись до вікна "Пристрої", натисніть на значок шестірні та виберіть "Замінити контейнер ...". Виберіть дані, які ви завантажили на свій Mac на кроці 3.

Потім Xcode відновить ваші раніше збережені дані програми. Тепер у вас є старі тестові дані , і програма має працювати.


3
Це особливо добре працює при використанні функції "автоматичного забезпечення" в Xcode 8.
Стів Мадсен

2
Я щиро бажаю, щоб я прочитав це, перш ніж використовувати відповідь. Тоді державні дані були б збережені. (Дивіться мій коментар вище).
Тім Махер-Де Троєр

1
Це має бути обрана відповідь.
галактикух

100% правильна відповідь, ЯКЩО НЕ ХОЧЕТЕ Втратити свої дані. Слід прийняти відповідь.
аркадій боб

У мене той самий сценарій, але мої корисні дані є у Userdefaults Чи можемо ми відновити це все-таки? Довідка цінується
Рахіш

29

Видаліть будь-які попередні версії програми зі свого iPhone, а потім Очистіть-> Створіть та запустіть ще раз. Ваш додаток повинен плавно працювати на пристрої.

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


28

Ви отримаєте цю помилку, коли ваш префікс AppID не відповідає префіксу раніше встановленого додатка. Якщо ваш додаток уже є в App Store, ви не зможете надсилати оновлення без відновлення оригінального префікса AppID або звернення до Apple.

Вказівки Apple щодо вирішення цієї проблеми: https://developer.apple.com/library/content/technotes/tn2319/_index.html#//apple_ref/doc/uid/DTS40013778-CH1-ERRORMESSAGES-UPGRADE_S_APPLICATION_IDENTIFIER_DOES_OTO__STOEND_OTPEND

Якщо ви не мали наміру змінювати префікс AppID, Xcode підписує ваш додаток неправильним профілем надання.

Якщо ви маєте намір змінити префікс AppID (оскільки додаток було передано новому розробнику або ви переходите зі старого додатка до 2011 року), ви повинні зв’язатися з Apple, щоб перенести існуючий додаток на новий префікс.

Ви також повинні додати previous-application-identifiersправа до свого додатка, перелічивши всі попередні AppID (зі старими префіксами). І ви повинні попросити Apple створити для вас профіль резервування, який включає previous-application-identifiersправо.


2
Мій специфічний профіль, який я використовував для розробки, закінчився, і я помилково створив специфічний для програми. Прочитавши вашу публікацію, я створив новий профіль, який відмітився, і використав його. Працював як шарм. Ваш - найточніша публікація і має бути прийнятою відповіддю. Видалення програми та втрата даних не є хорошим варіантом для багатьох із нас. Дякую!
неописатись

17

Я вирішив це, не видаляючи додаток

З проектом, відкритим у xcode. Проект -> Налаштування збірки -> Підписання коду -> Надання профілів (випадає) Можливо, він встановлений на автоматичне і вибирає неправильний профіль. Відкрийте спадне меню та виберіть правильний, а потім запустіть додаток.


Я спершу спробував видалити та перевстановити додаток. Не працювало. Потім я прокрутився вниз і побачив цю відповідь. Ця збірка не вдалася до цієї помилки лише для автоматизованого інтерфейсу UItests, але не для звичайної збірки, і виявляється, що для звичайної збірки був обраний правильний профіль надання, але не автоматизована збірка UItests. Отже, оновлення, що
сприятливо99

5

Я зіткнувся з тією ж проблемою, і застряг протягом декількох хвилин, і після пошуку, найпростіше рішення, яке я знайшов, - просто видалити встановлений раніше додаток зі свого пристрою вручну і спробувати запустити додаток з Xcode ще раз.

Сподіваюся, це допоможе вам. Всього найкращого...


4

Кроки

  1. Коли ваш пристрій підключено та відкрито Xcode, виберіть Вікно-> Пристрої
  2. Тепер виберіть додаток і завантажте контейнер за допомогою значка налаштування
  3. Видаліть додаток
  4. Знову встановіть додаток за допомогою Xcode
  5. Зупинка від Xcode
  6. Перейдіть у вікно-> Пристрій та виберіть додаток та замініть контейнер, який є резервним копією попереднього додатка

Етапи контейнерів не потрібні, але приємно, якщо ви бажаєте підтримувати дані. Дякую.
Дивовижність


2

Я сам спробував декілька речей, як оновлення / створення нових профілів надання резервів, фіксація прав в Apple Member Center і в проекті, але в моєму випадку мені просто довелося видалити додаток і запустити його знову.

о_О


Право на ідентифікатор програми для цієї програми не відповідає визначенню встановленої програми.

ПРИМІТКА: там написано " ... не відповідає встановленому додатку "

Я думаю, що це сталося зі мною, тому що ми додали нове розширення програми і, можливо, виникли якісь проблеми, пов’язані з міграцією? Не впевнений, але все одно


так, видаліть встановлений додаток на своєму пристрої та повторно запустіть з Xcode. У мене була ця проблема, тому що я додав ціль у Xcode.
Сид Асад Алі

2

Я виявив, що випадково змінив профіль резервування, щоб мати в ньому підстановку.

Тобто, вона перейшла від com.companyname.appnickname до com.companyname. *

Я створив новий профіль резервування з повним ім'ям, правильно вказаним ім’ям, завантажив його, встановив цільовий-> налаштування збірки-> профіль надання цього нового профілю, перезапустив xcode, отримав химерну помилку з xcode (це, здавалося, бентежить мого різних розробників додатків Логіни), знову перезапустили xcode, і він працював!

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


Вам просто потрібно переконатися, що ви використовуєте той самий профіль надання послуг, з якого ви спочатку створили додаток.
mj662

2

У мене була така ж помилка, і я вирішив її, змінивши ідентифікатор групи на щось нове. Після цього він без проблем будує проект.

Мої кроки:

  • Відкрийте Xcode
  • Перейдіть на вкладку Загальні
  • Знайти особу
  • Змініть ідентифікатор групи на щось нове.

Зміна ідентифікатора групи


2
Це не працює, якщо ви хочете перевірити оновлення програми.
Рафаель Олівейра

2
Змінивши ідентифікатор пакета, ви фактично створили абсолютно новий додаток.
Стів Мадсен

2

У мене було те саме питання. Bundle.identifier та назва проекту повинні бути однаковими. Принаймні, це було моє питання.


1

Видаліть основний додаток для iPhone, перегляньте додаток і знову створити їх вирішує проблему.


1

У мене була така ж помилка, поки я не відновив годинник до заводських значень за https://forums.developer.apple.com/thread/17948

"Мабуть, якщо у вас є і наявний додаток WatchOS 1, і спробуйте оновити його на WatchOS 2, ідентифікатор пакета змінюється і викликає цю помилку. Якщо ви оновите годинник, вам потрібно буде скинути його, якщо ви встановили додаток WatchOS1 перед оновленням цього додатка до WatchOS2. "


Мені також довелося відновити годинник до заводських налаштувань. Спробував усі інші відповідні пропозиції, але безрезультатно. Також було відновлено всі профілі резервування, щоб переконатися, що вони відповідали правам. Моя ситуація була так само , як описано тут: Якщо б існуючий WatchOS 1 додаток, що я намагався оновити до WatchOS 2.
Rene

1

Незважаючи на те, що я дотримувався кількох логічних кроків: видалити додаток, відновити проект, єдиним рішенням, яке працювало для мене, було: перезапустити XCode . (XCode 8.1)


1

Це сталося, коли я спробував встановити поверх збірки adhoc.


1

У більшості відповідей на це питання не враховується один критичний аспект, який підняв оригінальний запитувач. Додаток потрібно встановити, не видаляючи існуючу установку. У моєму випадку додаток використовує базу даних SQLite, яка зберігає досить багато даних для користувача. Очевидно, що якщо ви видалите додаток, то ви видалите дані. Рішення, яке дозволило мені перевірити його таким же чином, як користувач оновить це, було обов'язковим.

У моєму випадку проблемою був Xcode, використовуючи профіль надання, автоматично генерований Xcode. Це, мабуть, сталося тому, що я придбав новий комп’ютер і не переніс профіль забезпечення розподілу. Не кажучи вже про те, що я не оновлював додаток майже за 2 роки. Тож мій оригінальний профіль надання резервів (який містить ідентифікатор програми Entitlements) давно минув. Рішення: у налаштуваннях Xcode-> Accounts-> Виберіть відповідний Apple ID-> Переглянути деталі-> У розділі Профілі надання послуг клацніть правою кнопкою миші на створеному Xcode профілі для цього додатка (він має префікс XC iOS) та виберіть Перемістити до кошика. .

Профілі забезпечення кодуванням Xcode у розділі "Облікові записи"

На веб-сайті розробника створіть новий профіль розповсюдження з ідентифікатором додатка. Завантажте новий профіль, двічі клацніть, і Xcode повинен автоматично встановити його. І навпаки, ви можете повернутися до профілів, перелічених у Xcode, і натисніть кнопку Завантажити біля новоствореного профілю. Створіть додаток і спробуйте запустити знову. До речі, мій Xcode налаштований на автоматичне управління підписанням коду, що крім цієї проблеми чудово працює.


1

TLDR - видаліть додаток із пристрою та запустіть ще раз.

У моєму випадку:
1. Я склав та запустив додаток на пристрої iPhone .
2. Відкриваю в налаштуваннях можливості і вмикаю iCloud
3. Потім я намагаюся запустити додаток ще раз, бум, помилка: "Установка програми не вдалася повинні відповідати, щоб було дозволено оновлення.

4. Потім я видалив додаток із iPhone (після того, як я прочитав відповіді тут)
5. Все працює добре


1

Для людей, які можуть бути частиною декількох команд, це може бути вашою проблемою:

  • Якщо ідентифікатор пакета програми важко закодований у вашому Info.plist, то Xcode може заплутатися і кинути цю істерику.

Виправити:

  • Переконайтеся, що ідентифікатор пакета встановлено як:

    $ (PRODUCT_BUNDLE_IDENTIFIER)


0

Прийнята відповідь не спрацювала для мене. Для роботи мені довелося скинути Apple Watch до останньої доступної резервної копії.


0

Цю помилку я отримав після того, як перейшов з 5 на 6. Я відновив нові 6 з резервної копії старого iPhone. Через це на новому iPhone був встановлений старий додаток.

Старий додаток не відображався у списку "Встановлені додатки" для 6-х! Я вручну видалив цю стару програму з 6-х і все було добре.


0

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


0

Це вирішується легко, видаливши попередній додаток зі свого пристрою. І почніть знову встановлювати. Це добре працює для мене.


0

Я зіткнувся з тією ж проблемою сьогодні, і вирішив її, просто змінивши ім'я відображення і ідентифікатор пакета з попереднього додатка, який також встановлено на моєму iPhone. Кроки:

Xcode -> General tab -> Find Identity -> Change Bundle Identifier

Отже, у мене зараз два однакові програми з однаковим функціоналом, але з двома різними іменами та ідентичністю.


0

У моєму випадку це було через сертифікат.

оскільки мій власний сертифікат на підписання програми не входив до команди розробників (новий працівник), оновлення програми з App Store до нової версії не було дозволено.

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

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


0

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


0

Жодна з вищезгаданих відповідей не працювала для мене. Моя проблема: я встановив версію додатка з Testflight, тому я просто видалив обидві, і старий додаток, і версію Testflight, і знову працює.


0

Прийняття відкладених угод від веб-сайту розробника та iTunes Connect та повторне відкриття проекту в X-коді вирішили для мене ситуацію.


0

Для мене це сталося після оновлення до XCode 11, як говорили інші, це проблема підписання. Для мене це вирішило - перейти на портал розробників> Сертифікати та ідентифікатори Редагувати профіль надання, який ви використовуєте

Список сертифікатів Скріншот

Ви побачите, що є сертифікат на XCode 11 (як видно на скріншоті). Просто встановіть цей прапорець, завантажте профіль і оновіть підписання проектів новим профілем.


0

У MacOS Catalina ваш iPhone буде відображатися на бічній панелі "Locations" вікон Finder (доки налаштування параметрів Finder налаштовані для показу зовнішніх пристроїв) - ви можете отримати доступ до файлів за допомогою параметра "Файли", який доступний на панелі біля верхньої частини вікна, трохи під назвою (у моєму випадку я повинен був натиснути кнопку ">" праворуч).

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