РЕЗЮМЕ:
Если вы откроете проект в Xcode 8 с включенным "Автоматическое управление подписью" и новым идентификатором пакета, он автоматически создаст и загрузит для него профиль подготовки. Но как я могу сделать то же самое с xcodebuild
, поэтому я могу использовать его на удаленном сервере сборки?
ПОДРОБНОСТИ:
Я пытаюсь создать приложение Кордовы на Mac. Кордова настраивает проект Xcode для использования "Автоматическое управление подписью", поэтому я пытаюсь использовать его.
Я часто меняю идентификатор пакета, поэтому хочу, чтобы Кордова смогла построить его с новым идентификатором пакета, который ранее не использовался.
Но когда я запускаю cordova build ios --release --device --buildConfig build.json
, я получаю код возврата 65 и следующую ошибку:
Check dependencies
No profiles for 'com.my.bundle.id' were found: Xcode couldn't find a provisioning profile matching 'com.my.bundle.id'.
Code signing is required for product type 'Application' in SDK 'iOS 10.3'
** ARCHIVE FAILED **
The following build commands failed:
Check dependencies
(1 failure)
Error: Error code 65 for command: xcodebuild with args: -xcconfig,/cordova-project/platforms/ios/cordova/build-debug.xcconfig,-workspace,MyApp.xcworkspace,-scheme,MyApp,-configuration,Debug,-destination,generic/platform=iOS,-archivePath,MyApp.xcarchive,archive,CONFIGURATION_BUILD_DIR=/cordova-project/platforms/ios/build/device,SHARED_PRECOMPS_DIR=/cordova-project/platforms/ios/build/sharedpch
(Я могу вручную запустить эту команду xcodebuild и получить ту же ошибку, поэтому, вероятно, это не проблема Кордовы.)
Мой файл build.json выглядит следующим образом:
{
"ios": {
"debug": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "MY_TEAM_ID",
"packageType": "development"
},
"release": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "MY_TEAM_ID",
"packageType": "enterprise"
}
}
}
Я использую cordova 7.0.1, cordova-ios 4.4.0, Xcode 8.3.3 и MacOS 10.12.5. У меня есть учетная запись Apple Enterprise.
ЧТО Я СКАЗАЛ:
Если я открываю сгенерированный проект в Xcode, он фиксирует автоматическое подписание, и с этого момента я могу успешно запустить cordova с этим идентификатором пакета. Но если я попытаюсь запустить его с другим идентификатором пакета, он снова не сработает.
Сначала я попытался использовать security unlock-keychain ~/Library/Keychains/login.keychain-db
, так как это работало в прошлом, но это не помогло.
Я также попытался открыть свой закрытый ключ подписи в Keychain Access и установить для него "Разрешить всем приложениям доступ к этому элементу" без везения.
Я получаю ту же ошибку, независимо от того, передаю ли я --debug
или --release
кордове.