2048 게임 앱 만들어보기 (feat. 조코딩) 2 (실패, 재도전중)

2048이라는 퍼즐 게임 소스를 구해서 게임앱 만들기를 하고 있습니다. 지난 시간에 구름 IDE에서 react 프로젝트를 이용해서 html5로 구현된 게임소스를 가져오고 expo라는 도구를 이용해서 게임앱을 테스트하는 것까지 해봤습니다.

 

https://creavart.tistory.com/94

 

2048 게임앱 만들어보기(feat. 조코딩 유튜브) 1

조코딩이라는 유튜브 채널 알고 계신가요? 쉬운 코딩을 알려주는 채널이고 구독자가 10만명 이상이 되는 인기가 높습니다. 코딩도 잡다한 것을 빼고 따라해볼 수 있도록 설명과 실습을 곁들여 쉽게 알려주는데요...

creavart.tistory.com

오늘 글은 두분으로 되어 있습니다.
1. 실패 복기
2. 재도전

 

2048 게임앱 출시 실패!

 

이번엔 지난번에 이어서 역시 구름IDE에서 2048 게임을 APK로 만들어보고 이어서 구글플레이 스토어에 등록까지 해봤는데요. 결과적으로 실패했습니다. 왜 실패했는지 복기를 해보면,

 

  1. 무작정 따라하면서 조코딩님 앱에서 필요한 기능이 저에겐 필요 없어서 expo permission 적용을 누락한 것이 원인입니다.
  2. apk로만 만들면 불필요한 요소가 많이 들어가 있어서 이걸 apk로 하면 안되고 bundle이란 것으로 묶어야 합니다. 따라하다보니 처음 참고한 영상에선 apk를 만들고 두번째 앱출시를 위한 영상에선 bundle로 묶어서 올리더라구요. 근데 저는 그냥 apk로 진행했습니다. 제가 구름IDE를 무료버전으로 사용하다보니 뭘 하나 하면 시간이 많이 걸리더라구요. 그래서 시간을 줄여보려는 욕심에 apk에서 다시 bundle로 작업하는 것을 빼먹었더니 이것도 실패하는 원인이 되었습니다.

어쨌든 충분한 스터디가 되지 않은 채로 무작정 따라하면서 진행을 하다보니 중간에  ios bundleIdentifier라는 부분과  android의 Package라는 부분에 이름을 주는 부분이 있는데요, (아래 코드) *****부분과 +++++부분에 이름을 넣어줘야하는데 이게 아무리 넣어도 에러가 나더라구요. 조코딩님은 너무 간단하게 넘어가던 부분이 저는 안되는 겁니다. 

	"ios": {
      "bundleIdentifier": "com.*****.+++++",
      "buildNumber": "1.0.0",
	  "supportsTablet": true
    },
    "android": {
      "package": "com.****.+++++",
      "versionCode": 1
    }

나중에 알고보니 이부분의 이름이 유니크 해야하는데 제가 넣은 이름이 유니크하지 않았던 것 같아요. 한 10번 넘게 시도하고 겨우 넘어갔습니다. 이것도 참 별거 아닌데 아쉬움이 있는 부분입니다.

 

재도전!

 

그래서 오늘 다시 시도할 부분은 

- 퍼미션 추가하기

- bundle 로 다시 앱 묶기

- 구글 플레이스토어 등록 재시도

 

이렇게 작업을 진행할 예정입니다. 정상적으로 등록이 되어도 심사과정이 있는 것 같더라구요. 그 과정을 통해서 다시 실패할 수도 있는데, 그 후엔 어떻게 할지 모르겠지만 일단 계속 나아가 보려고 합니다. 요즘 심사도 코로나 19로 인해서 늦어진다는 문구가 보입니다. 늦어져도 되기만 하면... 너무 기쁠 것 같아요.

 

구글플레이콘솔 / 스토리블럭

다시 마음을 가다듬고, 2차인지 3차인지 모를 시도를 하기로 합니다.

다시  구름 IDE 접속합니다. 

구름 IDE에 보니 여러가지 요금체계가 있더라구요. 저는 무료사용자라서 CPU속도도 낮고 메모리도 최저라 느린데, 조코딩님은 최고 사양으로 사용하시는 것 같습니다.

 

- Expo permission 설정

공식문서를 참고해서 퍼미션을 설정해줍니다. 이부분은 좀 애매하더라구요. 저는 퍼미션 해줄 부분이 없는 아무나 다 로그인이나 뭘 저장하는 것도 없이 쓸 수 있는 앱인데... 이게 없어서 에러가 나니, 어쩔 수 없이 퍼미션을 줍니다.

