简体   繁体   English

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

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

I currently have problem with my pipeline in Azure Devops.我目前在 Azure Devops 中的管道有问题。 Since March 27th, I got the error:自 3 月 27 日以来,我收到错误消息:

error: Alamofire does not support provisioning profiles.错误:Alamofire 不支持配置文件。 Alamofire does not support provisioning profiles, but provisioning profile prov profile name has been manually specified. Alamofire 不支持供应配置文件,但供应配置文件 prov 配置文件名称已手动指定。 Set the provisioning profile value to "Automatic" in the build settings editor.在构建设置编辑器中将配置文件值设置为“自动”。 (in target 'Alamofire') (在目标'Alamofire'中)

I have this error for all my pods.我的所有豆荚都有这个错误。

The code: The exact same branch have built correctly the day before.代码:完全相同的分支在前一天正确构建。

Xcode version: I know the agent is still on Xcode 10.1 and I haven't update my project to 10.2 so it should be good. Xcode 版本:我知道代理仍在 Xcode 10.1 上,我还没有将我的项目更新到 10.2,所以应该不错。

Provisioning profiles: Is valid.供应配置文件:有效。

Suspicion : Apple released a new version of Xcode and Swift on this day.疑点:苹果在这一天发布了新版本的 Xcode 和 Swift。 Microsoft also update Agents on this day: github.com/Microsoft/azure-pipelines-tasks/commit/1b019b9f65202d65ac58150bff6514938b53ff78#diff-93b5db3773bba1013dce9d814869dffd微软也在这一天更新了 Agents:github.com/Microsoft/azure-pipelines-tasks/commit/1b019b9f65202d65ac58150bff6514938b53ff78#diff-93b5db3773bba1013dce9d814869dffd

Soooo, anyone have an idea? Soooo,有人有想法吗? What is wrong with my pipeline ?我的管道有什么问题?

The issue is that the newest version of Cocoapods is trying to sign the frameworks. 问题是Cocoapods的最新版本试图签署框架。

Add the following code to your podfile 将以下代码添加到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

For anyone working with NativeScript and macOS-11, I found that you can't uninstall cocoapods and downgrade it to a lower version.对于使用 NativeScript 和 macOS-11 的任何人,我发现您无法卸载 cocoapods 并将其降级到较低版本。 So you need to go the approach of updating the Podfile.所以你需要采用更新 Podfile 的方法。 The Podfile isn't provisioned until after you run a build at least once, so you need to build, replace with your own, then build again. Podfile 在您至少运行一次构建之后才会提供,因此您需要构建,替换为您自己的,然后再次构建。

Azure Pipeline蔚蓝管道

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 (place at the root of project dir) 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.

相关问题 通过 Azure Devops Extension 上传到 AppStore 时如何修复“Invalid Provisioning Profile”? - How to fix the “Invalid Provisioning Profile” when uploading to AppStore through Azure Devops Extension? 无法在Xcode 7.2上使用Swift的设备上构建(与Provisioning Profiles不相关) - Can't build on device with Swift on Xcode 7.2 (not related to Provisioning Profiles) Swift钥匙串和配置文件 - Swift keychain and provisioning profiles 功能下的“修复问题”使我的配置文件无效。 并推动不工作,否则 - “Fix Issue” under Capabilities invalidates my provisioning profiles. And push not working otherwise 如何在不支持并发的自动关闭中修复“'async'调用”? - How to fix "'async' call in an autoclosure that does not support concurrency"? 安装Pod后无法建立工作区 - Workspace does not build after pod install 在多个设备上下载iOS开发的配置文件 - Downloading Provisioning Profiles for iOS Dev on Multiple devices 在Xcode到期空间中找不到配置文件 - unable find Provisioning Profiles in xcode due space 服务扩展和内容扩展的配置文件 - Provisioning profiles for Service Extension and Content Extension 找不到匹配的配置文件(有效的配置文件都不允许指定的权利) - No matching provisioning profiles found (None of the valid provisioning profiles allowed the specified entitlements)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM