JEP's Diary

Fastlane을 이용한 iOS 개발 환경 (.ipa 파일 추출) 본문

Development/iOS

Fastlane을 이용한 iOS 개발 환경 (.ipa 파일 추출)

지으니88 2016. 3. 17. 18:05

Fastlane을 이용한 iOS 개발 환경 (.ipa 파일 추출-AppStore용)


참고. https://github.com/fastlane/fastlane


1. 인증서, 프로비저닝 파일 생성 및 사용 시행착오(팀단위 개발)

회사에서 팀원들과 같이 iOS 앱을 개발했을 때, 인증서와 프로비저닝 파일에 대한 개념이 없어서 각각 본인의 컴퓨터에서 인증서를 생성해 프로비저닝 파일을 따로 만들어서 사용했었다.

앱 하나를 개발하는데 여러개의 프로비저닝 파일을 만들게 되는 것이다. 그러다보니 빌드 할 때 심심치 않게 사이닝 관련 에러가 나고, 이에 대한 원인을 모르고 지나가곤 했었다.


그 후 하나의 인증서와 하나의 프로비저닝 파일을 생성하여, 여러개의 컴퓨터에서 하나의 앱을 같이 개발하는 환경을 만들어 진행했다.

a. 내 컴퓨터에서 인증서를 생성한다.

b. 이 인증서를 팀원들의 컴퓨터에 설치한다 (키체인에서 인증서를 추출하여 USB로 전달 및 설치)

c. 이 인증서를 이용하여 프로비저닝 파일을 생성한다.

d. 생성한 프로비저닝 파일 역시 팀원들의 컴퓨터에 설치.


이것 또한 번거롭다.

앱을 개발하거나 간단한 샘플 앱을 디바이스에 돌려 보고 싶으면 

개발자센터에 접속하여 프로비저닝 파일과 App Id를 수동으로 등록해주고 개발 테스트를 해야하는 번거로움이 있었다.


2. Fastlane을 이용한 개발 환경설정

iOS 앱을 개발하여 디바이스에 테스트를 해보려면 다음과 같은 과정이 필요하다.

iOS Developer 사이트에 접속하여,

a. 인증서 생성 (Certificates)

b. APP ID 등록

c. Provisioning Profile 생성 

각각의 과정을 FaseLane 툴을 이용하여 자동화 시킬 수 있다.


각 툴 개요

- scan : 앱의 테스트를 실행

- snapshot : 지역화된 스크린샷 생성

- frameit : snapshot에서 생성한 스크린샷에 기기 프레임을 적용하고 위에 텍스트를 넣어서 멋진 설명 사진을 만들어준다.

- pem : 푸시 알림 인증 생성을 자동화

- cert : 유효한 코드 사이닝 identify를 생성

- sigh : 프로비저닝 파일을 생성

- produce : 커맨드 라인으로 iTunes Connect와 Apple Developer portal에 앱ID를 등록

- gym : 앱을 빌드하여 ipa 파일을 생성

- deliver : iTunes Connect에 앱의 메타데이터, 스크린샷, 바이너리 파일을 올릴 수 있는 툴


fastlane 환경설정 하기

a. 샘플 프로젝트 생성

b.터미널을 열어 생성한 프로젝트 경로로 이동

c. fastlane 설치 및 설정


fastlane 설치

명령어 : sudo gem install fastlane --verbose




fastlane 초기 설정

fastlane을 이용하기 위한 준비 작업.

터미널에 fastlane init 명령어를 입력하면 설정 도움말들이 보여지는데, 이를 따라서 진행한다.


명령어 : fastlane init 

개발자 계정을 입력한다.



계정을 입력하면 계정의 유효성을 확인 후 유효하다면,

ID와 App에 대한 정보가 맞는지 물어본다.

이때 Apple Developer Portal과 iTunes Connect에 앱이 등록되어 있지않으면 자동으로 등록해준다.



y를 입력하면 프로젝트 루트경로에 fastlane 폴더가 생성 된다.

그리고 그 하위에 fastlane 설정 파일들이 생성된다.



- Appfile : 앱 메타데이터 정보 관리

- Deliverfile : deliver에 필요한 정보 관리

- Fastfile : 앱 빌드와 디플로이에 관한 모든 정보를 포함. 실행할 단계와 순서를 정의


3. ipa 파일 추출

fastlane을 이용하여 앱을 사이닝하여 빌드하고, ipa 파일을 생성해본다.


sigh을 이용하여 프로비저닝 프로파일 생성

sigh는 프로비저닝 파일을 생성, 갱신, 다운로드 및 복구의 기능을 담당한다. 또한 AppStore, Ad Hoc, Development 각 용도에 맞는 프로파일을 지원한다.

명령어 : sigh



sigh 명령어를 입력하면 프로비저닝 파일이 없다면 새로 생성하고, 기존에 만든 프로파일이 있으면 자동으로 다운로드 해준다.

그냥 sigh 명령어를 입력하면 AppStore용 프로비저닝파일이 만들어진다. develop용 프로비저닝 파일을 생성하려면 옵션을 준다.

명령어 : sigh --development



AppStore, Development용 프로비저닝 프로파일이 생성되었다.



gym을 이용하여 앱 빌드

생성한 프로비저닝 파일을 이용해서 앱을 빌드한다.

명령어 : gym


프로파일이 2개이기 때문에 선택하라고 나온다.



ipa 파일이 생성되었다.




4. Fastfile에 정의하기(3번과정의 자동화)

3번에서 했던 과정은 프로비저닝 프로파일을 생성하여, 앱을 빌드하는데 각각의 명령어 sigh, gym을 실행해서 진행했다.


이러한 각 단계를 하나의 파일에 단계를 lane으로 정의하여 자동화 해본다.

위에서 했던 FastLane 설정을 완료하고 나면 프로젝트 루트 폴더에 fastlane 폴더가 생성되고, 그 하위에 Fastfile이 생성된다.

Fastfile을 열어 lane을 정의한다.


프로젝트 루트 경로 > fastlane > Fastfile 열기

파일을 열어보면 기본적으로 템플릿이 구성되어 있다.

# You can define as many lanes as you want 이라고 써있는 줄 바로 아래에 lane을 정의한다.


1
2
3
4
5
desc "Create ipa file for test"
  lane :ipafile do
    sigh 
    gym
  end
cs


3번에서 했던 과정을 ipafile로 정의했다.

그리고 fastlane으로 실행한다.

명령어 : fastlane ipafile



지금은 간단하게 sigh, gym 만 사용했지만 

테스트, 스크린샷, 사이닝, 빌드 및 배포 까지 하는 과정을 자동화로 이용한다면

매우 편리 할 것 같다.

각각의 옵션 또한 매우 다양하지만, 아직은 기본적인 것만 써봤당 ㅜ

옵션도 활용을 하면 더욱 체계적인 배포단계를 만들 수 있을 듯 !