Не удалось создать архив сборки xcode конвейера Azure Devops при автоматическом входе в код

Я пытаюсь создать конвейер, который позволит архивировать и загружать сборки во время тестового полета как задачу CI/CD. Но когда я пытаюсь заархивировать сборку, она постоянно терпит неудачу из-за ошибки подписи кода. Я сделал yml с автоматическим входом, но все равно выдает ошибку при входе, поскольку учетная запись разработчика не добавлена ​​в xcode конвейера Azure.

Причина следующая

 Using default simulator: iPhone 7.
    /usr/bin/xcodebuild -version
    Xcode 15.2
    Build version 15C500b
    
    /usr/bin/xcodebuild -sdk iphoneos -configuration Debug -workspace /Users/runner/work/1/s/xxxxx.xcworkspace -scheme xxxxxx -destination platform=ios Simulator,name=iPhone 7 archive -verbose
-allowProvisioningUpdates CODE_SIGN_STYLE=Automatic DEVELOPMENT_TEAM=xxxxxxx
    Command line invocation:
        /Applications/Xcode_15.2.app/Contents/Developer/usr/bin/xcodebuild
-sdk iphoneos -configuration Debug -workspace /Users/runner/work/1/s/xxxxxx.xcworkspace -scheme xxxxx -destination "platform=ios Simulator,name=iPhone 7" archive -verbose
-allowProvisioningUpdates CODE_SIGN_STYLE=Automatic DEVELOPMENT_TEAM=xxxxxxxx
    
    User defaults from command line:
        IDEPackageSupportUseBuiltinSCM = YES
    
    Build settings from command line:
        CODE_SIGN_STYLE = Automatic
        DEVELOPMENT_TEAM = xxxxxxx
        SDKROOT = iphoneos17.2
    
    --- xcodebuild: WARNING: Using the first of multiple matching destinations:
    { platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
    { platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device }
    { platform:iOS Simulator, id:B06E40B9-47B6-4BA2-8E28-90AC66C3ADF4, OS:17.0.1, name:iPad (10th generation) }
    { platform:iOS Simulator, id:337853BE-7CA6-4920-82EF-47C6B3410DAD, OS:17.2, name:iPad (10th generation) }
    { platform:iOS Simulator, id:5293F755-CF59-4378-839E-0CBDA7CFA08C, OS:17.0.1, name:iPad Air (5th generation) }
    { platform:iOS Simulator, id:74DD7A76-4D60-4055-BA7D-8F0298ADCA60, OS:17.2, name:iPad Air (5th generation) }
    { platform:iOS Simulator, id:C8ECBCEA-380D-493A-A85F-C220E7EC871C, OS:17.0.1, name:iPad Pro (11-inch) (4th generation) }
    { platform:iOS Simulator, id:2A028112-D9A9-44AC-9296-F3BAC1BCBB3F, OS:17.2, name:iPad Pro (11-inch) (4th generation) }
    { platform:iOS Simulator, id:6639FAC9-EF1C-45FA-B010-D17C6DCE6446, OS:17.0.1, name:iPad Pro (12.9-inch) (6th generation) }
    { platform:iOS Simulator, id:555FF61B-3C0A-47D9-8D0D-96A1790F9D4A, OS:17.2, name:iPad Pro (12.9-inch) (6th generation) }
    { platform:iOS Simulator, id:02471309-E0BE-4F47-9833-25AFDE1D1357, OS:17.0.1, name:iPad mini (6th generation) }
    { platform:iOS Simulator, id:6464AF5D-17D8-4A45-A155-05EFCF792BD3, OS:17.2, name:iPad mini (6th generation) }
    { platform:iOS Simulator, id:5870AEBC-AC7B-4C21-86F6-065C10524EDA, OS:17.0.1, name:iPhone 14 }
    
    
    /Users/runner/work/1/s/xxxxxx.xcodeproj: error: No Accounts: Add a new account in Accounts settings. (in target 'xxxxx' from project 'xxxxx')
    /Users/runner/work/1/s/xxxxxx.xcodeproj: error: No profiles for 'xxxxxxx.xxx.xxx.xx' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'xxxxxxx.xxx.xxx.xx'. (in target 'xxxxxx' from project 'xxxxx')


trigger:
- development

pool:
  vmImage: 'macos-13'

jobs:
- job: iOS
  steps:

  - checkout: self
    submodules: true
    persistCredentials : true

  - task: UseRubyVersion@0
    inputs:
      versionSpec: '>=2.6'
      addToPath: true

  - task: Cache@2
    inputs:
      key: 'pods | "$(Agent.OS)" | Podfile.lock'
      path: 'Pods'
      cacheHitVar: 'PODS_CACHE_RESTORED'
  
  - task: CocoaPods@0
    displayName: 'pod install using the CocoaPods task with defaults'
    condition: ne(variables.PODS_CACHE_RESTORED, 'true')
    inputs:
        forceRepoUpdate: false

  - task: Xcode@5
    inputs:
      actions: 'clean'
      xcWorkspacePath: 'xxxxx.xcworkspace'
      scheme: '$(SCHEME)'
    displayName: Clean Build

  - task: Xcode@5
    inputs:
      actions: 'build'
      sdk: $(SDK)
      scheme: $(SCHEME)
      signingOption: 'auto'
      teamId: $(TEAMID)
      packageApp: false
      destinationPlatformOption: 'ios'
      configuration: $(CONFIGURATION)
      xcWorkspacePath: 'xxxx.xcworkspace'
      destinationSimulators: 'iPhone 15'
      args: '-verbose"'
      useXcpretty: false
    env:
      PODS_ROOT: '$(Build.SourcesDirectory)/Pods'
      PODS_XCFRAMEWORKS_BUILD_DIR: '$(Build.BinariesDirectory)/xcframeworks'

  - task: Xcode@5
    inputs:
      actions: 'archive'
      configuration: '$(CONFIGURATION)'
      xcWorkspacePath: 'xxxxx.xcworkspace'
      scheme: '$(SCHEME)'
      packageApp: true
      archivePath: '$(Build.BinariesDirectory).archive.xcarchive'
      exportPath: '$(Build.BinariesDirectory)/exported'
      signingOption: 'auto'
      teamId: '$(TEAMID)'
      destinationPlatformOption: 'ios'
      args: '-verbose -allowProvisioningUpdates'
      useXcpretty: false
    env:
      PODS_ROOT: '$(Build.SourcesDirectory)/Pods'
      PODS_XCFRAMEWORKS_BUILD_DIR: '$(Build.BinariesDirectory)/xcframeworks'
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
140
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ошибка: профили для «xxxxxxx.xxx.xxx.xx» не найдены: Xcode не смог найти ни одного профиля обеспечения разработки приложений для iOS, соответствующего «xxxxxxx.xxx.xxx.xx». (в цели «xxxxxx» из проекта «xxxxxx»)

В образце YAML вы используете агент, размещенный в Microsoft: агент macOS-13. В этом случае в среде компьютера нет предварительно настроенных или кэшированных учетных данных и профилей обеспечения.

Вам необходимо добавить задачу Установить сертификат Apple и задачу Установить профиль обеспечения Apple, чтобы установить сертификаты и профили обеспечения перед сборкой Xcode.

Например:

steps:
- task: InstallAppleCertificate@2
  inputs:
    certSecureFile: 'my-secure-file.p12' 
    certPwd: '$(P12password)'
- task: InstallAppleProvisioningProfile@1
  inputs:
    provProfileSecureFile: 'my-provisioning-profile.mobileprovision' 

- task: Xcode@5

Для получения более подробной информации вы можете обратиться к этому документу: Подпишите свое приложение Apple iOS, macOS, tvOS или watchOS и Xcode@4 — задача Xcode v4

Указывает метод подписания сборки. Выберите «Не кодировать подпись», чтобы отключить подпись. Выберите «Параметры проекта по умолчанию», чтобы использовать только конфигурацию подписи проекта. Выберите Подписание вручную, чтобы принудительно подписать вручную, и при необходимости укажите удостоверение подписи и профиль подготовки. Выберите Автоматическое подписание, чтобы принудительно выполнить автоматическое подписание, и при необходимости укажите идентификатор группы разработчиков. Если ваш проект требует подписи, используйте задачи «Установить Apple...», чтобы установить сертификаты и профили подготовки перед сборкой Xcode.

Обновлять:

Вот пример подписи приложения вручную:

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"

Можете ли вы перейти на ручной метод подписи приложения и проверки его работоспособности?

Kevin Lu-MSFT 11.06.2024 05:08

ваше решение работает правильно.

Chirag Shah 11.06.2024 08:44

Другие вопросы по теме