exportArchive: Code signing “App.framework” failed

huangapple go评论55阅读模式
英文:

exportArchive: Code signing "App.framework" failed

问题

我正在使用 fastlane 生成一个构建。

以下是我的环境详细信息:

  1. Flutter 3.7.6
  2. XCode 14.2
  3. Fastlane

以下是我 fastlane 脚本的一部分:

// 1. 使用 match 生成证书和配置文件。[此处不显示代码]

// 2. 禁用自动代码签名
disable_automatic_code_signing(path: "Runner.xcodeproj")

// 3. 将代码签名设置为手动
update_code_signing_settings(
      build_configurations: configuration,
      use_automatic_signing: false,
      profile_name: profileName,
      team_id: ENV['IOS_TEAM_ID'],
      code_sign_identity: "iPhone Distribution"
    ) 

// 4. 运行不带代码签名的 Flutter 构建 iPA 命令。
sh_on_root(command: "export LANG=en_US.UTF-8 && export PATH=$PATH:/usr/local/bin && flutter build ipa #{params} --no-codesign")

// 5. 生成 iPA
build_app(
      output_directory: "#{root_path}/build/ios",
      build_path: "#{root_path}/build/ios",
      archive_path: "#{root_path}/build/ios/archive/Runner.xcarchive",
      export_method: method,
      scheme: env,
      configuration: configuration,   
      skip_build_archive: true,  
      workspace: "Runner.xcworkspace",
      export_options: {
        signingStyle: "manual",
        provisioningProfiles: profileMap,  
        teamID: ENV['IOS_TEAM_ID'],
        signingCertificate: "Apple Distribution",
        compileBitcode: false      
      } 
    )

在第 5 步中,我遇到错误 Error Domain=IDEDistributionPipelineErrorDomain Code=0 "代码签名“App.framework”失败" UserInfo={NSLocalizedDescription=代码签名“App.framework”失败,NSLocalizedRecoverySuggestion=查看更多信息的分发日志。}

我已经尝试过的事项:

  • 打开 XCode 项目并检查所有与代码签名相关的配置是否正确。在相同的设置下,从 Xcode 中进行存档工作正常。
  • 从终端手动执行 flutter build ipa 正常工作。我只需添加 ExportOptions.plist 文件。
  • 尝试调整 Podfile,以不使用任何代码签名设置。参考答案

任何建议都将非常有帮助。

更新
从 CD 机器的终端执行 lane 命令正常工作,但当 Jenkins 执行相同的命令时,出现了代码签名问题。

英文:

I am using fastlane to generate a build.

Here is my environment detail,

  1. Flutter 3.7.6
  2. XCode 14.2
  3. Fastlane

Here is a some portion of my fastlane script,

//1. Using match to generate certificate and profile.[Code not shown here]

//2. Disabled automatic code singing
disable_automatic_code_signing(path: "Runner.xcodeproj")

//3. Setting code sign to manual
update_code_signing_settings(
      build_configurations: configuration,
      use_automatic_signing: false,
      profile_name: profileName,
      team_id: ENV['IOS_TEAM_ID'],
      code_sign_identity: "iPhone Distribution"
    ) 

//4. Running Flutter build iPa command without code signing. 
sh_on_root(command: "export LANG=en_US.UTF-8 && export PATH=$PATH:/usr/local/bin && flutter build ipa #{params} --no-codesign")

//5. Generating iPA
build_app(
      output_directory: "#{root_path}/build/ios",
      build_path: "#{root_path}/build/ios",
      archive_path: "#{root_path}/build/ios/archive/Runner.xcarchive",
      export_method: method,
      scheme: env,
      configuration: configuration,   
      skip_build_archive: true,  
      workspace: "Runner.xcworkspace",
      export_options: {
        signingStyle: "manual",
        provisioningProfiles: profileMap,  
        teamID: ENV['IOS_TEAM_ID'],
        signingCertificate: "Apple Distribution",
        compileBitcode: false      
      } 
    )

During 5th step, I am getting error Error Domain=IDEDistributionPipelineErrorDomain Code=0 "Code signing "App.framework" failed." UserInfo={NSLocalizedDescription=Code signing "App.framework" failed., NSLocalizedRecoverySuggestion=View distribution logs for more information.}

What I have already tried,

  • Opened up XCode project and checked that all code sign related configurations are looking good. With same settings Archieve is working well from Xcode.
  • Manually Firing flutter build ipa from terminal is working well. I just need to add ExportOptions.plist file.
  • Tried to tweak Podfile not to take up any code signing settings. Reference answer

Any suggestion would be helpful.

Update
Firing lane execution command from CD machine's terminal is working fine but when Jenkin is firing same command then it is causing issue of code signing.

答案1

得分: 1

在我的情况下,build_app 无法访问钥匙串,这就是它显示代码签名错误的原因。我使用了适当的参数unlock_keychain,然后它开始正常工作。

英文:

In my case, build_app was not able to access keychain and that's why it was showing error of code signing.
I used unlock_keychain with the appropriate parameter and it started working.

huangapple
  • 本文由 发表于 2023年3月8日 19:05:25
  • 转载请务必保留本文链接:https://go.coder-hub.com/75672197.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定