Skip to content
coooldoggy.dev

Fastlane을 통한 FTP apk 자동 배포

CI/CD1 min read

앱이 수정될 떄 마다 APK FTP 서버에 올리는 것은 매우 귀찮다 .. 자동으로 배포하는 방법을 찾다가 Fastlane 을 발견했다.

Fastlane은 Google play console과 연계하여 앱의 자동배포를 도와주는데,

플러그인을 이용하면 FTP 업로드도 가능하다.

터미널에서 명령어를 입력하여 Fastlane을 설치한다.

RubyGem 이용

1sudo gem install fastlane -NV

homebrew 이용

1brew cask install fastlane

프로젝트 폴더로 진입한뒤 fastlane을 초기화한다. 성공했다면 프로젝트 폴더 아래에 fastlane 폴더가 생긴다.

1fastlane init

ftp upload plugin을 설치한다. 플러그인 링크 : https://github.com/fastlane-community/fastlane-ftp-plugin/tree/master/fastlane

1fastlane add_plugin ftp

.env 파일을 생성하여 FTP 정보를 입력한다.

env file 생성

1touch .env
1FTP_HOST=""
2FTP_USER=""
3FTP_PASSWORD=""
4FTP_PORT=""
5
6FTP_UPLOAD_SRC="./xxxx.apk"
7FTP_UPLOAD_DEST="/aos/"

프로젝트 경로아래에 생성된 fastlane 폴더의 fastfile을 수정하여 ftp upload 함수를 추가한다.

1desc "Upload to FTP Server"
2 lane :ftpupload do
3
4
5//apk build
6
7
8 gradle(task: "assemble",
9 build_type: "debug")
10
11
12//ftp upload
13
14 ftp(
15 host: ENV['FTP_HOST'],
16 username: ENV['FTP_USER'],
17 password: ENV['FTP_PASSWORD'],
18 port: ENV['FTP_PORT'].to_i,
19 upload:{
20 src: ENV['FTP_UPLOAD_SRC'],
21 dest: ENV['FTP_UPLOAD_DEST']
22 })
23end

업로드 명령어 → fastfile에서 설정한 함수명을 통해 업로드를 실행한다. 만약, FTP TLS 연결방식이 암호화 되어있다면 실행되지 않는다 ... 평문으로 되있는 곳에서만 실행된다.

1fastlane ftpupload