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

Устранение неоднозначности сертификата идентификатора кода с несколькими сертификатами разработчика

Недавно я работал над другой компанией, создав для них приложение для iPhone. Поскольку я разделял время разработки между их офисами, используя их компьютеры и мой офис, я сгенерировал ключ и подписал его как часть своей команды разработчиков Dev Dev Center.

У меня уже была существующая учетная запись Dev Center и собственный сертификат разработчика. После импорта сертификата для проекта клиента подписание этого приложения дает мне предупреждение от кода, что он находит несколько сертификатов, соответствующих "iPhone Developer: Steve Madsen", но он выбирает правильный и подписывает двоичный файл.

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

iPhone Разработчик: Стив Мэдсен: неоднозначный (спички "iPhone Разработчик: Стив Мэдсен (9E69FVL37K)" и "Разработчик iPhone: Стив Мэдсен" в /Volumes/Users/steve/Library/Keychains/login.keychain)

Сертификат клиента - это тот, у кого есть (9E69FVL37K), который, как я полагаю, заключается в том, как кодный код может понять вещи в моем проекте клиента.

Как я могу настроить проект Xcode для использования правильной идентификации? Выбор конкретного (а не автоматического селектора профилей) в настройках целевой сборки не помогает.

Еще лучше, пока Apple ожидала, что разработчик может быть членом нескольких команд, я не нашел документации о том, как разработчик, такой как я, должен настроить свою среду. Создание второго ключа/сертификата казалось единственным способом сделать эту работу, поскольку профили подготовки должны быть связаны с сертификатами в рамках одного командного портала программы. Кто-нибудь имеет хорошие советы о том, как сделать этот процесс гладко?

4b9b3361

Ответ 1

Сегодня я решился на то, чтобы отменить мой старый сертификат и создать новый. Моя догадка была правильной: Apple теперь выдаёт все сертификаты с суффиксом (шестнадцатеричной).

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

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

Напоминание всем, кто должен это сделать: вам также необходимо исправить все существующие профили подготовки и переустановить их.

Ответ 2

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

Однако мне интересно, может ли быть другой способ. Потому что, если вы можете связать свою учетную запись iTunes (пользователь iPhone dev center) с несколькими командами, то что произойдет, когда вы входите в Dev Center? Вы получаете несколько опций для ввода нескольких "Порталов разработчика для разработчиков iPhone"?

Ответ 3

Спасибо Steve Madsen за указание на это. Apple теперь выдает все сертификаты с суффиксом (HEXSTRING). Это означает, что если у вас есть сертификат для RUPERTO DE GUZMAN раньше, вам необходимо ОТВАТЬ это из PROGRAM PORTAL → СЕРТИФИКАТЫ. Затем создайте НОВЫЙ сертификат. Теперь ваш новый сертификат будет RUPERTO DE GUZMAN (EZxxxxxxxx).

Теперь код больше не будет путать с префиксами, потому что у нас есть:

ДО:

RUPERTO DE GUZMAN

RUPERTO DE GUZMAN (89xxxxxxx)

ПОСЛЕ:

RUPERTO DE GUZMAN (EZxxxxxxx)

RUPERTO DE GUZMAN (89xxxxxxx)