У меня есть приложение Capacitor, которое я пытаюсь создать с помощью DevOps с помощью задачи xcode@5. Однако я не получаю создание .ipa после завершения задачи. Что мне не хватает? Есть ли еще одна задача, которую мне нужно запустить после задачи xcode?
- task: Xcode@5
inputs:
actions: 'build'
scheme: 'App'
sdk: 'iphoneos'
configuration: 'Release'
xcWorkspacePath: '**/App.xcworkspace'
xcodeVersion: 'default'
packageApp: true
signingOption: 'manual'
provisioningProfileUuid: 'xxxxxx-xxxxx-xxx-xxx-xxxxxxxxx'
archivePath: "$(System.DefaultWorkingDirectory)/archive"
Кажется, вы не установили вход Signing identity
в своей задаче.
Приложение Xcode должно быть подписано и подготовлено для запуска на устройстве или для публикации в App Store. Для этого требуется сертификат подписи P12 и хотя бы один профиль обеспечения. Задачи «Установить сертификат Apple» и «Установить профиль обеспечения Apple» предназначены для обеспечения Xcode этими необходимыми вещами в процессе сборки.
- task: InstallAppleCertificate@2
inputs:
certSecureFile: 'my-secure-file.p12' # replace my-secure-file.p12 with the name of your P12 file.
certPwd: '$(P12password)'
- task: InstallAppleProvisioningProfile@1
inputs:
provProfileSecureFile: 'my-provisioning-profile.mobileprovision' # replace my-provisioning-profile.mobileprovision with the name of your provisioning profile file.
- task: Xcode@5
inputs:
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
После этого вы можете проверить параметр пути к архиву для задачи Xcode. Файл ipa
помещается в папку, определенную в archive path
. Вы можете добавить задачи «Копировать файлы» и «Публиковать артефакты сборки», чтобы сохранить IPA вместе с записью сборки или протестировать и развернуть его в последующих конвейерах.
- task: CopyFiles@2
inputs:
contents: '**/*.ipa'
targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
Ознакомьтесь с этим документом Создавайте, тестируйте и развертывайте приложения Xcode и Подпишите свое приложение Apple iOS, macOS, tvOS или watchOS, чтобы узнать, как создавать и развертывать проекты Xcode с помощью Azure Pipelines.
Привет, Адам, пожалуйста, попробуйте выполнить подробные действия, описанные в другом ответе Кевина, и посмотрите, сохраняется ли ошибка. Если вы используете локальный агент, вы также можете попробовать использовать агент, размещенный Microsoft: pool: vmImage: macos-latest
.
Чтобы создать пакет IPA, вам необходимо использовать файл сертификата .P12 и профиль обеспечения для подписи пакета.
Вот шаги:
Создать сертификат
Шаг 1. Войдите на сайт Developer.apple.com/account/resources и выберите вкладку «Сертификаты».
Шаг 2. Создайте новые сертификаты или выберите существующий сертификат. Затем загрузите его (.cer
файл) на свой локальный компьютер.
Шаг 3. Дважды щелкните файл .cer
, чтобы установить сертификат, и перейдите к Keychain Access (локальный компьютер Mac), чтобы найти недавно установленный сертификат.
Шаг 4: Экспортируйте файл .P12 и установите пароль.
Создать профиль обеспечения
Шаг 1. Войдите на сайт Developer.apple.com/account/resources и выберите вкладку «Профили».
Шаг 2: Создайте новые профили. Выберите IOS App Development -> Apple ID
, как и раньше.
Шаг 3: При выборе сертификата вам необходимо выбрать соответствующий сертификат, загруженный на предыдущем шаге.
Это ключевой шаг. Вам необходимо выбрать тот же сертификат, что и созданный файл .p12.
Например:
Шаг 4. Загрузите профиль обеспечения.
Наконец, вы можете загрузить новый файл XX.p12 и профиль обеспечения в безопасный файл Azure Devops (Pipelines -> Library -> Secure files
). Тогда вы сможете использовать их в конвейере.
Например:
steps:
- task: InstallAppleCertificate@2
inputs:
certSecureFile: 'my-secure-file.p12'
certPwd: '$(P12password)'
- task: InstallAppleProvisioningProfile@1
inputs:
provProfileSecureFile: 'my-provisioning-profile.mobileprovision'
- task: Xcode@5
inputs:
actions: 'build'
scheme: 'App'
sdk: 'iphoneos'
configuration: 'Release'
xcWorkspacePath: '**/App.xcworkspace'
xcodeVersion: 'default'
packageApp: true
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
archivePath: "$(System.DefaultWorkingDirectory)/archive"
Примечание. certSecureFile
и provProfileSecureFile
— это атрибуты имени файла .p12
и .mobileprovision
в Secure Files.
certPwd
относится к переменной конвейера или группе переменных. Он сохранит пароль, который вы установили на этапе #Create certificate.
Результат:
Я добавил InstallAppleCertificate и получаю сообщение об ошибке.... ##[error]Ошибка: /opt/homebrew/bin/openssl не удалось с кодом возврата: 1 Я попробовал добавить обработку цепочки ключей, deleteCert и -legacy для openssl, но Я все еще получаю эту ошибку, несмотря ни на что.