it-swarm.com.ru

Приложение не может быть проверено ошибка при создании приложения для устройства iPhone

Хорошо, я только что приобрел новый MacBook Pro, и, разрабатывая приложение для iPhone на другом MacBook, я хотел перенести свою разработку на мой новый компьютер.

Я дошел до стадии, когда я могу без проблем собрать приложение и запустить его на симуляторе, но когда дело доходит до запуска приложения на моем iPhone, я продолжаю получать «Приложение не может быть проверено». Я установил новый сертификат разработчика и установил профили обеспечения (все сгенерированные новые), но я в растерянности, почему я все еще должен получать ошибку.

У кого-нибудь есть идеи, где я иду не так?

ПРАВКА

Я воссоздал сертификат и профильный профиль и т.д. Сборка завершена успешно, а статус внизу переходит в «Установка на устройство», затем отображаются два модальных диалоговых окна с одним и тем же «Приложение не может быть проверено " сообщение об ошибке.

Могу ли я получить какой-либо вывод, который даст мне точную ошибку?

ПРАВКА

ОК, я получил соответствующий журнал от Организатора, показывающий проблему. Похоже, я не настроил Entitlements.plist, но в xcode у меня есть. (Я добавил файл Entitlements.plist, затем снял флажок с get-task-allow, затем добавил Entitlements.plist в настройки проекта в разделе «Права подписи кода»). Журнал это:

Tue Jun 16 07:35:42 unknown mobile_installation_proxy[1162] <Error>: install_embedded_profile: Skipping the installation of the embedded profile
Tue Jun 16 07:35:42 unknown securityd[1158] <Error>: mobile_installat[1162] SecItemCopyMatching: missing entitlement
Tue Jun 16 07:35:42 unknown securityd[1158] <Error>: mobile_installat[1162] SecItemCopyMatching: missing entitlement
Tue Jun 16 07:35:42 unknown securityd[1158] <Error>: mobile_installat[1162] SecItemCopyMatching: missing entitlement
Tue Jun 16 07:35:42 unknown securityd[1158] <Error>: mobile_installat[1162] SecItemCopyMatching: missing entitlement
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: entitlement 'get-task-allow' has value not permitted by a provisioning profile
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: verify_executable: Could not validate signature: e8008016
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: preflight_application_install: Could not verify /var/tmp/install_staging.1WIVsB/BouldrData.app/BouldrData
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: install_application: Could not preflight application install
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: handle_install: Installation failed
Tue Jun 16 07:51:53 unknown afcd[1181] <Error>: user mobile has uid 501
Tue Jun 16 07:51:53 unknown afcd[1181] <Error>: mode is 0x41e8

Может кто-нибудь пролить свет на то, почему это не работает, как ожидалось?

ПРАВКА

Сборка работает, но я еще не принял ответ, так как понятия не имею, что происходит. Кто-нибудь с какой-либо идеей относительно того, что происходит?

46
Codebeef

От эта тема на АЦП :

get-task-allow при входе в приложение позволяет другим процессам (таким как отладчик) подключаться к вашему приложению. Профили распространения требуют, чтобы это значение было отключено, в то время как профили разработки требуют, чтобы это значение было включено (иначе Xcode никогда не сможет запускаться и присоединяться к вашему приложению).

16
Codebeef

Моя проблема была на самом деле, что я уже установил приложение через тестовый полет на своем телефоне, после удаления приложения это сработало!

93
Ruud Visser

Я решил проблему, удалив уже установленную сборку с телефона, а затем переустановил сборку.

32
Ali

Проверьте, правильно ли ваш iPhone подготовлен. Вы можете подключить iPhone и запустить Organizer из XCode (Главное меню -> Окно -> Органайзер), а затем проверить информацию PROVISIONING PROFILES.

После этого вам необходимо сопоставить Bundle Identifier (Project -> Info.plist) и ваш идентификатор приложения . Вы можете прочитать эту заметку Apple Несоответствие между идентификатором приложения и идентификатором пакета

У меня были похожие окна сообщений (два подряд), когда мой идентификатор пакета был неверным.

6
MikZ

Вы не забыли развернуть Targets слева от окна проекта, затем щелкните правой кнопкой мыши на имени своего приложения> get info, затем перейдите на вкладку Build и в Code Signing, в Код подписи, измените значение Любого устройства iPhone OS на то, что применимо в вашем случае? Также на вкладке свойств вы должны установить свой идентификатор так, чтобы он соответствовал выбранному вами идентификатору.

Не знаю, поможет ли это, но этот шаг я не нашел в вашем описании.

3
Jorge Israel Peña

Я знаю, что вы уже проверили кое-что из этого, но этот ответ завершен:

  • Убедитесь, что новый профиль обеспечения и сертификат названы на уровне target для каждого параметра сборки, который вы хотите установить на устройстве.
  • Права подписи кода также должны быть определены на уровне target , а не на проекте.
  • Дважды проверьте свой журнал сборки, ища строку, которая включает CodeSign. Убедитесь, что он есть, и используйте сертификат, который вы ожидаете.
  • Если ничего не помогает, удалите удостоверение подписи кода из вашей цели, очистите все цели, удалите все каталоги сборки из вашего проекта, выйдите и перезапустите XCode, замените удостоверение подписи кода и попробуйте снова выполнить сборку.
2
Steve Madsen

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

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

Простое решение Просто удалите приложение и установите снова .. ....

1
Aks

В дополнение к проверке подписи кода обязательно перейдите в меню Build и запустите «Очистить все цели». Время от времени Xcode путается.

1
Alan

Проблема решена (по крайней мере для меня!)

Экспортируйте профиль разработчика на машине, которая работает, затем импортируйте на машину с проблемой. Сделано через Настройки/Аккаунты, Значок шестеренки внизу.

0
Jeff Klein

Зайдя в «Окно»> «Устройства» и просмотрев «Установленные приложения», я смог обнаружить, что мое приложение уже установлено. Выберите приложение и нажмите «-», чтобы удалить его с устройства. Попробуйте восстановить приложение с этим устройством в качестве цели.

Работал на меня, хотя с телефона я не мог найти, где было установлено приложение!

0
nyarasha

Один важный, но простой в обращении пункт: убедитесь, что все ваши ключи и сертификаты инициализации находятся в login keychain. Я столкнулся с этим, когда попытался создать новую цепочку ключей «разработки», и все мои профили стали «недействительными».

0
Nick Baicoianu