Bitrise пытается подписать встроенный фреймворк с неправильным профилем обеспечения

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

Это ошибка, которую он выдает (разделить на отдельные строки для удобства чтения):

❌  Code Sign error: Provisioning profile does not match bundle identifier: 
The provisioning profile specified in your build settings 
(“Profile Name”) has an AppID of “com.example.mainidentity” 
which does not match your bundle identifier 
“com.example.frameworkidentity”.

Я пробовал это с Принудительной подписью кода с помощью Provisioning Profile, с Принудительной подписью кода с помощью удостоверения без каких-либо и других перестановок. Изменение Идентификатор подписи кода с Разработчик iOS на Не подписывать код в настройках сборки платформы. И т.п.

Я оставил Подпись кода при копировании включенным на этапах сборки основного проекта.

Кажется, ничего не работает.

Насколько я понимаю, встроенная платформа должна просто подписывать идентификатор разработчика iOS при архивировании проекта.

-

Архив проекта в порядке на моей локальной машине.

Окружающая среда и информация:

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

Я использую Xcode 7.3 в OS X 10.11.6.

Профиль обеспечения относится к типу Универсальный дистрибутив iOS.

Рабочий процесс Bitrise использует:

  • Установщик сертификата и профиля - 1.7.0

  • Xcode: создать архив — 1.9.2

Если нужна какая-либо другая информация или что-то требует уточнения, дайте мне знать!

Спасибо!!


person Jon Cox    schedule 20.09.2016    source источник


Ответы (1)


В этом случае вам не следует использовать «Принудительное подписание кода с помощью Provisioning Profile», так как это (это просто параметр, переданный в Xcode) заставит этот конкретный профиль использоваться для каждой части проекта!

Дополнительную информацию можно найти здесь: https://bitrise-io.github.io/devcenter/ios/code-signing/#full-manual-full-control

TL;ДР; не используйте полный идентификатор профиля подготовки, а используйте «Force Identity», если вам действительно нужно (и, возможно, просто категорию для профиля Force Prov, например «Распространение iPhone»), Xcode выяснит, какой профиль использовать, на основе идентификаторы и идентификаторы пакетов и т. д.

Тем не менее, начиная с Xcode 7, рекомендуемым способом является использование «Export Options Plist», а в Xcode 8, если вы выбрали автоматическую подпись кода, это ваш единственный вариант. Короче говоря, рекомендуемый способ - выполнить первоначальную подпись с подписью кода разработки, а затем указать «метод экспорта» для Xcode (в случае Bitrise это опция шага архива Xcode). Единственное, что следует здесь отметить, это то, что вам нужны сертификаты и профили для разработки и распространения. Но как только вы это сделаете, выбрать правильный для распространения так же просто, как установить для параметра «метод экспорта» (шаг Xcode Archive) тип, который вы хотите использовать (например, ad-hoc или app-store).

Дополнительная информация: https://bitrise-io.github.io/devcenter/ios/code-signing/#using-export-options-available-for-xcode-7-and-xcode-archive-step-v191

PS: если вы хотите перейти на новые параметры подписи кода, вам следует сбросить ранее указанные вами входные данные - возможно, самый быстрый способ, если вы используете веб-интерфейс, - это удалить шаг архива Xcode, а затем добавить новый на то же место.

person Viktor Benei    schedule 20.09.2016