jenkins xcodebuild在Xcode 14中失败,但在Xcode 13中工作

mi7gmzs6  于 2023-05-22  发布在  Jenkins
关注(0)|答案(2)|浏览(207)

bounty已结束。回答此问题可获得+50声望奖励。赏金宽限期6小时后结束。Surbhi Garg希望引起更多关注这个问题。

我在Xcode 14中使用命令行脚本生成构建时遇到了一个问题,相同的脚本在Xcode 13中工作。
存档功能是

function buildArchieve {
BUILD_FILES="$BUILD_DIR/${ASSET_BASENAME}"
mkdir -p "$BUILD_FILES"

# archieve the build
ARCHIEVE_PATH="$BUILD_DIR/${ASSET_BASENAME}/$EXPORT_METHOD/${PRODUCT_NAME}.xcarchive"
(xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -configuration "$CONFIGURATION" -destination 'generic/platform=iOS' -archivePath "$ARCHIEVE_PATH" clean archive 1> /dev/null ||
xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -configuration "$CONFIGURATION" -destination 'generic/platform=iOS' -archivePath "$ARCHIEVE_PATH" clean archive ||
failed "XCode failed to build app")

# export archieve
EXPORT_PATH="$BUILD_DIR/${ASSET_BASENAME}/$EXPORT_METHOD"
xcodebuild -exportArchive -archivePath "$ARCHIEVE_PATH" -exportPath "$EXPORT_PATH" -exportOptionsPlist "$EXPORT_PLIST_FILE" 1> /dev/null

# Extacting DSYM file
if [ "$METHOD" == "app-store" ]; then
    DYSM_FILE="${EXPORT_PATH}/${PRODUCT_NAME}.xcarchive/dSYMs/WhiteLabel.app.dSYM"
    ditto -c -k --norsrc "$DYSM_FILE" "${BUILD_FILES}/${PRODUCT_NAME}_${bvers}.dSYM.zip"
fi

# removing archieve file
rm -rf "$ARCHIEVE_PATH"

}
我在Jenkins控制台上看到了
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild-workspace BroughSuperior.xcworkspace -scheme BroughSuperior -configuration Release -destination generic/platform=iOS -archivePath“administrator/testing-app 5_ios_2023-05-05-10:10:33/enterprise/testing-app 5.xcarchive”clean archive命令行中的用户默认值:IDEArchivePathOverride = /Users/administrator/.jenkins/jobs/iOS Bruff dev/workspace/BroughSuperior/administrator/testing-app5_ios_2023-05-05-10:10:33/enterprise/testing-app5.xcarchive IDEPackageSupportUseBuiltinSCM = YES`
我现在不能使用Xcode 13,因为苹果已经停止从Xcode 13中获取构建版本。同样的命令在Xcode 13中也有效。
Archive_output.txt文件
命令行调用:/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild-workspace BroughSuperior.xcworkspace -scheme BroughSuperior -configuration Release -destination generic/platform=iOS -archivePath clean archive
命令行中的用户默认值:IDEPackageSupportUseBuiltinSCM =是
解析包图
已解析的源程序包:Facebook:https://github.com/facebook/facebook-ios-sdk.git@13.0.0 https://github.com/bugsnag/bugsnag-cocoa@6.2.0

清洁成功

准备包裹
计算目标依赖图和供应输入
创建构建描述构建描述签名:d 6adcbd 478 de 817 a50 f1882539 a78 d15构建描述路径:/Users/administrator/Library/Developer/Xcode/DerivedData/BroughSuperior-gmieqdexltbrbsesvhrtzpgzfdig/Build/Intermediates.noindex/ArchiveIntermediates/BroughSuperior/IntermediateBuildFilesPath/XCBuildData/d6adcbd478de817a50f1882539a78d15-desc.xcbuild
注意:按依赖关系顺序构建目标警告:运行脚本生成阶段“Build Helper Script”将在每次生成期间运行,因为它未指定任何输出。若要解决此警告,请将输出依赖项添加到脚本阶段,或通过取消选中脚本阶段中的“基于依赖项分析”,将其配置为在每次生成中运行。(在项目“BroughSuperior”的目标“WhiteLabel”中)注意:运行脚本构建阶段“复制MIBKit资源包”将在每次构建期间运行,因为运行脚本阶段“基于依赖关系分析”的选项未选中。(在项目“BroughSuperior”的目标“WhiteLabel”中)警告:运行脚本构建阶段'Bugsnag'将在每次构建期间运行,因为它没有指定任何输出。若要解决此警告,请将输出依赖项添加到脚本阶段,或通过取消选中脚本阶段中的“基于依赖项分析”,将其配置为在每次生成中运行。(在项目'BroughSuperior'的目标'WhiteLabel'中)/Users/administrator/.jenkins/jobs/iOS Bruff dev/workspace/MIBKit/MIBKit.xcodeproj:错误:未找到签名证书“iOS Development”:未找到与团队ID“HHGY 6CWBZB”匹配的带有私钥的“iOS Development”签名证书。(在项目“MIBKit”的目标“MIBKitResources”中)存档失败

7gs2gvoe

7gs2gvoe1#

日志中的错误消息表明这应该是一个签名问题:

/Users/administrator/.jenkins/jobs/iOS Bruff dev/workspace/MIBKit/MIBKit.xcodeproj: error: No signing certificate "iOS Development" found: No "iOS Development" signing certificate matching team ID "HHGY6CWBZB" with a private key was found. (in target 'MIBKitResources' from project 'MIBKit') ** ARCHIVE FAILED **

这表明Xcode无法找到与指定团队ID匹配的相应iOS开发证书。
在Jenkins控制台
请记住,如果您使用Jenkins构建项目,则需要确保在Jenkins服务器上安装了正确的证书和配置文件,而不仅仅是本地计算机。
您的Jenkins服务器可以是您的本地机器:确保它(Jenkins)与您的帐户一起运行。
首先,检查您的证书:在用作Jenkins服务器的Mac(可以是您自己的机器)上打开Keychain Access应用程序,并验证是否存在正确的iOS开发证书。如果不是,您可能需要从Apple Developer网站下载并安装它。
然后检查您的配置文件(打开Xcode并转到Xcode > Preferences > Accounts,选择您的Apple ID,然后单击“Manage Certificates.”)查看开发证书是否存在于证书列表中。如果没有,您可以通过单击加号按钮添加它。
在Xcode中打开你的项目并检查目标的构建设置,尝试更新你的构建设置。确保“Code Signing Identity”设置为“iOS Developer”,“Provisioning Profile”设置为“Automatic”或正确的特定配置文件。此外,确保在“Signing & Capabilities”选项卡中选择了正确的团队。
注意:有时候,由于命令行工具使用了错误的Xcode版本,可能会出现问题。您可以通过转到Xcode > Preferences > Locations > Command Line Tools并选择正确的Xcode版本来设置正确的版本。

sbdsn5lh

sbdsn5lh2#

我有一个类似的问题,这帮助了我。

Podfile的变化

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

来源:https://github.com/CocoaPods/CocoaPods/pull/11723/files#diff-48e896df652b2501f6273da535c8613c530227a16358271160cc2ec590c2cb11R603

相关问题