2014-09-19 2 views
50

После того, как я добавлю цель добавления приложений для приложения, я не могу скомпилировать проект. ниже ошибка:Xcode6: встроенный двоичный файл не подписан с тем же сертификатом, что и родительское приложение.

error: Embedded binary is not signed with the same certificate as the parent app. Verify the embedded binary target's code sign settings match the parent app's. 

Embedded Binary Signing Certificate: iPhone Developer: (Developer name) (number)

Parent App Signing Certificate: iPhone Developer: (Developer name) (number)

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

+0

Это может помочь, http://stackoverflow.com/a/42244194/1084174 –

ответ

0

Я попытался запустить проект в iPhone5, но приложение Extension не поддерживает 32-битную архитектуру. Поэтому, когда я создаю проект в iPhone5S, я могу построить проект!

+1

Получение такой же ошибки в iPhone5S –

+2

не является ответом. – skywinder

15

Я решил, исключив мой идентификатора Apple счета в

Preferences -> Accounts 

, а затем снова войти снова с моим Apple ID,

+1

Я должен был сделать это решение, и решение @ user3178793, И сбросить профиль Provisioning Profile так же, как родительское приложение, - тогда это сработало! – siburb

+2

не работает для меня –

24

Я должен был выбрать мое приложение под «Цели», а затем перейти к Вкладку «Возможности» и нажмите «Исправить проблемы» в разделе «Группы приложений»

+10

нет ошибок в моих * Группах приложений *, но все еще сталкивается с той же проблемой. Он работает для другого разработчика в команде –

+0

То же самое здесь. Моя проблема связана с надстройкой наклейки. –

1

Вам необходимо создать профиль Provisioning Profile для этой цели и не забудьте включить в него тот же сертификат.

У целей есть свой собственный идентификатор пакета, который вам также понадобится для создания AppId. Это решается та же проблема, что вы испытываете

лучший

1

В случае, если это кому-то поможет, я исправлю, что обновил мою схему архива для выпуска при отправке в магазин, но никогда не менял его обратно на adhoc для тестирования. Редактирование моей схемы архива для использования ad hoc.

6

У меня была такая же проблема в Xcode 6, но в моем случае это произошло из-за наличия двух активных сертификатов разработчика. Отмена одного исправила проблему.

+1

Это решило мою проблему. Мне действительно пришлось удалить «дубликаты» сертификатов из KeychainAccess, оставив только последний. – hybridcattt

16

Если ваш Xcode работает нормально, но прекратил работу после добавления цели расширения в ваш проект, большую часть времени ваше приложение было подписано с использованием старого сертификата (по-прежнему действительного с вашим именем и т. Д.), В то время как ваш расширение подписывается новым сертификатом с правом на расширение. Вот почему ошибка. В этом случае у вас, скорее всего, есть два сертификата с одинаковым именем, и вот что вы можете сделать:
1.Go to Xcode->Preference; 2. Выберите вкладку «Аккаунты»;
3. Выберите свой Apple ID и нажмите Просмотреть сведения;
4. Под подпиской «Окно списка идентичностей» выберите «Разработка IOS», затем щелкните маленький значок «Конфигурация» и выберите «Отменить»;
5. Затем Xcode попытается загрузить новый сертификат.
После этого вы можете сделать чистую сборку, так что ваше приложение и расширение будут подписаны с использованием нового сертификата.
enter image description here

+0

У меня появилась новая ошибка после этой процедуры: error: warning: Является ли каталог –

+0

Я пробовал все, что мог найти, чтобы исправить эту проблему. Ваш совет - тот, который работал для меня. Благодарю. – VaporwareWolf

5

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

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

19

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

enter image description here

+0

Это было для меня, так как обе версии Debug и Release были установлены в «iOS Developer». –

+0

такой же здесь. Спасибо за подсказку – TPeter

+0

Спасибо, гораздо лучшее решение, чем nuking всех сертификатов и профилей подготовки ... – igraczech

1

