Подтвердить что ты не робот

Xcode6: встроенный двоичный файл не подписан с тем же сертификатом, что и родительское приложение

После того, как я добавлю приложение "Расширение приложения для приложений", я не могу скомпилировать проект. ниже приведена ошибка:

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

enter image description here

Ответ 5

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

Preferences -> Accounts

а затем снова войти в систему с моим идентификатором Apple

Ответ 6

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

Ответ 7

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

Ответ 8

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

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

Ответ 9

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

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

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

Ответ 10

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

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

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

Ответ 11

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

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

лучше

Ответ 13

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

Ответ 14

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

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

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

Ответ 15

Для Xcode 8 beta 3

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

iOS Target, показывающий

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

Цель Thingy Watch, показывающая номер сборки 1, не соответствует номеру целевой цели iOS.

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

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

Ответ 16

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

Ответ 17

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

Ответ 18

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

Ответ 19

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

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

  • Наблюдение за развитием приложений
  • Разработка разработки расширений

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

  • Watch Extension Prod

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

com.example.projectname.watchkitapp.watchkitextension

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

com.example.projectname.watchkitapp

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

Ответ 20

Мне пришлось пойти:

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

Ответ 21

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

  • Перейдите к ~/Library/MobileDevice/Provisioning Profiles
  • Удалите все профили обеспечения, перечисленные там.
  • Перейдите в центр iOS Dev в Safari и восстановите все профили подготовки
  • Вернитесь к Xcode = > Предпочтения = > Идентификаторы Apple и выберите Apple ID, связанный с приложением
  • Нажмите "Просмотреть детали..." (внизу справа)
  • Загрузите только созданные профили подготовки
  • Очистить и построить снова

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

Ответ 22

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

Ответ 23

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

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

2, отредактируйте сертификат разработки Iphone Apps, убедитесь, что вы только что создали свой сертификат.

3, делая то же самое с расширением watchkit и смотря комплект приложений

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

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

Затем он работает.

Ответ 24

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

Ответ 25

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

Ответ 26

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

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

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

Ответ 27

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

Ответ 28

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

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

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

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

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