Додаток для iOS "Програму не вдалося перевірити" лише на одному пристрої


235

У мене є два пристрої iphone (4s і 5), підключені до мого комп'ютера, і я намагаюся встановити програму на обох пристроях. Він встановлений досить добре в iphone 5, але це дає помилку ' The application could not be verified.' при спробі встановити в пристрій iphone 4s.

Ідентифікатори UDID обох пристроїв додані в профіль надання, сформований для програми.

Крім того, щоб додати примітку, я щойно оновив свою версію iphone до 8.1.3 на своєму пристрої 4s. Я не впевнений, хоча помилка пов'язана з цим.

Будь-яка допомога з цього приводу буде дуже вдячна. Я затримався на цьому вже деякий час.

Редагувати:

Я щойно підключив це до іншого пристрою iPhone, і проблема, здається, знову є. В основному це означає, що програма чомусь встановлюється лише в телефоні, яким я користуюся вже деякий час, а не в будь-якому іншому телефоні. Ще раз я впевнений, що профіль надання містить UDID-адреси всіх цих 3-х пристроїв.

Відповіді:


479

У мене щось недавно трапилося. Я оновив свій iPhone до 8.1.3 і почав отримувати повідомлення про помилку «Програма не могла перевірити» з програми Xcode у програмі, яка встановила просто на тому ж пристрої iOS з того самого Mac лише кілька днів тому.

Я видалив додаток з пристрою, перезапустив Xcode, а додаток згодом встановив на пристрої просто добре без повідомлення про помилку. Не впевнений, чи виправлення програми було виправленням, або проблема була пов’язана з "фазою місяця".


У мене немає програми для видалення та спробу :) Це моя перша спроба встановлення цього пристрою.
Суніль

Дякую! Я накручував голову, намагаючись зрозуміти, чому це не працює на тренажері. Я б хотів, щоб Apple дозволила повністю розвиватися, використовуючи тренажер для всіх операцій.
Крістофер Вейд Кетлі

Також є звіт про видалення та перевстановлення одного тестового додатка для розробників, що дозволило іншим тестовим програмам розробника (не видаляється) перевстановлюватися з Xcode без повідомлення про помилку.
hotpaw2

Один випадковий здогад полягає в тому, що будь-яка стара установка програми залишає щось (недокументоване Apple), що новіша контрольна сума 8.1+ або метод підпису коду не подобається, тому вважає, що нова установка пошкоджена. Видалення старого додатка дозволяє позбутися того, що було залишено.
hotpaw2

2
Додаток не встановлено. Як її можна видалити? Як це можна вважати правильною відповіддю?
БТРУ

116

Як я помічаю, додаток не вдалося перевірити. підняти, тому що на вашому пристрої вже встановлено додаток з тим самим ідентифікатором пакетів.

У мене виникла ця проблема, оскільки на моєму пристрої є мій додаток, який завантажують із App Store. і я перевіряю його оновлену версію з Xcode. І я використовував той самий ідентифікатор, який є живою програмою, і мій додаток для тестування розробок. Тому я просто видаляю додаток Live Store з мого пристрою, і ця помилка буде виправлена.


2
Дякую! У моєму випадку я завантажив додаток з магазину яблук, але пізніше хотів створити його з джерела та профілю на пристрої.
Валентин Симонов

1
Це працювало для мене .. довелося видалити додаток, який уже був встановлений.
sach

9
Так, для мене це також працювало. Якщо серйозно, це мене дратує пекло. Щороку Apple з гордістю оголошує, наскільки чудовим є його останній корпус Xcode, але він все ще видає найкорисніші повідомлення будь-якого середовища розробки. "Програму не вдалося перевірити." Як у біса це речення, пов’язане з "У вас уже встановлена ​​версія додатка магазину додатків на вашому пристрої". Безнадійні. Grrrr ...
Майк Гледхілл

так, мою помилку виправили, видаливши попередню збірку з телефону. Повідомлення xcode - лайно.
Ренді Л

2
Видалення його не допоможе перевірити шлях на додаток "оновлення"
bandejapaisa

55

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


так, я просто видалив додаток і добре працює і для мене, дякую.
радуен

3
Але що робити, якщо користувач хоче оновити додаток?
Ахмед

25

Ви, ймовірно, використовували опцію "Виправити випуск" у Xcode під час підключення нового пристрою. Старе питання, але я вважаю, що це реальна відповідь ЧОМУ це відбувається. Під час встановлення програми на пристрої він підписується певним профілем забезпечення розробки. Наприклад, якщо ви підключите інший пристрій, який не зареєстрований у вашому обліковому записі розробника, Xcode попросить вас "виправити проблему". Коли ви натискаєте, що пристрій додається та створюється / змінюється інший профіль надання. Якщо ви спробуєте замінити наявний додаток, ви отримаєте цю помилку. Видалення програми та її перевстановлення працює з моменту зміни профілю. Я вважаю, що це часто трапляється, коли команда встановлюється, і член підключає новий пристрій, тоді Xcode "Виправляє" проблему.


