post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
이 코드를
post_install do |installer|
installer.generated_projects.each do |project|
project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
end
end
end
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
친절하게 나와있다. 따라하면 되고 따라하다 막히거나 오류가 있다면 인터넷에 치면 많이 나온다.
내가 진행하면서 막혔던 부분이나. 해결 팁을 알려주겠다.
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의 경우
cocoapods(
repo_update:true,
use_bundle_exec:false
)
실행 마다 업테이트 명령어를 넣어 해결해 주었으며
build_app의 경우
build_app(xcargs:"-allowProvisioningUpdates"
처럼 xcargs 명령어를 넣어줬다.
screeenshot의 경우는
사이즈가 안맞는다 자꾸 오류가 뜨길래 그냥 스킵해줬다.
upload_to_app_store(
skip_screenshots:true,
)
3. version 오류
increase version을 했는데 자꾸만 안되어서 강제로 지정해줬다..
lane :releasedo
version_number ="2.0.1"
위 처럼 버전을 지정해주는 명령어를 했는데 안된다면 아래 명령어를 터미널에서 실행해보자
fastlane run increment_version_number version_number:2.1.0