Ошибка кодового знака в Xcode 8 и iOS 10 Cordova Project
У меня есть проект cordova, который я создаю и запускаю локально, развертывая его на своем iPhone и устройстве Android.
Однако после обновления до Xcode 8
и моего iPhone iOS
до iOS 10
я не могу создать ipas локально. Он не работает со следующей ошибкой.
=== СТРОИТЬ ЦЕЛЬ ПРОЕКТ * С КОНФИГУРАЦИЕЙ Debug ===
Проверить зависимости Для подписи " *" требуется команда разработчиков. Выберите команду разработчика в редакторе проекта. ** Подписание кода требуется для типа продукта "Приложение" в SDK "iOS 10.0"
Это прекрасно работало перед обновлением. После обновления сборка для iOS
завершается с ошибкой.
Соответствующие номера версий для проекта
ios-deploy -V - 1.8.6
xcodebuild -version - Xcode 8.0 Build version 8A218a
У меня есть моя настройка Xcode
с соответствующими сертификатами и профилями подготовки.
Ответы
Ответ 1
Как отметил dpogue, кордова исправила эту проблему с фиксацией
92a62997adb3c8512328d5a0ae42fe5d156291f1
который находится в главной ветке своего репозитория платформы iOS.
Чтобы извлечь выгоду из этого исправления, вам нужно будет установить последнюю версию, например,
cordova platform remove ios && cordova platform add https://github.com/apache/cordova-ios.git
И вам нужно добавить файл build.json
в корневой каталог проекта, который выглядит следующим образом:
{
"ios": {
"debug": {
"developmentTeam": "YOURTEAMID"
},
"release": {
"developmentTeam": "YOURTEAMID"
}
}
}
Вы можете получить свой идентификатор команды здесь: https://developer.apple.com/account/#/membership
Теперь запустите свою сборку
cordova run ios --device
... или указав свой файл build.json
cordova run --buildConfig=build.json ios --device
и он должен работать!
Ответ 2
Я написал об обходном пути, который я использовал для решения этой проблемы:
https://dpogue.ca/articles/cordova-xcode8.html
Напомним, что вам нужно указать свой идентификатор команды разработчика. В следующей версии Cordova-iOS вы можете сделать это с помощью developerTeam
в файле build.json. Я крючок, доступный тем временем.
Вам также необходимо установить свой идентификатор подписи кода на "Разработчик iPhone", даже для версий выпуска. Сделайте это с помощью codeSignIdentity
в файле build.json.
Вам не нужно указывать профиль подготовки, Xcode автоматически обрабатывает это, когда у него есть идентификатор команды.
Надеюсь, что это поможет!
Ответ 3
Это работает для меня
"ios": {
"release": {
"developmentTeam": "yourdevteamid",
"packageType": "app-store",
"provisioningProfile": "yourprovfileUUID"
}
}
}
Если я добавлю "codeSignIdentity": "iPhone Development", он не работает, поэтому удалите codeSignIdentity в файле build.json. Мне также пришлось добавить все иконки в config.xml
<icon src="res/ios/[email protected]" width="180" height="180" />
<!-- iOS 7.0+ -->
<!-- iPhone / iPod Touch -->
<icon src="res/ios/icon-60.png" width="60" height="60" />
<icon src="res/ios/[email protected]" width="120" height="120" />
<!-- iPad -->
<icon src="res/ios/icon-76.png" width="76" height="76" />
<icon src="res/ios/[email protected]" width="152" height="152" />
<!-- Spotlight Icon -->
<icon src="res/ios/icon-40.png" width="40" height="40" />
<icon src="res/ios/[email protected]" width="80" height="80" />
<!-- iOS 6.1 -->
<!-- iPhone / iPod Touch -->
<icon src="res/ios/icon.png" width="57" height="57" />
<icon src="res/ios/[email protected]" width="114" height="114" />
<!-- iPad -->
<icon src="res/ios/icon-72.png" width="72" height="72" />
<icon src="res/ios/[email protected]" width="144" height="144" />
<!-- iPhone Spotlight and Settings Icon -->
<icon src="res/ios/icon-small.png" width="29" height="29" />
<icon src="res/ios/[email protected]" width="58" height="58" />
<!-- iPad Spotlight and Settings Icon -->
<icon src="res/ios/icon-50.png" width="50" height="50" />
<icon src="res/ios/[email protected]" width="100" height="100" />
<!-- iPad Pro -->
<icon src="res/ios/[email protected]" width="167" height="167" />
Ответ 4
У меня была такая же проблема с xCode 8 в сборке Apache Cordova для iOS, я пробовал все решения, которые я мог найти без каких-либо результатов, единственное, что работало, это указать команду разработчиков, тип пакета и файл инициализации в сборке. son file, как это:
{
"ios": {
"release": {
"developmentTeam": "yourdevteamid",
"packageType": "app-store",
"provisioningProfile": "yourprovfileUUID"
}
}
}
Многие postst предлагают спецификацию "codeSignIdentity": "Разработчик iPhone", но это дало еще одну ошибку, только эта конфигурация работала для меня (возможно, что-то с тем, как были созданы сертификаты разработки?), надеюсь, что это кому-то поможет.
Ответ 5
Вам просто нужно включить опцию "Автоматическое управление подпиской" на вкладке "Общие настройки проекта" на Xcode, и все связанные с этим проблемы будут исправлены. Ознакомьтесь с моими ответами:
http: //stackoverflow.com/questions/39568005/xcode-8-shows-error-that-provisioning-profile-doesnt-include-signing-certificat
Ответ 6
Имел аналогичную проблему после обновления Xcode 8.2.1 и инструментов командной строки сопутствующего Xcode.
Решение, которое сработало для меня:
1) Открытые настройки Xcode → Аккаунты
2) Удалена существующая учетная запись (AppleID)
3) Добавлена новая учетная запись с использованием AppleID
4) Выбрали новую учетную запись, которая откроет окно правой панели и нажмите "Просмотреть детали".
5) Создал новые идентификаторы подписи по мере необходимости и, в частности, "iOS Development". Нажмите "Готово".
После этого все мои приложения в Кордове позволили "кордове построить ios".
Ответ 7
Обновление кордовы ios 4.3.1 и указание файла build.json, как упоминалось выше, сделали трюк для меня (возможно, 4.3.0 включает исправление)
Чтобы обновить свою платформу:
Обновление платформы платформы cordova ios
Ответ 8
Наша пользовательская сборка script прошла sudo cordova build ios
.
То, что работало для меня, заключалось в том, чтобы перестроить проект, не используя sudo
исправление ошибок разрешения по мере необходимости. Затем удалил sudo
из нашей сборки script, и все сработало.
** При первом создании команды указать команду в xCode.