eas build 를 사용하여 android 빌드를 수행중, 공식문서에 기재된 아래 프로필 설정의 차이점이 궁금해서 정리해본다.

  • developmentClient to true (default)
  • distribution to internal
  • android.buildType to apk
  • android.gradleCommand to :app:assembleRelease, :app:assembleDebug or any other gradle command that produces .apk
{
  "build": {
    "development": {
      "developmentClient": true
    },
    "android-apk-distribution": {
      "distribution": "internal"
    },
    "android-apk": {
      "android": {
        "buildType": "apk"
      }
    },
    "android-apk-gradle-debug": {
      "android": {
        "gradleCommand": ":app:assembleDebug"
      }
    },
    "production": {}
  }
}

 

 

1. developmentClient to true (defaul)
apk 파일로 빌드하며, apk 다운로드 링크가 제공된다. apk 빌드완료 후 expo-dev-clinet 를 사용하여 개발머신의 안드로이드 에뮬레이터에 띄우는 것이 특징이다. 그래서 expo-dev-client 가 설치되어 있지 않으면 설치를 요구한다. 개발머신에서 npx expo start --dev-client 커맨드를 사용하여 서버를 구동해야 하며, 에뮬레이터에서 해당 서버를 선택하여 사용한다.(아래 이미지참고)

 

 

 

 

 

2. distribution to internal

빌드된 apk 파일을 다운로드 할 수 있는 QR과 링크가 생성되며, 이에 접속하면 손쉽게 팀원들에게 apk를 전달할 수 있다.

 

 

 

 

3. android.buildType to apk

apk 파일로 빌드되며, 다운로드 받을 수 있는 링크가 제공된다.

 

 

 

4. android.gradleCommand to :app:assembleRelease, :app:assembleDebug

gradle 을 사용해서 apk를 빌드한다. 마찬가지로 apk 다운로드 링크가 제공된다.(또다른 차이점은 모르겠음)

 

블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,

특수변수인 위치매개변수(Positional Parameter)의 의미에 대해 정리한다.

 

$0: 실행된 쉘 스크립트명

$1: 스크립트에 넘겨진 첫 번째 아규먼트

$2: 스크립트에 넘겨진 두 번째 아규먼트

${10}: 스크립트에 넘겨진 열 번째 아규먼트(두자릿 수 이상이면 curly bracket으로 감싸야 한다)

$#: 스크립트에 넘겨진 아규먼트의 개수

$$: 쉘 스크립트를 실행하는 Process Id

$*: 스크립트에 전달된 전체 인자 배열

$@: 스크립트에 전달된 전체 인자 배열($*와의 차이점은 https://secjong.tistory.com/21 참고)

$?: 실행 종료상태값(반환값)

$-: 현재 쉘이 호출될 때 사용한 옵션들

블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,

"매개변수 확장"(Parameter Expansion) 이라는 용어가 맘에 안들긴 하지만, 다들 그렇게 부르니 그렇게 정리한다.

 

1. ${name}

name 변수의 값으로 치환한다.

 

2. ${name:=james}

name 변수의 값으로 치환하되, name 변수가 null이면 james 문자열을 name 변수에 저장한 후 치환한다.

 

3. ${name:-james}

name 변수의 값으로 치환하되, name 변수가 null이면 james 문자열로 치환한다.(저장X)

 

4. ${name:+james}

name 변수의 값으로 치환하되, name 변수가 null이 아니면 james 문자열로 치환한다.(name 변수가 null이면 그대로 null로 치환된다.)

 

5. ${name:?james}

name 변수의 값으로 치환하되, name 변수가 null이면 error상태로 종료되며 james 문자열을 보여준다.

 

6. ${#name}

name 변수의 값의 문자길이를 반환한다.

 

7. ${name:3}

name 변수의 값에서 3만큼 앞부분을 삭제한 후의 값을 반환한다.

e.g. 

name=abcdefg
echo ${name:3} # defg

 

8. ${name:3:2}

name 변수의 값에서 3만큼 앞부분을 삭제한 후의 값에서 앞의 2개 문자열을 반환한다.

e.g.

name=abcdefg
echo ${name:3:2} # de

 

블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,