yml travis tool generate deploy create cli xcode macos code-signing travis-ci

xcode - tool - travis js



Travis CI no puede construirse con un error de firma de código (6)

¿Intentaste agregar esto en tu travis.yml?

language: objective-c script: - xcodebuild [DEFAULT_OPTIONS] CODE_SIGNING_REQUIRED=NO

O importe un certificado / clave de desarrollo (y distribución si va a utilizarlo en su compilación) al llavero y copie el perfil de aprovisionamiento de su equipo para hacer que la firma del código funcione. Me gusta esto:

language: objective-c before_script: - ./scripts/add-key.sh script: - xcodebuild [DEFAULT_OPTIONS] CODE_SIGNING_REQUIRED=NO

add-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/

Travis CI no puede compilar mi aplicación porque el proyecto Xcode está configurado para requerir firma de código y Travis no tiene mis certificados. Podría solucionar este problema deshabilitando la firma de código, pero luego el sandbox y los derechos no funcionarán. Por lo general, cuando CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO desde la línea de comandos, puede pasar CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO a xcodebuild para deshabilitar la firma del código, pero ¿cómo hace esto en Travis CI ?

Aquí está mi .travis.yml :

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

Y aquí está el error (he codificado muchas líneas anteriores que se refieren a Cocoapods, ya que no son relevantes:

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 osx_image: xcode7.2 script: - xctool -workspace XXX.xcworkspace -scheme XXX -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO - xctool test -workspace XXX.xcworkspace -scheme XXXTests -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO before_script: - chmod a+x ./scripts/add-key.sh - sh ./scripts/add-key.sh

add-key.sh:

#!/bin/sh # Create a custom keychain security create-keychain -p travis ios-build.keychain # Make the custom keychain default, so xcodebuild will use it for signing security default-keychain -s ios-build.keychain # Unlock the keychain security unlock-keychain -p travis ios-build.keychain # Set keychain timeout to 1 hour for long builds # see http://www.egeek.me/2013/02/23/jenkins-and-xcode-user-interaction-is-not-allowed/ security set-keychain-settings -t 3600 -l ~/Library/Keychains/ios-build.keychain # Add certificates to keychain and allow codesign to access them security import ./scripts/certs/XXXDevelop.p12 -k ~/Library/Keychains/ios-build.keychain -P $PASSWORD -T /usr/bin/codesign security import ./scripts/certs/XXXDistribution.p12 -k ~/Library/Keychains/ios-build.keychain -P $PASSWORD -T /usr/bin/codesign # Put the provisioning profile in place mkdir -p ~/Library/MobileDevice/Provisioning/ Profiles cp "./scripts/profile/XXXdevPP.mobileprovision" ~/Library/MobileDevice/Provisioning/ Profiles/ cp "./scripts/profile/XXXdisPP.mobileprovision" ~/Library/MobileDevice/Provisioning/ Profiles/

enlace a detalles


Encuentre mi archivo .travis.yml a continuación, que corrige este mensaje de error y otros, cuando use un proyecto Xcode 7 + Swift + iOS 9 + la herramienta de integración continua disponible en travis-ci.org:

# http://docs.travis-ci.com/user/languages/objective-c/ # https://github.com/facebook/xctool language: objective-c osx_image: xcode7 # xcode_project: SampleNotifcations/SampleNotifcations.xcodeproj # xcode_workspace: SampleNotifcations/SampleNotifcations.xcworkspace # xcode_scheme: SampleNotifcationsTests podfile: SampleNotifcations/Podfile # xcode_sdk: iphonesimulator9.0 script: xctool -workspace SampleNotifcations/SampleNotifcations.xcworkspace -scheme SampleNotifcationsTests -sdk iphonesimulator -destination ''platform=iOS Simulator,name=iPhone 6 Plus'' build test ONLY_ACTIVE_ARCH=NO CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO before_install: - brew update - brew uninstall xctool && brew install --HEAD xctool

Fuentes:


Puedo pasar solo configurando Objective-C con lenguaje, como este en ".travis.yml"

language: objective-c


Si no necesita compilar para iphoneos , por ejemplo, si solo quiere saber si el proyecto se desarrolla o si sus pruebas de unidad pasan. Puede especificar el iphonesimulator sdk. Al hacer esto, xctool no firmará el código.

script: xctool -sdk iphonesimulator -workspace {WORKSPACE}.xcworkspace -scheme {SCHEME} build test


language: objective-c script: xctool -project [xcodeproject] -scheme [scheme] build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO

Puede referirse a este .travis.yml