1
це не завжди пов’язано з новими пристроями, це також може відбутися, якщо ви перемкнете "Команду" у розділі Загальні> Ідентичність Xcode. Навіть незважаючи на те, що підказка "Виправити випуск" показала для мене, я раніше використовував цей телефон у своєму обліковому записі розробників, тому він, мабуть, був у зв'язку зі зміною облікового запису dev в моєму випадку.
whyoz

Це може статися, якщо ввімкнено право "Обмін брелоками".
Коф

Він трапився зі мною після ввімкнення iCloud у програмі Capability. Пов'язана "проблема виправлення" створила нове право, яке могло бути точною причиною. Видалення та перевстановлення програми допомогло.
Грег

9

Ви могли б це зрозуміти ... Видалення програми з пристрою працювало на мене, як і інші згадані раніше (спасибі!).

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


7

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

https://developer.apple.com/library/ios/technotes/tn2319/_index.html

Схоже, вони змінили щось у 8.1.3, щоб перевірити це нове правило.

Виправлення

"[Додати] значення ідентифікатора додатка встановленого додатка, як записано у другій дужці, до значення масиву права визначення ідентифікаторів попереднього додатка для встановленого додатка (шляхом його відставки або відновлення) та запиту нових спеціальних профілів забезпечення як показано нижче ".

<key>previous-application-identifiers</key>
<array>
    <string>{Your Old App ID Prefix}.YourApp.Bundle.ID</string>
</array>

Редагувати:

Для цього вам потрібні спеціальні профілі забезпечення. Ви можете запитати їх від Apple: "Щоб увімкнути підписання з ідентифікаторами попередніх додатків, потрібні нові спеціальні профілі резервування, які можна отримати, перейшовши на сторінку" Контактні США "та подавши запит на них." (із документів, пов’язаних вище).


На це слід прийняти відповідь, оскільки видалення програми насправді не є рішенням, а навколо.
Лукаш

Ви можете пояснити коротко, де нам потрібні зміни? У мене те саме питання.
Маулік

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

З нашої точки зору, це в основному ще одна вимога до тестування на оновлення.
плівесей

@plivesey Для мене також було важливо зробити це, не видаляючи додаток (велика кількість цінних даних тестування тощо) і знайшов ще простіше рішення: stackoverflow.com/a/30617406/229229
Лукаш

6

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


Так, зазвичай це трапляється після додавання права
brainray

4

Якщо на моєму iPad працює така ж проблема 8.1.3 Видалення програми та інсталяція знову виправлено проблему. Я використовую два різних профілі резервування на двох різних машинах, і це могло спричинити цю проблему.


3

Робоче і перевірене рішення, яке не вимагає видалення програми:

Схоже, профіль надання послуг дистрибуції AppStore або просто сертифікат розповсюдження iOS мають спеціальні дозволи та проблема "Неможливо перевірити ..." не стосується їх. Вони завжди перекриють попередній сертифікат .

Іншими словами: випуск AppStore буде встановлено успішно, навіть якщо вже встановлене (тестування, adhoc або підприємство) додаток було підписано сертифікатом від іншої команди.

Якщо вам пощастило і раніше ви завантажили додаток в обліковий запис AppStore, який належить тій же команді, що і в сертифікаті, у вас є проблеми - тоді все дуже просто: просто завантажте та встановіть додаток з AppStore.

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

Якщо ваш додаток ще не в AppStore - на допомогу приходить бета-версія iTunesConnect :

Відмова : Я цього не тестував, але оскільки cert prev є таким самим, як AppStore реліз, я думаю, що він працює:

  1. Заархівуйте свою програму за допомогою профілю забезпечення AppStore (cert розповсюдження iOS) та завантажте в iTunesConnect (до облікового запису, який належить тій же команді розробників, що включена у профіль надання, який ви не хочете запускати).
  2. Запросіть людину з пристрою, на якому ви хочете запустити (себе?) На бета-тест.
  3. Завантажте та встановіть додаток з бета-версії iTunes connect.
  4. Тепер ви можете встановити свою тестову версію.

3

Програму не вдалося підтвердити ", у вашому пристрої вже може бути додаток, встановлений із тим самим ідентифікатором пакету.

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


2

TL; DR відповідь - немає реального рішення, окрім "видалити додаток та перевстановити".

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

Лукаш і плівесей - це єдині рішення, які не потребують видалення, але ні для мене не працювали.


1

Я вирішив цю проблему, змінивши систему побудови на спадщину в xcode.

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

Як зробити:

Просто перейдіть до меню Файл> Налаштування проекту, всередині Налаштування проекту поділіться, змініть систему побудови з "Нової системи збирання (за замовчуванням)" на "Складана система збірки".


0

Я також зіткнувся з тим же питанням. Видалення додатка не спрацювало, але коли я спробував видалити інший додаток, який був "батьківським" поточного (я скопіював весь проект із попереднього додатка, змінив деякі URL-адреси та зображення, потім натиснув "Виконати" і побачив нещасного Діалогове вікно "неможливо перевірити"). Здається, проблема пов’язана із забезпеченням резервуванням та підписом коду та / або деякими конфігураціями проекту. Дуже хитро.


0

Я змінив команду, але забув змінити її в моїх тестах, щоб це спричинило. Можливо, це комусь допомагає.

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