달달한 스토리

728x90
반응형

오늘 하루도 마무리하면서 알게 된 내용을 정리해보려고 한다.

 

이 글을 다 쓰고 난 뒤에는

 

패스트캠퍼스 강의를 하나 들을 생각이다.

 

회사에서 운영중인 패스트 캠퍼스 아이디라..

 

이번에 처음 써보게 되는 거라 설렌다.

 

우선 역시나 지금 앱을 개발하면서 앱 버전 정보를 가져오려 했으나,

 

안드로이드에서 앱 버전,

 

아이폰에서 앱 버전을 각각 가져와야 한다는 에러가 발생했다. 

 

기존에는 이 패키지를 사용하였다.

 

https://pub.dev/packages/package_info_plus

 

package_info_plus | Flutter Package

Flutter plugin for querying information about the application package, such as CFBundleVersion on iOS or versionCode on Android.

pub.dev

이 패키지를 이용하면 아래와 같이

 

앱에 현재 버전을 가져올 수 있다.

 

 

import 'package:package_info_plus/package_info_plus.dart';

PackageInfo packageInfo = await PackageInfo.fromPlatform();

String appName = packageInfo.appName;
String packageName = packageInfo.packageName;
String version = packageInfo.version;
String buildNumber = packageInfo.buildNumber;

하지만, 앱에서 이 기능을 활용해 보았는데,

 

안드로이드 android -> app -> build -> build.gradle에서

 

안드로이드 버전을 설정해주고,

 

아이폰도 직접 들어가서 수정해 주어야

 

위에 처럼 앱 버전값이 출력이 된다고 한다.

 

사실 자세한 이유는 모르겠으나,

 

올바른 버전 값이 넘어오지 않아,

 

다른 방법을 찾아보고자 했다.

 

 

pubspec.yaml 파일 안에 있는

 

내가 지정한 이 앱버전이 와야 정상인데,

 

오질 않아..

 

이 버전을 가져오는 다른 방법을 찾았다.

 


다른 방법

 

https://pub.dev/packages/yaml

 

yaml | Dart Package

A parser for YAML, a human-friendly data serialization standard

pub.dev

우선 이녀석을 dependencies에 넣어주자.

 

dependencies:
  flutter:
    sdk: flutter

  yaml: ^3.1.0

yaml 패키지는 yaml에서 넘어온 값을

 

loadYaml() 메서드로 parsing 하여,

 

jsonDecode와 비슷하게

 

값을 가져올 수 있다.

 

아래는 그 예이다.

 

import 'package:yaml/yaml.dart';

main() {
  var doc = loadYaml("YAML: YAML Ain't Markup Language");
  print(doc['YAML']);
}

그렇다면, yaml파일을 가져오는 방법에 대해서 알아보겠다.

 

우선 assets에다가 pubspec.yaml을 추가해주자.

 

flutter:
  assets:
    - pubspec.yaml

이렇게 입력해주는 이유는

 

앞서서 쓸 rootBundle() 메서드를 이용해

 

bundle에 pubspec.yaml 저장하기 위해서이다.

 

이렇게 저장된 pubspec.yaml파일은 loadString()

메서드로 String 형태로 가져올 수 있다.

 

코드는 아래와 같다.

 

rootBundle.loadString("pubspec.yaml").then((yamlValue) {
      var yaml = loadYaml(yamlValue);
      version = yaml['version'];
      
      print(version); //pubspec.yaml 파일에 버전값
      }

값을 가져오는 형태가 json형식과 매우 닮아 보인다.

 

이런 식으로 version값을 가져와

 

현재 나의 앱 버전을 나타낼 수 있다.

 

난 이만 패스트캠퍼스 강의를 들으러 가보겠다..

728x90
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading