티스토리 뷰

macOS, iOS

[iOS] fastlane 세팅하기

SweetDev 2020. 1. 28. 13:41

내 첫 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 별루

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함