반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함

빌드 하기 (안드로이드)

2011. 9. 16. 06:38 | Posted by 솔웅


이제 제가 개발하고 있는 앱도 거의 완성이 되서 마켓에 올릴 때가 됐습니다.
오늘은 빌드하는 방법을 간단히 정리하겠습니다.
저도 다시 한번 상기하는 의미에서.

우선 빌드를 하시려면 코로나에 유료등록을 해야 합니다.
웹 주소는 http://www.anscamobile.com/pricing/ 입니다.

아이폰, 안드로이드 별도로 구매하면 각각 199불 이고 통합 패키지로 구입하면 349불입니다.
그리고 나서 confirm됐다는 이메일을 받으면 컴퓨터 2개에서 사용 가능합니다.
따로 유료버전을 다운받아서 설치할 필요는 없구요.
그냥 기존에 받았던 거에서 등록만 하시면 되요.
그러면 빌드할 때 코로나 서버에 접속해서 승인 받으면서 진행하더라구요.
그러니까 인터넷이 되지 않으면 빌드를 할 수 없어요.

안드로이드 앱 빌드 방법

우선 빌드할 앱을 시뮬레이터에서 불러온 후 file-build-Android를 선택합니다.


그 다음 Application name , Version, Package를 입력합니다.
제 앱은 Multi_PingPong 이란 이름으로 마켓에 올려질 건데요.
위에 있는 이름은 코로나가 그냥 폴더 이름을 집어 넣은 거예요.
그리고 버전은 1,2,3,4.... 이렇게 나갈거예요.
안드로이드 마켓에 올릴때 기존 버전보다 높아야지만 업그레이드가 됩니다.
그 때 사용할 버전입니다.
그 다음은 Target OS Compatibility 인데 제건 Android 2.2 에 맞춰져 있네요.
그 아래버전으로 설정하는건 아직 모르겠습니다.
그리고 KeyStore는 디버를 위한 KeyStore는 코로나에서 그냥 제공하고 있습니다.
Key Alias 누르시면 Android Debug Key라고 있을 겁니다.
그거 선택하셔도 됩니다. 단지 테스트 하실 거면 ...
하지만 마켓에 올리시려면 직접 안드로이드에서 받은 본인만의 KeyStore를 사용 해야 합니다.

다 입력하신 후 Build버튼을 누르시면 위와 같은 화면이 나옵니다.
보시다시피 서버에 연결해서 뭔가 퍼미션을 받은 후 애플리케이션네임.apk라는 파일이 생깁니다.

이 apk 파일을 마켓에 올리시면 됩니다.

간단하죠?

참고사항
- 빌드하기 전 아이콘 이미지 파일이 있어야 하는데요. 그 규칙은 아래와 같습니다.
  Icon-hdpi.png, Icon-mdpi.png, and Icon-ldpi.png 이렇게 3개의 아이콘 파일을 준비합니다. 크기는 각각 (72x72, 48x48, 36x36) 입니다.
안드로이드 1.6 이하에서 사용할 수 있게 하려면 icon.png (72X72) 를 준비합니다.
파일들은 main.lua가 있는 폴더에 넣으시면 됩니다.
- 안드로이드 폰에 인스톨 시키려면 adb install name.apk 로 하시면 됩니다.

config.lua 에서 보다 세세한 설정을 할 수가 있습니다.
지난번에 다룬적이 있는데 폰 해상도에 딱 맞게 하려면 아래와 같이 하면 됩니다.
application
{
        content =
        {
                width = 320, (폰 해상도에 맞는 width)
                height = 480,(폰 해상도에 맞는 height)
                scale = "letterbox"
      },
}
안드로이드에서는 버전이나 오리엔테이션 그리고 퍼미션 등을 아래와 같이 설정 합니다.
settings =
{
        android =
        {
                versionCode = "3"
        },
        androidPermissions =
        {
                "android.permission.ACCESS_FINE_LOCATION",
                "android.permission.INTERNET"
        },
        orientation =
        {
                default = "landscape"
        },
}
일단 안드로이드는 이 정도만 하면 될 것 같네요.
더 이상은 저도 잘 모르겠구요. 새로 알게 되는게 있으면 그때그때 팁으로 정리할께요.
그럼 다음 시간에 뵙겠습니다.
반응형

