지난번 앱 배포를 정상적으로 성공한뒤
배포 자동화에도 욕심이 생겨 진행해봤다.
기본적으로는 fastlane 공식 문서를 보며 따라했다.
친절하게 나와있다. 따라하면 되고
따라하다 막히거나 오류가 있다면
인터넷에 치면 많이 나온다.
내가 진행하면서 막혔던 부분이나. 해결 팁을 알려주겠다.
1. AOS
먼저 안드로이드는 IOS에 비해 큰 어려움이 없었다.
한가지 팁을 주자면
Key.json, app-release.abb, pubspec.yami 와 같이 파일의 경로를 작성해야할때는
상대경로가 아닌 경로복사를 이용하는게 좋다.
나도 이걸로 자꾸 오류가 떠서 조금 당황했다...
platform :android do
desc "Runs all the tests"
lane :increase_version do
yaml_file_path = "/Users/..../pubspec.yaml"
data = YAML.load_file(yaml_file_path)
version = data["version"]
version_number = data["version"].split(".")[0].to_i
new_version_number = version_number + 1
new_version = "#{new_version_number}.0.0+#{new_version_number}"
data["version"] = new_version
File.open(yaml_file_path, 'w') { |f| YAML.dump(data, f) }
end
desc "Deploy a new version to the Google Play"
lane :deploy do
gradle(task: "clean assembleRelease")
increase_version
sh"flutter build appbundle"
upload_to_play_store(aab: "/Users/.../build/app/outputs/bundle/release/app-release.aab")
end
end
increase_version
- pubspec.yami에 있는 버전을 1 증가한다.
주의할점이 있다면 이걸 실행할때마다 1 증가되오니
테스트로 돌렸던 버전 증가치를 배포전 낮춰주자
deploy
- grandle 이부분은 배포전 디렉토리를 깔끔하게 정리해준다.
따라서 해당 명령어는 꼭 deploy시작 바로 첫번째 줄에 써주는것이 좋다.
- sh"flutter build appbundle"은 말그래로 배포에 필요한 .abb 파일을 빌드해준다.
- uplode_to_play_store(..)은 해당 경로에 있는 .abb 파일을 업로드 시켜준다.
2. IOS
IOS가 좀 더 복잡하고 할게 많았는데
다행히 성공했다.
1. .env 파일은 ios/fastlane/ 경로에 넣어줬다.
2. cocoapods, build_app, screeenshot 오류를 겪었다.
cocoapods의 경우
실행 마다 업테이트 명령어를 넣어 해결해 주었으며
build_app의 경우
처럼 xcargs 명령어를 넣어줬다.
screeenshot의 경우는
사이즈가 안맞는다 자꾸 오류가 뜨길래 그냥 스킵해줬다.
3. version 오류
increase version을 했는데 자꾸만 안되어서 강제로 지정해줬다..
위 처럼 버전을 지정해주는 명령어를 했는데 안된다면 아래 명령어를 터미널에서 실행해보자
fastlane run increment_version_number version_number:2.1.0
이렇게 해주면 된다.