Не удалось проверить приложение при создании приложения для устройства 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
Может кто-нибудь пролить свет на то, почему это не работает, как ожидалось?
РЕДАКТИРОВАТЬ
Сборка работает, но я еще не принял ответ, так как понятия не имею, что происходит. Кто-нибудь с какой-либо идеей относительно того, что происходит?
12 ответов
Из этой темы на АЦП:
get-task-allow при входе в приложение позволяет другим процессам (таким как отладчик) подключаться к вашему приложению. Профили распространения требуют, чтобы это значение было отключено, в то время как профили разработки требуют, чтобы это значение было включено (иначе Xcode никогда не сможет запускаться и присоединяться к вашему приложению).
Моя проблема была на самом деле, что я уже установил приложение через тестовый полет на своем телефоне, после удаления приложения это сработало!
Я решил проблему, удалив уже установленную сборку с телефона, а затем переустановил сборку.
Проверьте, правильно ли настроен ваш iPhone. Вы можете подключить iPhone и запустить Органайзер из XCode (Главное меню -> Окно -> Органайзер), а затем проверить информацию о ПРЕДОСТАВЛЯЮЩИХСЯ ПРОФИЛЯХ.
После этого вам необходимо сопоставить идентификатор пакета (Project -> Info.plist) и идентификатор вашего приложения. Вы можете прочитать это Apple Note Несоответствие между идентификатором приложения и идентификатором пакета
У меня были похожие окна сообщений (два подряд), когда мой идентификатор пакета был неверным.
Вы не забыли развернуть Targets в левой части окна проекта, затем щелкните правой кнопкой мыши на имени своего приложения> получить информацию, затем перейдите на вкладку Build и в разделе Signing Code в разделе Code Signing Identity измените значение Any iPhone OS Device на что применимо в вашем случае? Также на вкладке свойств вы должны установить свой идентификатор так, чтобы он соответствовал выбранному вами идентификатору.
Не знаю, поможет ли это, но этот шаг я не нашел в вашем описании.
Я знаю, что вы уже проверили кое-что из этого, но этот ответ завершен:
- Убедитесь, что новый профиль обеспечения и сертификат названы на целевом уровне для каждого параметра сборки, который вы хотите установить на устройстве.
- Права подписи кода также должны быть определены на целевом уровне, а не на проекте.
- Дважды проверьте свой журнал сборки, ища строку, которая включает CodeSign. Убедитесь, что он есть, и используйте сертификат, который вы ожидаете.
- Если ничего не помогает, удалите удостоверение подписи кода из вашей цели, очистите все цели, удалите все каталоги сборки из вашего проекта, выйдите и перезапустите XCode, замените удостоверение подписи кода и попробуйте снова построить.
В дополнение к проверке подписи кода обязательно перейдите в меню Build и запустите "Очистить все цели". Время от времени Xcode путается.
"Приложение не может быть проверено", на вашем устройстве уже может быть установлено приложение с тем же идентификатором пакета.
Я получил эту проблему, потому что у меня было приложение из магазина приложений, и я тестировал его версию обновления из XCode. И с тем же идентификатором, что и в моем живом приложении.
Так простое решение Просто удалите приложение и установите снова......
Проблема решена (по крайней мере для меня!)
Экспортируйте профиль разработчика на машине, которая работает, затем импортируйте на машину с проблемой. Сделано через Настройки / Аккаунты, Значок шестеренки внизу.
Зайдя в "Окно"> "Устройства" и просмотрев "Установленные приложения", я смог обнаружить, что мое приложение уже установлено. Выберите приложение и нажмите "-", чтобы удалить его с устройства. Попробуйте восстановить приложение с этим устройством в качестве цели.
Работал на меня, хотя с телефона я не мог найти, где было установлено приложение!
Один важный, но простой в обращении элемент: убедитесь, что все ваши ключи и сертификаты указаны в цепочке для ключей входа в систему. Я столкнулся с этим, когда попытался создать новую цепочку ключей "разработки", и все мои профили стали "недействительными".