티스토리 뷰
내 첫 CI(Continuous Integration) 경험이다. 유닛테스트를 하는건 아니지만, fastlane을 써보고 싶어서 시작하게 되었다.
fastlane init하고 테플 업데이트를 골라줫다. 알아서 스크립트가 세팅이 되었다.
원래 앱 배포할 때는 developer.apple.com에서 profile, app id 를 생성하고 appstore connect에 배포할 앱을 생성해야 하는데요. 앱이 있는 지 체크하고 없으니 앱 등록해도 되냐고 물어봅니다. 사용자가 일일이 사이트에 접속하지 않아도 커맨드 창에서 앱 등록 및 배포까지 할 수 있게 해줍니다.
출처: https://hyesunzzang.tistory.com/162 [dev.ssun]
1.
brew install fastlane
2. 프로젝트의 위치에서
fastlane init swift (베타긴함)
4가지의 파일은 remote git에 같이 올려줘야한다.
- Gemfile
- Gemfile.lock
- fastlane/Appfile
- fastlane/Fastfile
1. AppFile
app_identifier("~~") # The bundle identifier of your app
apple_id("~~@icloud.com") # Your Apple email address
itc_team_id("~~") # App Store Connect Team ID
team_id("~~") # Developer Portal Team ID
# For more information about the Appfile, see:
# https://docs.fastlane.tools/advanced/#appfile
요런 파일이 생겨있을 겁니다.
메소드들의 인자에 자동으로 값이 들어가 있을거에요.
그런데 저희팀은 개발자들이 애플아이디 1개를 공유하면서 쓰는게 아니라
각자의 계정을 사용하고 있습니다.
각자가 배포를 할때마다 your-apple-id를 계속 바꿔야 하면 불편하잖아요?
그래서 이것을 .env 를 이용해 환경변수로 관리하려 합니다.
하는김에 4가지 값 모두 환견병수로 관리하는게 좋겠네요.
출처: velog.io/@hyob/Fastlane으로-iOS앱-배포과정을-자동화-해보았다
fastlane/Fastfile
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
# https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
# https://docs.fastlane.tools/plugins/available-plugins
#
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:ios)
platform :ios do
desc "Push a new release build to the App Store"
lane :release do
build_app(workspace: "xx.xcworkspace", scheme: "xx")
upload_to_app_store
end
end
실행은 fastlane release로 해주면 된다.
흑흑..에러난다...
iOS Distribution 을 위한 CSR이 없어서 나는 에러였다.
developer.apple.com에서 Certificates탭에서,
을 추가해주고
맥에서 CSR파일을 업로드 한다.
그러면 키체인에 distribution이 생긴걸 볼 수 있따.
다시 fastlane release 해주자.
다음과 같은 에러가 나서, https://appleid.apple.com/account/manage 에서 앱 암호 > 암호 생성을 해주었다.
이름은 fastlane같은걸로 하고, 나오는 암호를 배포할 때 넣어주면 된다.
앱 아이콘이 없어서 생기는 문제였다 ㅠㅡㅠ
디자이너가 아직 아이콘을 만들어주기 전이라서, 인터넷에서 아무 이미지나 구해서 App Icon Generator에 넣어서 해결했따.
//////////////////////////
travis CI라는 걸로 깃에서 트리거를 받는듯? fastlane은 그런것까지는 안해주나 보다.
travis CI는 "public repo"에 대해서만 무료이다.
MapFileParser.sh: Permission denied
Command PhaseScriptExecution failed with a nonzero exit code
sudo chmod -R 777 . 으로 권한을 줬는데 문제가 왜 생겼는지는 모르겠다. xcode에서 할때는 괜찮았는데 (그동안)
PhaseScriptExecution Run\ Script /Users/yejincho/Library/Developer/Xcode/DerivedData/Unity-iPhone-eimfjocvxpzstubyckkxmukdxtod/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/IntermediateBuildFilesPath/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/Script-033966F41B18B03000ECD701.sh
할거
- 빌드용 브랜치 파기
- 풀 트리거 만들기
스크린샷 뽑는거 실패해서 슬프다...
fastlane 별루
'macOS, iOS' 카테고리의 다른 글
[iOS] 수출 규정 준수 정보 제공 안할때 info.plist 설정 (0) | 2020.01.29 |
---|---|
[iOS] reduce와 scan (0) | 2020.01.29 |
[iOS] wkwebview에서 http를 쓰고 싶다면 (0) | 2020.01.16 |
[iOS] svg 이미지 왜 안쓰냐ㅡㅡ (0) | 2020.01.15 |
업데이트된 Xcode 프로젝트로 iOS 12 지원하기 (0) | 2020.01.15 |