Comment

  1. kang 2012.01.21 00:15

    빌드 후에 폰으로 apk파일을 옮겨서 실행하면 올바르게 설치할 수 없다고 뜨는데 혹시 이유를 아시나요? ㅠ ㅠ

    제 코드가 잘못된 줄 알고 샘플코드들도 빌딩 후 apk 로 만들어
    폰으로 옴겨보았으나 같은 현상이 발생되네요..

    • 솔웅 2012.01.21 05:29 신고

      글쎄 왜 그럴까요.
      제가 Corona SDK 최신 버전을 받아서 지금 작업하고 있는데요.
      안드로이드는 버전 2.2 이상 그리고 iOS는 4.3(?)버전 이상에서 사용할 수 있더라구요.
      혹시 핸드폰 버전 문제일 수도 있겠구요.
      가족이나 친구 핸드폰에도 한번 깔아 보세요. 되는지 안 되는지....
      그리고 apk 파일 만들어서 이름을 바꾸면 안되는 경우도 경험했었습니다.
      위 문제도 아니면.....
      그러면 만약 apk 파일을 보내 주실수 있으면 보내 주세요. 직접 한번 보면 더 확실하게 분석 할 수 있을 것 같네요.

  2. kang 2012.01.21 07:24

    어떻게 보내드리면 될까요?
    가지고 있는 단말기인 아트릭스와 갤럭시 전부 해보았는데, 응용프로그램이 설치되지 않았습니다 라는 메시지만 띄우네요 ㅠ ㅠ

    그 포스팅 중에 보면
    - 안드로이드 폰에 인스톨 시키려면 adb install name.apk 로 하시면 됩니다.

    라는 부분이 있는데, 제가 이해를 못한것인지..
    답변 주셔서 감사합니다 ㅠ

    • Juhong 2012.01.21 07:42

      JDK 버전을 확인해보세요.
      http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u30-download-1377139.html
      jdk-7버전은 문제가 있는 것 같더군요.
      marmalade 했을 때도 경험했던건데 6 버전으로 바꾸니까 문제가 해결됬습니다. corona 처음할 때도 그랬었던건지는 잘 기억이 안나네요.

    • 솔웅 2012.01.21 09:08 신고

      아 저도 노트북 새로 사서 JDK 7 버전을 깔았는데 안 되더라구요. 제 경우엔 빌드 자체가 안 되서 apk파일을 만들 수가 없어요.
      kang님은 apk 파일은 만들었으니까 일단 build는 됐는데 디바이스에 인스톨이 안된다는 얘기인데 그게 JDK문제일것 같지는 않은데요..
      그리고 adb install 로 해도 되지만 컴퓨터에서 핸드폰으로 복사를 한 다음 그 apk파일을 더블클릭(두번 두드리기??) 하시면 깔립니다.
      제 이메일은 solkit2011@yahoo.com이니까 계속 안 되시면 메일로 보내 주세요.
      감사합니다.

    • Juhong 2012.01.21 17:48

      저는 apk 파일은 만들어지고 휴대폰에서 apk 파일을 설치를 할 때 그냥 설치에 실패했다고 뜨더라구요.
      그래서 jdk 버전 문제가 아닐까 했었습니다.
      어차피 jdk 6 버전으로 내린다고 해서 손해볼건 없으니 한번 해보시는 것도 나쁘지 않을듯하네요 :)

  3. kang 2012.01.22 03:18

    jre6,7 전부 설치했구요, 빌딩에는 문제가 없습니다.
    Juhong 님과 마찬가지로 설치에 실패했다고 뜨네요..
    메일로 해당 apk 는 전송했습니다.

    설인데 이리 빨리 답장 달아주시니 감사하네요

    • Juhong 2012.01.22 03:58

      jdk 7버전을 삭제하고 다시 한번 해보시기 바랍니다 :)

    • kang 2012.01.22 07:42

      현재 안드로이드 프로젝트 때문에 이클립스를 사용중인데 이게 jdk7 을 기반으로 하고 있어 협업하려면 꼭 필요한데 다른 방법은 없는건가요? ㅠ ㅠ

    • Juhong 2012.01.22 13:42

      jdk 7을 삭제하고 jdk 6으로 다시 빌드했을 때
      잘 되던가요?

      그 때 잘 된다면 제 생각에는 다른 방법이 딱히 없어보입니다.
      당장 생각나는 방법은...
      코로나가 시뮬레이터가 되니까 시뮬레이터상으로 작업할 때는 jdk 7으로 쓰다가 마지막에 apk 만들 때만 jdk 6으로 다운그레이드해서 하는 방법이 있겠습니다.
      하지만 굳이 jdk 7을 왜 유지 해야 하는지 모르겠네요.
      제가 아직 견문이 부족한지 모르겠지만 jdk 6으로 내려서 그렇게 손해볼 일도 없는 것 같은데....
      다른 문제가 있나보죠?

    • kang 2012.01.23 00:32

      헛, jdk7에서 작업한 소스를 jdk6 환경에서 임포팅시키면 알 수 없는 에러가 뜨더군요,

      구글링 한결과 jdk7에 컴파일러 자체가 6와는 차이가 있어 발생하는 문제였기에 현재 다른 프로젝트를 jdk7 기반으로 어느정도 진행한 상태입니다..

      그렇다면 jdk7 환경에서 시뮬레이터 상으로만 작업하고 다 끝난 후에 jdk6기반인 pc에서 app 으로 만들어도 크게 문제가 없을까요?

      이미 코로나를 2대의 pc에 설치해둔 터라 다른 pc에서 테스트해보기도 애매하네요.

      답변 감사합니다

    • Juhong 2012.01.23 04:37

      Corona에서 jdk 쓰는게 apk 빌드할 때 말고 있던가요?
      지금 Corona로 프로젝트를 진행중이라면 제가 알고 있는 지식을 바탕으로는 문제가 무엇인지 잘 모르겠습니다.
      Corona에서 사용하는 것은 java가 아니라 lua니까요.

      jdk7에서 작업하신 소스가 어떤 소스인지의 이해가 먼저가 되어야하지 않나 합니다.

    • 솔웅 2012.01.23 06:01 신고

      http://developer.anscamobile.com/reference/installation-and-setup-windows

      위 싸이트를 참조하세요.

      To create device builds you need to have the Java 6 SDK installed (Corona does not support JDK 7). If you already have the Java SDK installed, then you can use it provided that it is x86 (32-bit) and not the x64 (64-bit) version.

      Corona는 현재까지 JDK6 까지만 지원하고 JDK 7은 지원하지 않는다고 적혀있습니다. (이는 apk로 빌드할 때 이야기 입니다.)
      그리고 윈도우즈 OS도 32비트를 지원하고 64비트는 지원하지 않는다고 합니다.

      제가 처음에 강좌 올리면서 MAC 쪽 인스톨 부분만 올리고 Windows쪽 인스톨은 빼먹었네요.

      그리고 인스톨 할 핸드폰의 안드로이드 버전은 2.2 이상이어야 합니다.

    • kang 2012.01.23 10:09

      헛, 그렇다면 제가 알기로 코로나는 2대의 PC에밖에 인스톨을 못하는 것으로 알고 있는데 현재 2대의 PC모두
      윈도우7을 사용하고 있습니다..

      서..설마 포멧까지 하여야 하는 것일까요?
      혹시 새로운 PC가 있다면 그쪽에 설치할 수 있는
      방법이 있는지 궁금하네요..

      아 Juhong 님 말씀드린건 코로나에서가 아닌 이클립스 에서의 안드로이드 앱 개발시 문제였습니다.
      협업을 하고 있는 관계로 소스를 보내고 임포팅할때가많은데 jdk 버전이 다르면 문제가 발생하더군요,

      아마도 자바기반이어서 그런지 싶습니다.

      답변 감사합니다.

    • 솔웅 2012.01.23 10:26 신고

      윈도우 7 인것은 아무 상관 없습니다. 다만 빌드를 위해서는 JDK 6 버전을 32비트(x86) 으로 다운 받아서 설치하시면 됩니다. 64비트를 사용하는 윈도우 7이라도 32비트 프로그램을 깔면 자동으로 32비트용 폴더인 C:\Program Files (x86) 에 설치 됩니다.
      그리고 코로나는 2대의 PC밖에 설치가 안 되지만 이전 컴퓨터에서 deauthorize 시키고 새로운 컴퓨터에서 새로 등록하면 쉽게 다른 컴퓨터에서도 빌드 할 수가 있습니다.

    • kang 2012.01.23 23:24

      헉 그렇군요 !! 감사합니다 !!
      긴 질문에 정말 많은 도움이 되었습니다.

      앞으로도 자주 들리도록 하겠습니다
      사랑해요 ~

  4. 아통 2012.01.26 00:59

    PC 2대에서 어떻게 로그인 할 수 있을까요?
    전 한 곳에서 밖에 로그인이 안되던데..

    • 솔웅 2012.01.26 04:48 신고

      기본적으로 PC 2곳에서 Corona SDK 사용 승인을 받을 수 있도록 돼 있습니다.
      유료 사용자이시죠?
      그러면 Corona 측에 메일보내서 얘기하세요.
      저도 등록된 노트북이 망가져서 deauthorize 할 수 없었거든요.
      그래서 메일로 그 내용을 보냈더니 한군데서 더 Authorize 할 수 있도록 조치 해 주더라구요.

    • 아통 2012.01.30 20:53

      감사합니다 메일 보냈어여. 버그 리포트로 보냈는데 괜찮을런지 모르겠네요 ㅎㅎ.

    • 솔웅 2012.01.31 13:40 신고

      아.. 메일 언제 보내셨나요?
      찾아봐도 없던데......
      solkit2011@yahoo.com 으로 보내 주세요.

      감사합니다.

    • 아통 2012.01.31 19:35

      아.. ansca에 버그리포트로 메일 보냈다는 말인데..ㅎ 오늘 답장이 왔네여 deauthorize 처리해줬다네여