https://docs.expo.io/versions/latest/sdk/permissions/

 

Permissions - Expo Documentation

When it comes to adding functionality that can access potentially sensitive information on a user's device, such as their location, or possibly send them possibly unwanted push notifications, you will need to ask the user for their permission first. Unless

docs.expo.io

위와같이 expo 공식문서에 들어가서 하단에 보면 app.json (read more about configuration) 이부분에서 문서 아래쪽에 관련 부분을 찾습니다.

 

*/
    "permissions": [
      "ACCESS_COARSE_LOCATION",
      "ACCESS_FINE_LOCATION",
      "CAMERA",
      "MANAGE_DOCUMENTS",
      "READ_CONTACTS",
      "READ_CALENDAR",
      "WRITE_CALENDAR",
      "READ_EXTERNAL_STORAGE",
      "READ_PHONE_STATE",
      "RECORD_AUDIO",
      "USE_FINGERPRINT",
      "VIBRATE",
      "WAKE_LOCK",
      "WRITE_EXTERNAL_STORAGE",
      "com.anddoes.launcher.permission.UPDATE_COUNT",
      "com.android.launcher.permission.INSTALL_SHORTCUT",
      "com.google.android.c2dm.permission.RECEIVE",
      "com.google.android.gms.permission.ACTIVITY_RECOGNITION",
      "com.google.android.providers.gsf.permission.READ_GSERVICES",
      "com.htc.launcher.permission.READ_SETTINGS",
      "com.htc.launcher.permission.UPDATE_SHORTCUT",
      "com.majeur.launcher.permission.UPDATE_BADGE",
      "com.sec.android.provider.badge.permission.READ",
      "com.sec.android.provider.badge.permission.WRITE",
      "com.sonyericsson.home.permission.BROADCAST_BADGE"
    ],

이렇게 다양한 접근권한 종류가 있는데요.

저는 카메라도, 캘린더도 오디오도 다 필요 없고 간단히 문서 매니지먼트 정도 남기고 지워줬습니다. 그리고 해당부분을 Android  package 부분쪽에 붙여 넣었습니다.

 

- 구름 IDE에서 명령어를 이용해, Bundle로 다시 묶습니다. 

번들로 묶는 방법은 역시 공식문서를 참고합니다. https://docs.expo.io/distribution/building-standalone-apps/ 이 문서에서 중간에 보면,

3. Start the build

Run expo build:android or expo build:ios. If you don't already have a packager running for this project, expo will start one for you.

If you choose to build for Android

When building for android you can choose to build APK (expo build:android -t apk) or Android App Bundle (expo build:android -t app-bundle). ....

이렇게 되어 있는 부분이 있는데요. 자난번에 apk로 실패했고 이번엔 "expo build:android -t app-bundle" 이 명령어로 번들을 만듭니다.

시간이 좀 걸리고 파일이 완성됩니다. 파일이 만들어지는 과정에서 url이 나오는데요.  expo 홈페이지에서 내 파일이 만들어지는 과정을 모니터링할 수 있습니다. 

 

- 구글플레이 콘솔에 등록

 

아이콘과 스크린샷과 필요한 이미지들을 등록해줍니다.

아이콘, 스크린샷 등록 / 스토리블럭

그리고 앱을 설명하는 여러가지 설정들, 텍스트들을 넣어줘야하는 것들이 있고, 생성한 번들파일을 등록해줍니다.

 

파일은 오류없이 등록이 되었습니다!

 

근데 허무하게도 아직은 코로나19로 인해서 심사가 길어진다는 말이 나오고, 출시를 기다리고 있습니다.

이러다 또 애드센스 때처럼 뭔가 반려가 될 수 있겠지요.

 

구글 콘솔에서 등록하는 과정은 다음에 다시 한번 자세히 설명해보겠습니다.

 

어쨌든 우여곡절끝에 등록은 하게 되었습니다. 승인이 될지 안될지 모르겠지만 승인이 되면 다시 한번 포스팅해보겠습니다.

앱은 아니지만 웹앱을 맛보기 하실 수 있어요~ 지금은 원 소스 그대로 넣어서 별거 없지만 게임은 해보실 수 있습니다!

아 그리고 하단에 소셜 공유버튼도 붙였어요!

 

http://www.storyblock.kr/game/2048/

 

2048

Join the numbers and get to the 2048 tile! New Game How to play: Use your arrow keys to move the tiles. When two tiles with the same number touch, they merge into one! Note: This site is the official version of 2048. You can play it on your phone via http:

www.storyblock.kr

 

감사합니다! 2048 게임 정말 중독성 있네요.

반응형

댓글

Designed by JB FACTORY