Приложение 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, и приложение, впоследствии установленное на устройстве, просто без ошибок. Не уверен, что удаление приложения было исправлением, или проблема была из-за "фазы луны".

hotpaw2
источник
У меня нет приложения для телефона, чтобы удалить и попробовать :) Это моя первая попытка установки на это устройство.
Сунил
Спасибо! Я ломал голову, пытаясь понять, почему это не работает на симуляторе. Я бы хотел, чтобы Apple разрешила полную разработку с использованием симулятора для всех операций.
Кристофер Уэйд Кэнтли
Есть также отчет, что удаление и переустановка одного тестового приложения разработчика позволило другим тестовым приложениям разработчика (не удаленным) переустановить из XCode без сообщения об ошибке.
hotpaw2
Одно случайное предположение состоит в том, что любая старая установка приложения оставляет что-то (недокументированное Apple) позади того, что более новой контрольной сумме 8.1+ или методу подписи кода не нравится, поэтому считает, что новая установка повреждена. Удаление старого приложения (-ий) избавляет от того, что было оставлено.
hotpaw2
2
Приложение не установлено. Как вы можете удалить это? Как это можно считать правильным ответом?
BTRUE
116

Как я заметил Заявка не может быть проверена.поднимите, потому что на вашем устройстве уже установлено приложение с тем же идентификатором пакета.

Я получил эту проблему, потому что на моем устройстве есть мое приложение, которое загружается из магазина приложений. и я проверяю его версию обновления от XCode. И я использовал тот же идентификатор, что и живое приложение, и мое приложение для тестирования разработки. Поэтому я просто удаляю приложение app-store Live со своего устройства, и эта ошибка будет исправлена.

Нитин Гохель
источник
2
Спасибо! В моем случае я скачал приложение из Apple Store, но позже захотел собрать его из источника и профиля на устройстве.
Валентин Симонов
1
Это сработало для меня .. пришлось удалить приложение, которое уже было установлено.
З
9
Да, это сработало и для меня. Серьезно, это чертовски раздражает меня. Каждый год Apple с гордостью объявляет о том, как прекрасна ее последняя версия XCode, но она по-прежнему создает самые бесполезные сообщения из любой среды разработки. «Заявка не может быть подтверждена». Как, черт возьми, это предложение связано с «На вашем устройстве уже установлена ​​версия этого приложения в App Store». Безнадежный. Grrrr ...
Майк Гледхилл
да, мой был исправлен путем удаления предыдущей сборки с телефона. Сообщения XCode являются дерьмом.
Рэнди Л
2
Его удаление не помогает проверить путь к обновлению приложения
bandejapaisa,
55

просто удалите приложение и попробуйте снова, это происходит со мной, когда я пытаюсь запустить устройство, которое имеет то же приложение, но сгенерированное файлом ipa.

Хорхе Баллеза
источник
да, я только что удалил приложение и у меня тоже отлично работает, спасибо.
Радукен
3
Но что, если пользователь хочет обновить приложение?
Ахмед
25

Вы, вероятно, использовали опцию «Fix Issue» в Xcode при подключении нового устройства. Старый вопрос, но я считаю, что это фактический ответ на вопрос, ПОЧЕМУ это происходит. Когда вы устанавливаете приложение на устройство, оно подписывается специальным профилем обеспечения разработки. Например, если вы подключите другое устройство, которое не зарегистрировано в вашей учетной записи разработчика, Xcode попросит вас «исправить проблему». Когда вы нажимаете, устройство добавляется, и другой профиль обеспечения создается / изменяется. Если вы попытаетесь перезаписать существующее приложение, вы получите эту ошибку. Удаление приложения и его повторная установка работает, так как профиль был изменен. Я нахожу, что это часто случается, когда команда установлена, и член подключается к новому устройству, а затем Xcode «решает» проблему.

Марк Маккоркл
источник
1
это не всегда связано с новыми устройствами, это также может произойти, если вы переключите «Team» в разделе General> Identity Xcode. Несмотря на то, что для меня появилось сообщение «Исправить проблему», я использовал этот телефон раньше с моей учетной записью dev, поэтому в моем случае это было от изменения учетной записи dev.
Whyoz
Это может произойти, если включено разрешение «Обмен ключами».
Коф
Это случилось со мной после включения iCloud в Capabilities. Связанная «проблема исправления» создала новое право, которое может быть точной причиной. Помогло удаление и переустановка приложения.
Грег
9

Возможно, это выяснилось ... Удаление приложения с устройства работало на меня, как уже упоминалось ранее (спасибо!).

Я думаю, причина в том, что приложение на устройстве было подписано с отдельным профилем обеспечения, в частности, с профилем распространения в моем случае.

Morieris
источник
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: «Чтобы разрешить подписывание с правом« предыдущие идентификаторы приложения », требуются новые специальные профили обеспечения, которые можно получить, перейдя на страницу« Связаться с США »и запросив их». (из документов, указанных выше).

plivesey
источник
Это должен быть принятый ответ, так как удаление приложения - это не решение, а обходной путь.
Лукаш
Можете ли вы объяснить вкратце, где мы должны измениться? У меня та же проблема.
Маулик
Я не эксперт в этом, но я думаю, что это просто новая функция безопасности, которую Apple добавила в ОС. В некотором смысле имеет смысл, что вы не сможете переопределить приложение с другим идентификатором пакета, но они поняли, что это будет необходимо для тестирования, поэтому включили этот обходной путь. К сожалению, так как это включает в себя контакт с яблоком, я не думаю, что обходной путь достаточно хорош от яблока ...
Пливсей
С нашей точки зрения, это просто еще одно требование для тестирования обновлений.
Пливсей
@plivesey Для меня также было важно иметь возможность сделать это без удаления приложения (множество ценных данных тестирования и т. д.) и найти еще более простое решение: stackoverflow.com/a/30617406/229229
Lukasz
6

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

Наташа
источник
Да, обычно происходит после добавления права
brainray
4

У меня была та же проблема на моем iPad, работающем 8.1.3. Удаление приложения и повторная установка исправили проблему. Я использую два разных профиля обеспечения на двух разных компьютерах, и это могло вызвать эту проблему.

Кришнапрасад Джагадиш
источник
3

Рабочее и проверенное решение, не требующее удаления приложения:

Похоже, что профиль обеспечения распространения AppStore или просто сертификат распространения iOS имеют специальные разрешения, и проблема «Не удалось проверить ...» к ним не относится. Они всегда отменяют предыдущий сертификат .

Другими словами: релиз AppStore будет успешно установлен, даже если уже установленное (тестирование, adhoc или корпоративное) приложение было подписано сертификатом из другой команды.

Если вам повезло, и вы ранее загрузили приложение в учетную запись AppStore, принадлежащую той же команде, что и в сертификате, с которым у вас возникли проблемы, - все очень просто: просто загрузите и установите приложение из AppStore.

После установки сертификат приложения будет таким же, как тот, с которым вы хотите протестировать, и проблема исчезнет.

Если ваше приложение еще не в AppStore - бета-версия iTunesConnect поможет вам :

Отказ от ответственности : я не проверял это, но так как cert a prev совпадают с релизом AppStore, я уверен, что он работает:

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

Приложение не может быть проверено », на вашем устройстве уже может быть установлено приложение с тем же идентификатором пакета.

Простое решение Просто удалите приложение и попробуйте еще раз ... ....

Акс
источник
2

TL; DR answer - Реального решения, кроме "удалить приложение и переустановить", не существует.

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

Лукаш и Пливси - единственные, у кого есть решения, которые не требуют удаления, но ни одна из них не работает для меня.

user1021430
источник
1

Я решил эту проблему, изменив Систему сборки на устаревшую в xcode.

У меня была та же самая проблема, но вышеупомянутые решения не работали для меня. Даже если у меня не было предыдущего приложения на устройстве, я получил эту ошибку при развертывании на моем устройстве.

Как сделать:

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

Мехди
источник
0

Я также столкнулся с той же проблемой. Удаление приложения не сработало, но когда я попытался удалить другое приложение, которое было «родительским» для текущего приложения (я скопировал весь проект из предыдущего приложения, изменил некоторые URL-адреса и изображения, затем я нажал «Выполнить» и увидел несчастное приложение). диалоговое окно «невозможно проверить»). Кажется, проблема связана с предоставлением и подписанием кода и / или некоторыми конфигурациями проекта. Очень сложно.

большой лук
источник
0

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

akcoban
источник