Travis-CI에서 iOS 앱을 빌드하고 deploygate로 배포
8012 단어 iOSDeployGateTravisCI
전제
CocoaPods
를 사용하여 프로젝트 빌드를 가정합니다 master
분기에 병합 될 때 빌드된다고 가정합니다 준비
Travis 명령 설치
$ gem install travis --no-document
$ cd [Project Directory]
$ travis login
# Github のユーザ名とパスワードを入力
$ travis enable
인증서 및 프로비저닝 프로필
$ gem install travis --no-document
$ cd [Project Directory]
$ travis login
# Github のユーザ名とパスワードを入力
$ travis enable
.p12
형식으로 암호문을 설정하고 travis.p12
로 출력합니다.travis.mobileprovision
Preferences
> Accounts
> View Details
의 해당 프로비저닝 프로파일을 마우스 오른쪽 버튼으로 클릭하고 Show in Finder
.travis
디렉토리에 함께 배치합니다.$ cd [Project Directory]
$ cd .travis/
$ tar cvf secrets.tar travis.p12 travis.mobileprovision
$ cd ..
$ travis encrypt-file .travis/secrets.tar .travis/secrets.tar.enc
# 出力をどこかにとっておく
$ rm .travis/secrets.tar
환경 변수
Settings
> Environment Variables
> Add a new variable
travis env set NAME VALUE
명령으로도 설정할 수 있습니다 Display value in build log
를 OFF
변수 이름
설명
APP_NAME
*.xcproject
또는 *.xcworkspace
앞 부분KEY_PASSWORD
travis.p12
로 설정된 암호문PROFILE_NAME
Xcode
Preferences
> Accounts
> View Details
에 표시된 프로비저닝 프로필의 이름DEVELOPER_NAME
열쇠 고리 접근 증명서 이름의
:
의 뒤에 (
이전 부분. 공백이 있으면 공백 앞에 \
DEPLOYGATE_USER_NAME
deploygate의 사용자 이름
DEPLOYGATE_API_KEY
deploygate 설정 화면 부터 검색
Travis-CI 설정 화면
Settings
> General Settings
의 Build pull requests
를 OFF 로 둔다Travis-CI 용 구성 파일
.travis.yml
파일로 프로젝트 디렉토리 바로 아래에 설치 xcode_workspace
의 항목에는 자신의 프로젝트의 *.xcworkspace
의 디렉토리명을 넣는다 before_install
의 openssl ...
행에 이전 단계의 travis encrypt-file
결과를 복사 .travis.yml
language: objective-c
osx_image: xcode7
xcode_workspace: YOURPROJECTNAME.xcworkspace
before_install:
### travis encrypt-file の結果をコピペする ###
- openssl aes-256-cbc -K ... -iv ... -in .travis/secrets.tar.enc -out .travis/secrets.tar -d
- tar xvf ./.travis/secrets.tar -C ./.travis
# xcpretty と fomrmatter のインストール
- gem install xcpretty-travis-formatter --no-document
before_script:
# Create default keychain on VM
# http://docs.travis-ci.com/user/common-build-problems/#Mac%3A-Code-Signing-Errors
- security create-keychain -p travis ios-build.keychain
- security default-keychain -s ios-build.keychain
- security unlock-keychain -p travis ios-build.keychain
- security set-keychain-settings -t 3600 -l ~/Library/Keychains/ios-build.keychain
# Add certs to keychain
- security import ./.travis/travis.p12 -k ~/Library/Keychains/ios-build.keychain -P ${KEY_PASSWORD} -T /usr/bin/codesign
# save profile
- mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
- cp "./.travis/profiles/travis.mobileprovision" ~/Library/MobileDevice/Provisioning\ Profiles/
script:
- xcodebuild -workspace ${APP_NAME}.xcworkspace -scheme ${APP_NAME} -sdk iphoneos -configuration Release CODE_SIGN_IDENTITY="${DEVELOPER_NAME}" archive -archivePath ./build/${APP_NAME}.xcarchive | xcpretty -f `xcpretty-travis-formatter` && exit ${PIPESTATUS[0]}
- xcodebuild -exportArchive -exportFormat IPA -archivePath ./build/${APP_NAME}.xcarchive -exportPath ./build/${APP_NAME}.ipa -exportProvisioningProfile "${PROFILE_NAME}" | xcpretty -f `xcpretty-travis-formatter` && exit ${PIPESTATUS[0]}
after_success:
# Upload .ipa file to deploygate
- curl -F "file=@build/${APP_NAME}.ipa" -F "token=${DEPLOYGATE_API_KEY}" https://deploygate.com/api/users/${DEPLOYGATE_USER_NAME}/apps
after_script:
- security delete-keychain ios-build.keychain
- rm -f "~/Library/MobileDevice/Provisioning Profiles/${PROFILE_NAME}.mobileprovision"
branches:
only:
- master
동작 확인
지금까지 추가한 파일을 커밋하고 Github에 푸시하면 .travis.yml 의 정의에 따라 빌드 프로세스가 실행됩니다.
$ git commit -m "add Travis-CI settings"
$ git push
주의점
$ git commit -m "add Travis-CI settings"
$ git push
travis encrypt-file
는 한 프로젝트에 대해 여러 파일을 처리 할 수 없습니다.참고한 기사
Reference
이 문제에 관하여(Travis-CI에서 iOS 앱을 빌드하고 deploygate로 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tarom/items/9b8a3497907d8d4d1390텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)