英文:
exportArchive: Code signing "App.framework" failed
问题
我正在使用 fastlane
生成一个构建。
以下是我的环境详细信息:
- Flutter 3.7.6
- XCode 14.2
- 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,
- Flutter 3.7.6
- XCode 14.2
- 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.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论