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.

встроенный двоичный сертификат подписи: iPhone разработчик: (имя разработчика) (номер)

сертификат подписи родительского приложения: iPhone разработчик: (имя разработчика) (номер)

но встроенный двоичный сертификат и сертификат родительского приложения одинаковы. Так что я сбит с толку...

28 ответов


Я должен был выбрать свое приложение в разделе "Цели", затем перейдите на вкладку "возможности" и нажмите "исправить проблемы" в разделе "группы приложений"


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


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

enter image description here


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


Я решил это, удалив учетную запись Apple ID в

Preferences -> Accounts

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


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


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

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


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

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

чтобы добавить сертификат: откройте программное обеспечение keychain utility на компьютере Mac, затем перейдите в файл→импорт элементов, затем выберите AppleWWDRCA.ССВ.


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

  1. перейдите в доступ к цепочке ключей, дважды щелкните сертификат, который вы используете.
  2. разверните падение "доверия" и изменить/установлен в системе по умолчанию с Всегда Доверяю.

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


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

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

лучшие


просто позвольте Xcode обрабатывать работу подготовки. Это решило ту же проблему в моем случае. http://aplus.rs/2014/embedded-binary-is-not-signed-with-the-same-certificate-as-the-parent-app/


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


когда у меня была эта проблема, я пошел в центр членов Apple и понял, что профиль подготовки (для расширения), который я создал, был отмечен как "недопустимый". Я просто повторно создал профиль подготовки с тем же сертификатом, с которым подписано приложение, а затем загрузил его через Xcode > Настройки > Учетная запись > обновить.

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

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


для Xcode 8 beta 3

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

iOS Target showing "Build 3"

моя цель iOS имела версию сборки 3, но моя цель приложения watch и моя цель расширения доли имели версию сборки 1.

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

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

Надежда эта помощь.


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


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


откройте цепочку ключей, и это Apple Worldwide Developer Relations Certification Authority, Если я выберу всегда доверять, архивы Xcode не удалось. Когда я изменил по умолчанию, успешно архивов в Xcode. Да вам понравится!!


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


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

поэтому я сделал профиль подготовки для каждого идентификатора пакета и конфигурации приложения WatchKit:

  • Смотреть Разработку Приложений
  • Смотреть Развитие Расширения

  • Смотреть Производство Приложений

  • Смотреть Расширение Prod

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

com.образец.имя_проекта.watchkitapp.watchkitextension

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

com.образец.имя_проекта.watchkitapp

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


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

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


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

  1. на ~/Library/MobileDevice/Provisioning Profiles
  2. удалить все профили подготовки указаны там
  3. перейдите в Центр разработки iOS в Safari и восстановите все профили подготовки
  4. вернитесь к Xcode = > Preferences = > Apple IDs и выберите Apple ID, связанный с приложением
  5. Нажмите Кнопку "Просмотреть Детали..." (снижать правильно)
  6. загрузите профили подготовки, которые были только что созданы
  7. "очистить и построить" снова

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


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


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

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

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

3、делает то же самое с расширением watchkit и watch kit App

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

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

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


в моем случае мое приложение и мой профиль виджета были подписаны с другим сертификатом. Поэтому мне пришлось перейти на сайт разработчика iOS, выбрать Родительский профиль подготовки приложения - >изменить и выбрать тот же сертификат, что и виджет. Затем нажмите "Создать"и " загрузить". Onece у вас есть скачать его, дважды щелкните по нему, чтобы установить в XCode. Затем выберите новый профиль подготовки для родительского приложения в разделе параметры сборки - >профиль Provisionig. Наконец-то перестроить свой проект!


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


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

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

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


после целого дня получается " Apple Worldwide Developer Relations Certification Authority " в корневых сертификатах было удалены. Я экспортирую один из другой машины и установлен, все работает нормально.


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

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

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

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

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