xcode - Travis CI 无法构建并出现代码签名错误

标签 xcode macos code-signing travis-ci

Travis CI 无法构建我的应用程序,因为 Xcode 项目设置为需要代码签名,而 Travis 没有我的证书。我可以通过禁用代码签名来解决此问题,但沙箱和权利将不起作用。我知道通常从命令行构建时,您可以将 CODE_SIGN_IDENTITY=""CODE_SIGNING_REQUIRED=NO 传递给 xcodebuild 来禁用代码签名,但是你该怎么做这是 Travis CI 中的

这是我的.travis.yml:

language: objective-c
xcode_workspace: "Mac Linux USB Loader.xcworkspace"
xcode_scheme: "Mac Linux USB Loader"

这是错误(我已经编写了许多先前引用 Cocoapods 的行,因为它们不相关:

Check dependencies
Code Sign error: No code signing identities found: No valid signing identities (i.e. certificate and private key pair) matching the team ID “T47PR9EQY5” were found.

最佳答案

您是否尝试将其添加到 travis.yml 上:

language: objective-c

script:
  - xcodebuild [DEFAULT_OPTIONS] CODE_SIGNING_REQUIRED=NO

或者将开发(以及分发,如果您要在构建中使用)证书/ key 导入到钥匙串(keychain)并复制您的团队配置文件,以使代码签名工作。像这样:

language: objective-c

before_script:
- ./scripts/add-key.sh

script:
  - xcodebuild [DEFAULT_OPTIONS] CODE_SIGNING_REQUIRED=NO

添加 key .sh

#!/bin/sh

KEY_CHAIN=ios-build.keychain
security create-keychain -p travis $KEY_CHAIN
# Make the keychain the default so identities are found
security default-keychain -s $KEY_CHAIN
# Unlock the keychain
security unlock-keychain -p travis $KEY_CHAIN
# Set keychain locking timeout to 3600 seconds
security set-keychain-settings -t 3600 -u $KEY_CHAIN

# Add certificates to keychain and allow codesign to access them
security import ./scripts/certs/dist.cer -k $KEY_CHAIN -T /usr/bin/codesign
security import ./scripts/certs/dev.cer -k $KEY_CHAIN -T /usr/bin/codesign

security import ./scripts/certs/dist.p12 -k $KEY_CHAIN -P DISTRIBUTION_KEY_PASSWORD  -T /usr/bin/codesign
security import ./scripts/certs/dev.p12 -k $KEY_CHAIN -P DEVELOPMENT_KEY_PASSWORD  -T /usr/bin/codesign

echo "list keychains: "
security list-keychains
echo " ****** "

echo "find indentities keychains: "
security find-identity -p codesigning  ~/Library/Keychains/ios-build.keychain
echo " ****** "

# Put the provisioning profile in place
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles

cp "./scripts/profiles/iOSTeam_Provisioning_Profile_.mobileprovision" ~/Library/MobileDevice/Provisioning\ Profiles/
cp "./scripts/profiles/DISTRIBUTION_PROFILE_NAME.mobileprovision" ~/Library/MobileDevice/Provisioning\ Profiles/

关于xcode - Travis CI 无法构建并出现代码签名错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27671854/

相关文章:

ios - UITraitCollection getter,iOS13 不支持

java - 将 Java 运行时嵌入到沙盒 Cocoa Mac 应用程序中

java - 如何使用 Ant 检查已签名的 jar 文件?

java - 为什么 Java Web Start 说已签名的 jar 文件未签名?

ios - Xcode:发送的事件在将 UIButton 类更改为自定义类时消失

ios - 当我更改TextField的半径时,圆角矩形轮廓仍保留在框中

java - Appium:尝试在 IOS 设备上安装应用程序时出错

bash - 在 bash 中创建 RS256 JWT

python - 使 Sublime Text 3 成为 Python 文件的默认编辑器。 MAC 操作系统 : El Capitan OS

ios - 如何共享个人 Apple iOS 开发者帐户