簡體   English   中英

如何修復 azure devops 構建代理中的“*pod* 不支持配置文件”

[英]How to fix ' *pod* does not support provisioning profiles' in azure devops build agent

我目前在 Azure Devops 中的管道有問題。 自 3 月 27 日以來,我收到錯誤消息:

錯誤:Alamofire 不支持配置文件。 Alamofire 不支持供應配置文件,但供應配置文件 prov 配置文件名稱已手動指定。 在構建設置編輯器中將配置文件值設置為“自動”。 (在目標'Alamofire'中)

我的所有豆莢都有這個錯誤。

代碼:完全相同的分支在前一天正確構建。

Xcode 版本:我知道代理仍在 Xcode 10.1 上,我還沒有將我的項目更新到 10.2,所以應該不錯。

供應配置文件:有效。

疑點:蘋果在這一天發布了新版本的 Xcode 和 Swift。 微軟也在這一天更新了 Agents:github.com/Microsoft/azure-pipelines-tasks/commit/1b019b9f65202d65ac58150bff6514938b53ff78#diff-93b5db3773bba1013dce9d814869dffd

Soooo,有人有想法嗎? 我的管道有什么問題?

問題是Cocoapods的最新版本試圖簽署框架。

將以下代碼添加到podfile

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
            config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
            config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
        end
    end
end

對於使用 NativeScript 和 macOS-11 的任何人,我發現您無法卸載 cocoapods 並將其降級到較低版本。 所以你需要采用更新 Podfile 的方法。 Podfile 在您至少運行一次構建之后才會提供,因此您需要構建,替換為您自己的,然后再次構建。

蔚藍管道

pool:
  vmImage: 'macOS-11'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '12.16.1'
  displayName: 'Install Node.js'

- task: DownloadSecureFile@1
  name: releaseJksFile
  displayName: 'download android keystore file'
  inputs:
    secureFile: 'release.jks'

- task: InstallAppleCertificate@2
  inputs:
    certSecureFile: AppleCertificate.p12
    certPwd: $(AppleCertificatePassword)
    keychain: 'temp'
    deleteCert: true
  displayName: Install Apple Certificate

- task: InstallAppleProvisioningProfile@1
  inputs:
    provisioningProfileLocation: 'secureFiles'
    provProfileSecureFile: 'AppleReleaseProfile.mobileprovision'
    removeProfile: true
  displayName: 'Install Apple Provisioning Profile'

# Optional... was running into build issues with latest version
#downgrading cocoapods version
- script: |
    $ANDROID_HOME/tools/bin/sdkmanager --uninstall 'build-tools;31.0.0'
  displayName: 'Remove Android 31 SDK' 

- script: |
    pip install six
    npm install -g @angular/cli nativescript
    tns clean
    npm install
    mkdir $(Build.ArtifactStagingDirectory)/android
    mkdir $(Build.ArtifactStagingDirectory)/iphoneos
    sed -i -e 's/1.00000000.00/1.$(Build.BuildNumber)/g' App_Resources/iOS/Info.plist
    sed -i -e 's/1000000/10$(Build.BuildId)/g' App_Resources/Android/src/main/AndroidManifest.xml
    sed -i -e 's/1.00000000.00/1.$(Build.BuildNumber)/g' App_Resources/Android/src/main/AndroidManifest.xml
    tns build android --env.production --release --key-store-path '$(releaseJksFile.secureFilePath)' --key-store-password '$(KeyStorePassword)' --key-store-alias '$(KeyAlias)' --key-store-alias-password '$(KeyPassword)' --bundle 
    cp -rf "platforms/android/app/build/outputs/apk/release/" "$(Build.ArtifactStagingDirectory)/android"

    echo "uninstalling all cocoapods versions"
    sudo gem uninstall cocoapods -ax
    echo "installing cocoapods version latest"
    sudo gem install cocoapods
    tns run ios --provision     #see what provisioning profile and certificate are installed... helpful for debugging
    tns build ios #creates podfile we are going to replace
    cp -rf Podfile platforms/ios/Podfile
    rm platforms/ios/Podfile.lock
    cd platforms/ios
    pod install
    cd ../../
    tns build ios --env.production --release --bundle    #creates xcworkspace
  displayName: 'Setup/Build'

- task: Xcode@5
  inputs:
    actions: 'build'
    scheme: 's'
    sdk: 'iphoneos'
    configuration: 'Release'
    exportPath: '$(Build.ArtifactStagingDirectory)/iphoneos/'
    packageApp: true
    xcWorkspacePath: 'platforms/ios/s.xcworkspace'
    xcodeVersion: 'default' # Options: 8, 9, 10, default, specifyPath
    signingOption: 'manual'
    signingIdentity: '$(AppleCertificateSigningIdentity)'
    provisioningProfileUuid: '$(AppleProvisioningProfileUuid)'

- task: PublishBuildArtifacts@1
  inputs:
    pathtoPublish: '$(Build.ArtifactStagingDirectory)' 
    artifactName: 'drop'

Podfile(放在項目目錄的根目錄下)

use_frameworks!

target "s" do
# Begin Podfile - /Users/runner/work/1/s/node_modules/@nativescript/secure-storage/platforms/ios/Podfile
pod 'SAMKeychain', '~> 1.5.3'
# End Podfile

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
      config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
      config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
    end
  end
  post_installNativeScript_CLI_Architecture_Exclusions_0 installer
end

# Begin Podfile - /Users/runner/work/1/s/platforms/ios/Podfile-exclusions
def post_installNativeScript_CLI_Architecture_Exclusions_0 (installer)
  installer.pods_project.build_configurations.each do |config|
    config.build_settings.delete "VALID_ARCHS"
    config.build_settings["EXCLUDED_ARCHS_x86_64"] = "arm64 arm64e"
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "i386 armv6 armv7 armv7s armv8 $(EXCLUDED_ARCHS_$(NATIVE_ARCH_64_BIT))"
    config.build_settings["EXCLUDED_ARCHS[sdk=iphoneos*]"] = "i386 armv6 armv7 armv7s armv8 x86_64"
  end
end
# End Podfile
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM