我知道这是一个已知的问题,已经尝试了几次答案,但这次我发现了一些我觉得奇怪的情况。在对第一个Pod进行代码签名时,日志会显示可怕的错误65和errSecInternalComponent
。
- 在Jenkins上运行时,我的构建失败
- 在CI机器上手动运行、通过SSH登录并执行
bundle exec fastlane appstore
时,失败 - 当我在远程桌面上登录或物理访问CI机器时,生成SUCCEEDS
在构建之前,我在shell脚本中包含了security unlock-keychain
命令。
捆绑包更新导出FASTLANE_DISABLE_COLORS=1export APP_IDENTIFIER=com.example.MyApp安全解锁钥匙链-p topsecret ~/Library/Keychains/codesign.keychain&&bundle exec fastlane appstore
我也尝试过其他巫毒,比如用钥匙链做其他魔术
当直接在CI服务器控制台上(或通过远程桌面)运行时,它运行完美,不会提示用户密码等。我想知道有什么不同
Fastlane版本是2.106.0(最新版本)。
当执行嵌入式Pods Frameworks:时,构建会像其他用户一样失败
▸运行脚本"[CP]嵌入式Pods Frameworks"**存档失败**以下生成命令失败:PhaseScriptExecution[CP]\Embed\Pods\Frameworks/Users/ci/Library/Developer/Xcode/DerivedData/BackOffice gprttmucbsbjiifnxdulnwierfb/Build/Inmediates.noindex/ArchiveIntermediates/BackOffice_AppStore/InmediateBuildFilesPath/BackOffice.Build/Release-iphoneos/BackOffice.Build/Script-7E4F6707694226143D2E7E0B.sh(1个故障)[15:59:39]:退出状态:65+---------------+-------------------------+|构建环境|+---------------+-------------------------+|xcode_path |/Applications/xcode.app||gym_version | 2.106.2||export_method|应用商店||sdk|iPhoneOS11.4.sdk|+---------------+-------------------------+[15:59:39]:▸总尺寸为481485加速为1.00[15:59:39]:▸代码签名/用户/ci/库/开发人员/Xcode/DerivedData/BackOffice-gprttmucbsbsjiifnxdulnwierfb/Build/Intermediates.noindex/ArchiveIntermediates/BackOffice_AppStore/InstallationBuildProductsLocation/Applications//BackOffice.app/Frameworks/ACEExpandableTextCell.framework with Identity iPhone分发:MyCompany股份有限公司(XXXXXXXXXX)[15:59:39]:▸/usr/bin/codsign--force--sign CB480CDBA0169C56DA9597D6941095F254D89B3B--保留元数据=标识符,权利'/Users/ci/Library/Developer/Xcode/DerivedData/BackOffice gprttmucbsbjiifnxulcnwierfb/Build/Inmediates.noindex/ArchiveIntermediates/BackOffice_AppStore/InstallationBuildProductLocation/Applications/BackOffice.app/Frameworks/ACEExpandableTextCell.framework'[15:59:39]:▸/用户/ci/Library/Developer/Xcode/DerivedData/BackOffice gprttmucbsbjiifnxdulcnwierfb/Build/Intermediates.noindex/ArchiveIntermediates/BackOffice_AppStore/InstallationBuildProductLocation/Applications/BackOffice.app/Frameworks/ACEExpandableTextCell.framework:errSecInternalComponents[15:59:39]:▸命令/bin/sh失败,退出代码为1
我在Jenkins服务器上遇到了同样的问题。为了修复它,我在我的比赛动作中使用了以下标志
keychain_password: "my_Mac_Password"
有一次我把它拿了出来,我能让它工作一次。
如果您不使用match,也可以尝试unlock_keychain操作。
您可以使用temp密钥链修复errSecInternalComponent
错误:
- 从登录密钥链(或其他密钥链)中删除您的签名证书和私钥(!)
- 在您的Fastfile中自动创建临时钥匙链:
FASTLANE_TEMP_KEYCHAIN = 'fastlane_temp_keychain'
KEYCHAIN_PASSWORD = 'temppassword'
if File.exist?(File.expand_path("~/Library/Keychains/#{FASTLANE_TEMP_KEYCHAIN}-db"))
delete_keychain(
name: FASTLANE_TEMP_KEYCHAIN
)
end
create_keychain(
name: FASTLANE_TEMP_KEYCHAIN,
password: KEYCHAIN_PASSWORD,
unlock: true,
timeout: 0
)
- 导入您的证书和私钥
import_certificate(
certificate_path: certificate_path,
keychain_password: KEYCHAIN_PASSWORD,
keychain_name: FASTLANE_TEMP_KEYCHAIN,
log_output: true,
)
import_certificate(
certificate_path: p12_certificate_path,
keychain_password: KEYCHAIN_PASSWORD,
keychain_name: FASTLANE_TEMP_KEYCHAIN,
log_output: true,
)
- 安装配置文件:
install_provisioning_profile( path: provisioning_profile_file_path )
你应该表现得很好!他们的问题是4年前提出的,但我的回答可能对某些人有所帮助。我花了很多时间处理这个问题。