Когда я имел этот вопрос, я пошел в Центр-членах Apple, и понял, что Provisioning Profile (для расширения), который я создал была отмечена как «Invalid». Я только что создал профиль Provisioning Profile с тем же сертификатом, с которым подписано приложение, а затем загрузил его с помощью Xcode> Preferences> Account> refresh.

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

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

21

В случае использования WatchKit убедитесь, что ваше приложение Watch имеет правильную «команду», выбранную в настройках целевого приложения «Наблюдение» (в разделе «Общие»> «Идентификация»> «Команда»). Я установил команду приложения для телефона, но не команда часового приложения.

+0

Спасибо Макс. Именно то, что мне нужно было сделать. –

+0

Теперь вот какой логический ответ. Спасибо за сохранение моего времени –

0

освежающие мои профили провизий установил ее для меня (Настройки -> Учетные записи -> Дважды нажмите на счет -> кнопка нажмите Обновить в нижнем левом углу)

0

Откройте брелка и Это компании Apple по всему миру Отношения с разработчиками сертификации, если я выбираю всегда доверяю, архивы Xcode не удались. Когда я перешел на системные значения по умолчанию, Xcode успешно архивирует. Да, вам понравится!

+0

Мне также пришлось менять сертификаты, используемые с 'always trust', на' system defaults' –

0

По какой-то причине мой сертификат разработчика дважды хранился в моей цепочке ключей. Удаление одного из них устранило проблему.

0

У меня была такая же проблема.

Так что я сделал продовольствования Profil для каждого идентификатора расслоения и конфигурации WatchKit App:

  • Watch App развития
  • Часы Расширение развития

  • Часы App производства

  • Watch Удлинитель Prod

/\ Будьте осторожны, потому что приложение ID приложения часов на портале для разработчиков что-то вроде:

com.example.projectname.watchkitapp.watchkitextension

и когда я создал watchkit приложение расслоение ID в Xcode был:

com.example.projectname.watchkitapp

может быть, это то, что изменилось с тех пор WatchOS 2.0.

0

Я должен был пойти:

Xcode-> Настройки -> Учетные записи -> Подробнее -> Выбрать все Provisioning Profiles -> нажмите DEL-клавишу на клавиатуре после удаления на кнопку Загрузить все кнопки!

0

У меня была такая же проблема с приложением в Xcode 7.1. В приложении было расширение Watch и, следовательно, группа приложений. То, что сработало для меня было:

  1. Перейти к ~/Library/MobileDevice/Provisioning Profiles
  2. Удалить все профили выделения ресурсов, перечисленных там
  3. Перейти к IOS Dev Center в Safari и восстановить все профили обеспечения
  4. Вернуться к Xcode => Предпочтения => Идентификаторы Apple и выберите Apple ID, связанный с приложением.
  5. Нажмите «Просмотреть детали ...» (внизу справа)
  6. Загрузить профили подготовки, которые были только что созданы
  7. Чистые и воссоздаст

Я считаю, что мои профили провизий перепутали, потому что я использовал «исправить автоматически» особенность Xcode для другой проблемы я имел с возможностями => Ассоциированные домены.

0

Откройте KeyChain Access на своем Mac, удалите другой сертификат, отличный от вашего собственного сертификата. Эта проблема возникла после входа в другую учетную запись вашего Xcode.

5

У меня была аналогичная проблема. Для меня проблема заключалась в свидетельстве, подписанном неизвестным органом. Я выполнил следующие шаги и решил. Проблема отсутствовала промежуточное свидетельство Apple WWDR.

Мы также должны установить промежуточный сертификат WWDR, ​​выданный мировыми разработчиками Apple. Его можно загрузить с портала или напрямую по адресу http://developer.apple.com/certificationauthority/AppleWWDRCA.cer Убедитесь, что вы также добавили это в свой брелок.

Чтобы добавить сертификат: откройте свое программное обеспечение для ключей на вашем компьютере Mac, затем перейдите в меню Файл → Импорт, затем выберите AppleWWDRCA.cer.

