상세 컨텐츠

본문 제목

[fastlane] match로 배포해보기

iOS 캐기/fastlane 캐기

by Atlas 2022. 9. 16. 22:23

본문

728x90
반응형

2022.09.16 - [iOS 캐기/fastlane 캐기] - [fastlane]자 해보자! fastlane!
2022.09.16 - [iOS 캐기/fastlane 캐기] - [fastlane] 설치
2022.09.16 - [iOS 캐기/fastlane 캐기] - [fastlane] 프로젝트 설정
[fastlane] match로 배포해보기
2022.09.16 - [iOS 캐기/fastlane 캐기] - [fastlane] match git 설정
2022.10.24 - [iOS 캐기/Error 캐기] - [fastlane] sh: xcbeautify: command not found
 
 
fastlane을 통한 코드사이닝 방법 중 2번째 방법 match를 사용해 보자

match 란?

혼자서 개발을 진행한다면 저번 포스팅에서 인증방법을 해도 괜찮지만 팀원들과 같이 협업을 한다면 certificate 와 profile을 간편하게 동기화 시켜주는 도구이기 때문에 꼭 해보는 것을 권장한다!
 

장점

certificate와 provisioning profile을 동기화 시켜놓으면 맥장비의 구애받지 않고 동일한 환경을 구현할 수 있다. 
혼자서 개발 할 때는 Automatically manage Signing feature 를 이용해서 진행했기 때문에 
이번에 적용해 보면서 더 많은 장점을 경험해보면 좋겠다 ㅎㅎ 
 

어떻게하면 될까?

git의 private repository를 만들어서 관리자 한명이 fastlane의 match 를 통해서 할 수 있다. 
 
* git관련해서 꼭 한번 이 글도 보고 시작하길 바란다. 
https://artieee.tistory.com/36
 
 
1. 팀 관리자가 비공개 git 레포지토리에 인증서를 만들어서 업로드 해놓고 
2.Apple에서 개인키 ,profile 및 certificate 를 얻는다 . -> 암호화 되어 개인 저장소에 저장된다. 
각 팀원은 certificates 및 개인 키를 키체인으로 가지고 온다.
provisioning profile은 라이브러리에 복사된다. 
 
보안적인 측면을 강화하기 위해서는 git 모든 팀원이 2단계 인증을 사용하는것도 권장한다. 
 

실습해보자

우선 인증서 관리용 비공개 레포지토리를 하나 생성한다. 
 

 
프로젝트 루트 폴더에서 match 명령어를 실행시키자 

fastlane match init

 
fastlane 폴더 하위의 Matchfile이 생성된 것을 확인할 수 있다. 

 
Mathfile 에서 
Type을 용도에 맞게끔 수정해 준다. type("development") -> type("appstore")로 변경

git_url("https://github.com/PotatoArtie/app-auth.git")

storage_mode("git")

type("appstore") # The default type, can be: appstore, adhoc, enterprise or development

 
인증서가 생성되어 있다면 삭제하고 진행해야한다. (이참에 한번 정리한다 생각하고 해봐야지)

fastlane match nuke develpment
fastlane match nuke distribution 

 
각 각의 인증서 및 프로파일을 생성하기 위해서

fastlane match develpment 

fastlane match appstore 

 --verbose를 쓰면  삽질의 영역을 조금이라도 줄여볼 수 있다. (fastlane match --verbose appstore)
 
진행하다가 암호화를 위한 암호를 입력하라는 메시지가 뜨게 된다. 입력하고 잘 기록해 두자 
나중에 다른 팀원들이 인증서 복사할 때 이 암호가 또 필요하기 때문이다. 

 
그러면 생성한 repository에 이렇게 생성된 걸 확인할 수 있다. 

 
다른 팀원은 인증서를 복사하여 사용하면 된다. 

fastlane match development --readonly 
fastlane match appstore --readonly 

그리고 Xcode에서 signing에서 match로 시작하는 인증서를 선택해주면 된다. 

 
*******꿀 팁!!! *******

유용한 매개변수중 하나는 force_for_new_devices(true) 라는 아이가 있는데,
팀의 장치 수가 변경 된 경우 Provisioning Profile을 자동으로 재생성 해준다. 대박사건!!

*******꿀 팁!!! *******
 
 
Matchfile

Mathfile

storage_mode("git")

type("appstore") # The default type, can be: appstore, adhoc, enterprise or development

//유용한 매개변수! 
force_for_new_devices(true)

 
Appfile

lane :sync_all_certificate_dev do 
		match(type:"development")
end

 
Xcode > window > Device 를 통해서 기기의 UUID를 확인해서 lane에 추가해 준다. 
 

identifier 의 값을 복사해서 넣어준다.
 

lane :sync_device_info do
    register_devices(
        devices: {
        	"Atlas' iPhone" => "000081929-000917481929102E"
        }
    )
end

 
lane에다가 이렇게 추가하는 방법도 있고, 별도의 파일로 관리를 해보록 하겠습니다. 
 
지금껏 프로젝트의 루트폴더의 경로에서 터미널 명령어를 수행했지만 fastlane 폴더로 이동해서 관리를 위한 파일을 만들어 보자 
 

cd fastlane
touch Devicefile

>>>>>-------------수정 및 추가( 2022년 10월 31일 )---------------------

기기등록 기능을 추가하여 진행하던 와중에 이와 같은 에러를 만났다
"
Please provide a file according to the Apple Sample UDID file (https://developer.apple.com/account/resources/downloads/Multiple-Upload-Samples.zip)
 
해당 경로를 통해서 샘플을 다운받아서 실행해보니 아래처럼 가이드가 되어있음
 

Devicefile의 내용을 수정하고 저장! 

<<<<<-------------수정 및 추가 ( 2022년 10월 31일 )---------------------
 
 
Devicefile에 위와같이 입력하고 저장하고
lane에 경로를 입력해준다. 

lane :sync_all_certificate_development do 
    sync_device_info
    match(type:"development")
end


lane :sync_device_info do
    register_devices(
        devices: {
			devices_file: "fastlane/Devicefile"
        }
    )
end

 
 
마지막으로 만든 lane을 실행시켜보자 :)

fastlane sync_all_certificate_development

 
 
마무리 
이런저런 삽집을 많이 하면서 피와살이 되는 경험이 되었다 재밌다 개발 💪

반응형

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

관련글 더보기

댓글 영역