Подписание Xcode с использованием Jenkins - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь подписать и заархивировать свое приложение Unity с Дженкинсом. У меня установлен плагин Xcode jenkins, и кажется, что все работает хорошо, за исключением странной проблемы.

На этапе xcodebuild, когда архив должен быть подписан, я получаю следующую ошибку:

ошибка: не найден сертификат подписи «iOS Development»: нет «iOS» Разработка "подписание сертификата соответствия идентификатора команды" QF6V2M666X "с закрытый ключ найден (в цели «Unity-iPhone»)

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

Собирается вызвать xcodebuild :, схема: Unity-iPhone, sdk: DEFAULT, проект: DEFAULT, конфигурация: выпуск, очистка: НЕТ, архив: ДА, consolelog: ДА, symRoot: DEFAULT, buildDir: DEFAULT, developmentTeamID: QF6V2M666X

[sr-ios] $ / usr / bin / xcodebuild -scheme Unity-iPhone -конфигурация Архив выпусков -archivePath

Когда я открываю проект в XCode, я вижу, что по какой-то причине XCode выбирает «IOSDeveloper» в части идентификаторов подписи кода, а не «IOSDistribution» (или фактический сертификат в профиле обеспечения): enter image description here

Я не знаю, можно ли это изменить из Jenkins, но я думаю, что Xcode должен выбрать это из профиля обеспечения.

1 Ответ

0 голосов
/ 24 июня 2019

Так что мне удалось найти проблему и решить ее, вот решение для других.

В Unity 2018 они добавили новую опцию в настройки проигрывателя iOS, в разделе «Другие настройки», которая называетсяПрофиль обеспечения IOS-> Тип профиля: enter image description here

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

PlayerSettings.iOS.iOSManualProvisioningProfileType = ProvisioningProfileType.Distribution;

Когда эта опция установлена, xcode может правильно подписать приложение для распространения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...