본문 바로가기

카테고리 없음

JENKINS UNITY IOS FASTLANE

과거에는 젠킨스를 이용해 IPA를 테스트플라이트에 업로드 하기위해 젠킨스의 testflight 플러그인을 사용했었다.

그러나, 해당 플러그인이 업데이트가 되지 않고 종국에는 플러그인 리스트에서 사라져버렸다.

Appcenter에 올리는 플러그인은 남아있는데, 테스트플라이트용 플러그인만 사라진것.

플러그인을 사용하는게 익숙하더라도 머리 싸매지말고 우리같은 플찔이들은 "FASTLANE"라는 툴을 이용해서 IPA를 테스트 플라이트에 업로드 해보자.

 

*fastlane를 max에 설치

0) 맥 터미널을 오픈

1) xcode-select --install 입력 후 엔터 ( 이건 이미 돼 있을 가능성이 높다. 안 돼 있는 사람만 해준다. xcode 관련 명령을 터미널에서 사용 할 수 있게 해 주는 툴이다 )

2) ( gem을 쓰고 있다면 ) sudo gem install fastlane 입력 후 엔터. (homebrew를 쓰고 있다면) brew install fastlane 입력 후 엔터. 둘 중 하나만 해야하고 난 sudo gem install fastlane 입력해서 fastlane를 설치 했다. 둘다 안 되면 gem이나 homebrew를 먼저 설치 해야하는데, 이런 상황이면 전화 주세요.

 

*fastlane 을 xcode 프로젝트에 셋팅

0) 맥 터미널을 오픈

1) cd "xcode프로젝트 경로"

2) fastlane init 입력 후 엔터 : "1)"에서 이동한 폴더안에 fastlane 폴더가 생기고 그안에 Fastfile, Appfile 이 생긴다. 

Appfile파일은 설정값들을 저장하는 곳이고 Fastfile 파일은 우리가 실행할 각종 함수들을 정의하는 곳이다.

 

*테스트 플라이트 업로드1차시도

Fastfile을 열어보면 아래 구문이 있을 텐데 저 구문 안에 테스트플라이트 업로드 작업을 해줘보자. 참고로 ...은 원래 저안에 다른 내용들이 더 많이 있는데, 다옮기기도 귀찮고 이번 주제를 이해하는데 필요없는 부분들이라 ...으로 간추린거다. 

 

<원본

platform :ios do

...

end

 

<수정 후

platform :ios do

 desc "Upload to Testflight"

 lane :beta do

 upload_to_testflight(ipa:"xcode 프로젝트 경로 기준으로 ipa가 위치한 경로")

 end

end

 

0) 맥 터미널을 오픈

1) cd "xcode프로젝트 경로"

2) fastlane beta 입력 후 엔터 : 중간에 Y를 누르라거나 앱스토어 암호를 입력 하라고 하면 다 입력 해 준다. 그러면 아래처럼 오류가 발생한다. 

 

아래 빨간색으로 지운부분에 (-34323) 와 비슷한 형태의 코드가 표시가 된다.

 

위에서 얻은 가로안에 있는 코드를 아래와 같이 입력 해준다. -가 붙어있다면 -까지 포함해서 입력.

 

잘 입력 했다면 아래와 같이 출력 된다. ( 원래 암호를 지우고 xxxx로 그림판에서 바꾸느라 삐뚤빼뚤한거고 원래는 예쁘게 한 줄로 잘 나온다 )

잘 안 되면 전화 주세요.

 

*테스트 플라이트 업로드 최종시도

 

<Fastfile수정

platform :ios do

 desc "Upload to Testflight"

 lane :beta do

 ENV["FAST_LANE_APPLELICATION_SPECIFIC_PASSWORD"] = "xxxx-xxxx-xxxx-xxxx" 

 upload_to_testflight(ipa:"xcode 프로젝트 경로 기준으로 ipa가 위치한 경로")

 end

end

 

 

0) 맥 터미널을 오픈

1) cd "xcode프로젝트 경로"

2) fastlane beta 입력 후 엔터

 

터미널에  Waiting for ... 문구가 계속 출력 되고 앱스토어컨넥트의 테스트플라이트에 가 보면 업로드중인 앱이 표신된다. 업로드 하는데 굉장히 오래걸리고, 참고로 Waitng for... 메시지를 보지 않는 옵션이 있는데 그걸 키면 테스트플라이트에 정상적으로 업로드 되지 않는다.

 

 

 

 

슬랙의 채널에서 웹후크 URL 받아온다

 

 

 

fastlane 에서 bash command 사용하는 방법

ex) sh "mkdir '123''" 

fastlane 경로에 123이라는 이름의 폴더 생성

 

sh "bash ./script.sh"

 

https://www.oreilly.com/library/view/continuous-delivery-for/9781788398510/480de5ce-0f8d-4744-8b49-92786e924733.xhtml

 

> 옵션이 있는경우

 

<Fastfile수정

platform :ios do

 desc "Upload to Testflight"

 lane :beta do |options|

 ENV["FAST_LANE_APPLELICATION_SPECIFIC_PASSWORD"] = "xxxx-xxxx-xxxx-xxxx" 

 upload_to_testflight(ipa:options[:appname]}+"ipa")

 end

end

 

터미널에서 호출

fastlane beta appname:"path/myapp.ipa"

 

> 6 digits code 를 입력 하라고 하는데, 폰으로 코드가 안온다면?

sms 를 입력 하면 신뢰 할 수 있는 폰 고르라고 나오고 내 폰 번호 나오면 번호 입력 후 코드 받을 수 있다.

 

 

> ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.

 

appsotre 올릴 때 provisioning 파일을 ad-hoc 용으로 사용해도 위와같은 오류 메일을 애플로부터 받을 수 있다.

appstore용 provisioning 파일 받아서 빌드에 적용 하고 다시 업로드 시도 하면 다른 문제가 없다면 테스트플라이트에 정상적으로 업로드 할 수 있다.