지난번 앱 배포를 정상적으로 성공한뒤

배포 자동화에도 욕심이 생겨 진행해봤다.

 

기본적으로는 fastlane 공식 문서를 보며 따라했다.

https://docs.fastlane.tools/

 

fastlane docs

fastlane fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. 🚀 It handles all tedious tasks, like generating screenshots, dealing with code signing, and releasing your application. You can start by creati

docs.fastlane.tools

친절하게 나와있다. 따라하면 되고
따라하다 막히거나 오류가 있다면
인터넷에 치면 많이 나온다.

 

내가 진행하면서 막혔던 부분이나. 해결 팁을 알려주겠다.

 

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 :release do
version_number = "2.0.1"

위 처럼 버전을 지정해주는 명령어를 했는데 안된다면 아래 명령어를 터미널에서 실행해보자

fastlane run increment_version_number version_number:2.1.0

 

이렇게 해주면 된다.

 

 

GDG in songdo
플러터 사이드 팀프로젝트가 끝나고

지금까지 약 한달 가량

 

혼자 프로젝트를 진행했다.

팀프로젝트에서는 디자이너 개발자가 각각 포지션에 맞는 역할에 집중해서 수행하면됬는데

혼자 하다보니.. 많은 어려움이 있었다.

UI 쪽으로 많은 신경을 쓰는 난.. 디자인 작업에 많은 시간을 썻던것같다.

사실 처음엔 10정도의 퀄리티를 갖는 앱을 구상했지만 내 욕심에 점점 기능은 추가되었고

구현하는 과정에 있어 많은 시간이 더 소요됐다.

 

사실 앱만 보면 별 기능 없다...

어떤 사람에겐 일주일이면 뚝딱 만들 앱이지만

초보인 나에겐 한달정도 걸린것이다.

 

더 많은 기능을 추가하고싶었는데

앱 출시를 더 미룰 수 없기에 그만 개발하고 출시했다.

앱 출시 만큼 중요한 포트폴리오는 없다고 생각했기 때문이다.

 

개인적으로 아주 만족스러운 앱이다.

첫 배포 앱인데 디자인적이나 기능적이나 현재 나에게 딱 맞는 수준인것 같다.

 

다음 앱은 뭘 만들면 좋을지 고민이 되면서

이제는 취업을 하여 빡시게 배워보고싶은 마음도 있다.

 

https://apps.apple.com/kr/app/task-us/id6445977626

 

‎task/us

‎직관적인 UI와 최소화된 기능들로 빠르고 효율적으로 일정을 관리하세요.

apps.apple.com

https://play.google.com/store/apps/details?id=com.taskus.taskus&pli=1 

 

쉽고 간편한 일정 관리 앱(task/us) - Google Play 앱

최소화된 기능으로 쾌적하고 빠르게 일정을 관리하세요

play.google.com

'코딩 > Flutter_miniproject' 카테고리의 다른 글

[Migration] Todo App  (0) 2024.02.19
[Mini_project] pomodoro TIMER  (0) 2022.12.27

드디어 앱을 완성? 시키고 출시를 진행중이다.

안드로이드와 IOS 모두 현재 심사중이며

제발 무사히 통과되길 바란다...

 

양 플랫폼 모두 공식 문서를 보면 쉽게 출시 가능하다.

개인정보처리방침이 조금 어렵다...

대충 적었는데 잘될진 모르겠다.

 

IOS 출시 진행중 오류가 하나 있어 해결법과 같이 소개하려고한다.

기본적인 셋팅을 마치고 나면

Product. - Archives 하게 되는데

진행중에 Invalid App Store Icon. 이란 오류가 발생했고

뜻을 해석하면 아이콘 이미지에 알파채널이 들어가 있어 문제가 발생한거 같다.

그럼 해결해보자

먼저 아이콘 파일들이 들어있는 폴더에 가보자.

your project/ios/Runner/Assts.xcassets/Appicon.appiconset/
에 들어가면 아이콘 이미지들이 여러개 있는데

우리는 이 중 1024*1024파일만 만져주면된다.

 

해당 파일을 더블클릭으로 열어준뒤

작업바 에 파일 - 내보내기를 누르면

알파에 체크가 되어있다 이걸 풀어주고

저장한뒤 기존 파일에 덮어씌우면 끝!

 

 

 

 

 

 

 

이제 다시 Archives 해주면 성공적으로 업로드 될것이다.

어느새 눈이 오는 계절이 되어버렸다.

눈오는날엔 움직이기 너무 귀찮지만

창밖으로 카페에 앉아 눈내리는 걸 보면 정말 느낌있다.

 

프로젝트를 조금씩 완성시키고 있지만..

하나의 산을 넘을때 시간이 너무 들고 바로 다음 산을 넘어가야하나...

이렇게 비효율적으로 시간을 쓰는것보단 다시 기초를 다지자라는 생각에

Dart, Flutter 강의를 찾았고 우연히

노마드코드의 무료강의를 보았다.

 

인터넷 유튜브에서 여럿 강의를 보면서 공부했지만

개인적으론 노마드코드 강의가 최고인듯하다.

영어로 설명하여 자막을 보며 들어야한다는 장점아닌 단점이 있지만

내용이 너무 알차고 설명을 잘해준다.

 

이번주 토요일부터 GDG송도에서 하는 플러터 사이드프로젝트를 시작하는데

앞서 기초를 다지기에 너무 좋은 강의였다.

추후 유료 강의도 들어볼 예정이다.

 

Dart, Flutter를 시작하는 사람에게 꼭 추천하고 싶다.

 

 

토이 프로젝트를 시작한지 한달이 좀 넘었다.

라이버리의 버프를 받으며 이것저것 붙혀가며 앱을 구현하고 있지만

여럿 라이브러리를 적용해보고 또 나에게 맞게 코드를 커스텀 해보기도 하며

점점 완성시키고 있다.

한 70%? 정도 구현 됐다고 생각한다.

내년 2월까지는 꼭 앱 스토어에 출시까지 해보고싶다.

 

더불어 12월 중순부터는 GDG 송도 플러터 사이드프로젝트에 참여하게 되었다.
혼자 프로젝트를 진행할떄 정말 답답했는데 정말 잘됐다.

큰 성장이 기대된다.

 

 

플러터를 개발할때 빨간줄보다 귀찮은게 노랑줄인거같다.

무시해도 되지만 빨간줄보다 더신경쓰인다.

또 가이드대로 고쳐도 없어지는 경우가 많이 없다.

이런 알림을 꺼버리도록하자

프로젝트/analysis_option.yaml 파일을 키면

10번째 라인에 보이는 include 부분을 주석처리해주면 된다.

 

 

+ Recent posts