+0

прямо на, спасибо ... + изменение контроля доступа keychain ко всем приложениям. теперь прекрасно удаляется ... – altagir

+0

Идеальное решение для меня, спасибо большое –

0

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

Во-первых, я вновь Создать команде развивать сертификат (Потому что мы обновили наш корневой сертификат)

2, редактировать Iphone Приложения разрабатывают сертификат, обязательно добавьте свой сертификат, который вы только что создали.

3, делает то же самое с расширением watchkit и набор часов App

4, перейти на Ваш Xocde "Предпочтение", дважды щелкните "Название команды", удалить старый сертификат Iphone, watchApps, watchExtention

5, скачайте новый сертификат и установите его.

Тогда это работает.

0

В моем случае мое приложение и мой профиль виджетов были подписаны с другим сертификатом. Итак, мне нужно было перейти на сайт разработчика iOS, выбрать родительский профиль подготовки приложений-> Изменить и выбрать тот же сертификат, что и виджет. Затем нажмите «сгенерировать» и «загрузить». Если вы его загрузите, дважды щелкните по нему, чтобы установить его в XCode. Затем выберите новый профиль обеспечения для своего родительского приложения в разделе «Настройки сборки-> Профиль Provisionig». Наконец-то перестройте свой проект!

0

Для меня это происходило, потому что некоторые из моих профилей подготовки истекли. Создал новые профили на developer.apple.com, удалил старые, установил их в «Автоматически» в Xcode, и ошибка исчезла.

0

В моем случае профиль my my target использует разные сертификаты, чем профиль, который использует родительская цель. Это были сообщения об ошибках!

Причина в том, что я создал новый сертификат для профиля расширения.

Зайдите на сайт developer.apple.com, чтобы узнать, содержат ли эти профили разные сертификаты.

4

Существует немало причин, из-за которых может возникнуть проблема. Если ни один из других ответов не работает для вас - хотел бы добавить еще одну правдоподобную проверку, которая мне помогла. Убедитесь, что сертификат, с которым вы подписываете, не имеет «Всегда доверять» (вы увидите зеленый знак «+», если этот параметр является таким).

  1. Перейдите по ссылке Key Chain, дважды щелкните по сертификату, который вы используете.
  2. Развернуть раскрывающееся меню «Доверие» и изменить/установить «Использовать системные значения по умолчанию» из «Всегда доверять».

Это особенно верно, если вы используете Swift в своем проекте, так как параметр «Всегда доверять» разбивает соответствующие библиотеки Swift.

1

Для Xcode 8 бета 3

Мои сборки номера были на моих различных целевых задач в моем файле Xcode проекта.

iOS Target showing "Build 3"

Мои IOS цель была сборки версии 3, но моя цель смотреть приложение и моя цель расширения доли оба билда 1.

Thingy Watch target showing build number 1, does not match iOS target build number.

Все, что я делал, было сопрягать все (изменили их все на 3), и это устранило проблему.

Надеюсь, это поможет.

0

После целого дня получается «компании Apple по всему миру Отношения с разработчиками сертификации» в корневой CERTS был удален . Я экспортирую один с другого компьютера и устанавливаю, все работает нормально.

0

Если вы используете расширение (в моем случае я использовал расширение OneSignal), в этом случае ваш пакет родительских приложений будет com.app.xyz, но для расширения/виджета ваш идентификатор пакета будет com.app.xyz. расширение

Итак, мы создадим идентификатор приложения с идентификатором пакета com.app.xyz.extension, и мы создадим профили подготовки для этого идентификатора приложения.

Мы использовали бы те же сертификаты разработки и производства, которые мы использовали для родительского приложения.

Вот ссылка, которая может быть полезна provisioning profile for a widget

Наконец я не использую автоматические настройки. Поэтому я установил свои профили и сертификаты вручную вручную.

+0

Пожалуйста, включите ответ прямо в сообщение SO. Ссылки могут быть полезными, но они не являются правильным ответом. –

Смежные вопросы