상세 컨텐츠

본문 제목

[fastlane] 프로젝트 설정

iOS 캐기/fastlane 캐기

by Atlas 2022. 9. 16. 21:58

본문

728x90
반응형

2022.09.16 - [iOS 캐기/fastlane 캐기] - [fastlane]자 해보자! fastlane!

2022.09.16 - [iOS 캐기/fastlane 캐기] - [fastlane] 설치

[fastlane] 프로젝트 설정

2022.09.16 - [iOS 캐기/fastlane 캐기] - [fastlane] match로 배포해보기

2022.09.16 - [iOS 캐기/fastlane 캐기] - [fastlane] match git 설정

2022.10.24 - [iOS 캐기/Error 캐기] - [fastlane] sh: xcbeautify: command not found

 

1. fastlane을 적용할 프로젝트의 루트 디렉토리에서 터미널을 실행한다. 

fastlane init

 

4가지의 선택지가 주어지는데 나는 4번! Manual setup으로 진행할 예정이다.

모든것을 처음부터 구축해보고싶기 때문이다 😏

 

설치를 완료하고 프로젝트 폴더를 보게 되면 fastlane 폴더가 생겨 있고 내부에는 Appfile과 Fastfile이 생성된 것을 확인 할 수 있다. 

 

 

Appfile 이란?

fastlane은 Appfile의 내용을 참조해서 환경을 셋팅하고 fastfile을 참고하여 특정 명령을 수행한다(lane)

핵심정보를 보관하여 지속적으로 입력하는 일이 없도록 사용하면 된다.

Fastfile 이란?

fastlane을 통해 사용하려는 기능들을 lane으로 정의할 수 있다.

 

 

먼저 소개하고 싶은 기능은,

 

일반적으로 Apple 개발자 포털에서 새 앱을 수동으로 등록하면 되지만 

우리는 이 기존의 수동프로세스를 자동화로 해보겠다.  바로 Produce 라는 것이다. 

produce 란 ? 

Apple Developer Portal 과 Apple Stroe Connect 에 새로운 iOS 앱을 생성하기 도와주는 명령어 

1. 터미널 명령어

2. fastfile 의 lane으로 만들어서 사용하는 법 

 

1. 방법으로 진행해 보자 

 

순차적으로 

Your Apple ID Username :  ********@gmail.com
App Identifier : atlas.fastlane.demo
App name : iLaneSample

정보를 기입해 준다.

 

 

이렇게 기분좋은 녹색의 성공 메시지를 받고 App Store Connect에 들어가면 앱이 따단! 하고 만들어져 있다. 

 

기존에는 이렇게 앱을 만들었는데 이제는 fastlane의 produce를 적극 활용해야겠다 :) 

 

 

 

fastlane이 개인 code-signing 자격증명 자동으로 관리하는 방법 

code signing 이란 애플인증서와 프로비저닝 프로파일을 갖추는 과정인데 

 

1.cert/sigh

2.match

 

2가지 방법으로 리소스 획득 저장 및 관리를 자동화 할 수 있다. 

 

애플인증서(certificate)는 Apple의 보안체계에서 필수 적인 역할을 한다. 검증가능한 디지털 ID로 작동하기 때문이다. 

개발자가 Apple 대신 앱을 실행할 수 있는 권리를 허용하는것 

 

프로비저닝 프로파일(Provisioning Profile)은 그룹라이센스 인증과 같은 ㅁ것으로  지정된 iOS 앱을 설치하고 실행하기 위한 알려진 ios 장치세트라고 볼 수 있겠다  (디바이스가 나를 신뢰하는지를 확인하기 위한 파일 )

 

fastlane을 통해서 이 2가지 파일을 관리해보자 .

 

certificate/ Provisioning Profile을 만들고 설치하는데 사용되는 명령어 

cert는 iOS 코드 서명 certicicate를 생성하고 

sigh은 앱에 대한 provisioning Profile을 생성합니다. 

 

코드사이닝 및 빌드

Fastfile

	lane :custom_lane do
    	#lane signing + build developent
		sync_code_signing(type: "development")
		build_app(scheme: "iLaneSample")
	end
    
	lane :custom_lane do
    	#lane signing + build distribution
		sync_code_signing(type: "appstore")
		build_app(scheme: "iLaneSample")
	end

 

우선 이렇게 하고 

 

 

Xcode에서 Organizer를 통해서 보면 이렇게 Archive 된 것을 확인 할 수 있다. 

 

그리고 Developer Potal 사이트를 보게 되면 Provisioning Profile도 생성되어 있는 것을 확인 할 수 있다. 

 

테스트플라이트 배포 

이렇게 한 상태에서 배포까지 후다닥 해보쟈 

테스트 플라이트를 위한 lane을 만들어 보자

 

FastFile

	lane :deploy_testflight do 
        # upload_to_testflight
		sync_code_signing(type: "appstore",
					app_identifier: "atlas.fastlane.demo",
					readonly: true
		)
		increment_build_number # build number 자동으로 증가 
		build_app(scheme: "iLaneSample",
					export_method: "app-store")
 		upload_to_testflight

	end

 

upload_to_testflight 를 추가해서 실행해보자. 

터미널을 보면 upload_to_testflight 스텝이 추가되어 실행되는걸 볼 수 있다. 

 

* 중요한걸 잊을 뻔 했다. *

Asset catalog의 AppIcon 이미지를  추가해줘야한다.

plist 에도 추가해주자 " key: IconName , value: AppIcon "

 

그리고 App store connect 를 보면 잘 업로드 되어있다 . 뿌듯하다 👏

 

한번에 이렇게 잘 된다면 너무나 좋겠지만 실제로는 수많은 삽질을 하며 왔다 ㅠㅠ 

삽질하면서 처리한 내용들은 따로 정리해 봐야겠다. 

 

https://artieee.tistory.com/36

 

 

Appfile 전체 파일내용 

 

# 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 "Description of what the lane does"
 	lane :custom_lane do
    	#lane signing + build 
		sync_code_signing(type: "appstore")
		build_app(scheme: "iLaneSample")
	end
  
	lane :register_app do 
		produce(
			username: "*****@gmail.com",
			app_identifier: "atlas.fastlane.demo",
			app_name: iLaneSample,
			team_name: "A Team"
		)
	end
    
	lane :deploy_testflight do 
        # upload_to_testflight
		sync_code_signing(type: "appstore",
					app_identifier: "atlas.fastlane.demo",
					readonly: true
		)
		increment_build_number # build number 자동으로 증가 
		build_app(scheme: "iLaneSample",
					export_method: "app-store")
 		upload_to_testflight

	end

end
반응형

'iOS 캐기 > fastlane 캐기' 카테고리의 다른 글

[fastlane] slack으로 push 알림 보내기  (0) 2022.10.04
[fastlane] match로 배포해보기  (2) 2022.09.16
[fastlane] 설치  (0) 2022.09.16
[fastlane]자 해보자! fastlane!  (0) 2022.09.16
[fastlane] match git 설정  (2) 2022.09.16

관련글 더보기

댓글 영역