Windows 10에서 WSL을 활용한 Python 앱의 APK 빌드 가이드

Python 기반 모바일 애플리케이션을 Windows 환경에서 직접 APK로 패키징하는 것은 공식적으로 지원되지 않습니다. 이를 해결하기 위해 Windows Subsystem for Linux(WSL)를 활용하면 리눅스 기반 빌드 도구체인을 그대로 사용할 수 있습니다. 본 문서는 Ubuntu 기반 WSL 환경에서 Kivy와 Buildozer를 통해 Python 코드를 Android 앱(APK)으로 변환하는 절차를 설명합니다.

WSL 환경 설정

먼저 WSL 기능을 활성화해야 합니다. Windows 설정 → 앱 → 프로그램 및 기능 → Windows 기능 켜기/끄기에서 Linux용 Windows 하위 시스템을 선택하고 시스템을 재시작합니다.

다음으로 Microsoft Store에서 원하는 배포판을 설치합니다. 본 가이드에서는 Ubuntu를 기준으로 진행합니다. 설치 후 처음 실행 시 사용자 이름과 비밀번호를 설정하세요.

Kivy 설치 및 검증

터미널을 열고 다음 명령어로 Kivy를 설치합니다:

pip install kivy

설치 중 다음과 같은 오류가 발생할 수 있습니다:

kivy/include/gl_redirect.h:72:13: fatal error: GL/gl.h: No such file or directory

이 경우 OpenGL 관련 헤더 파일이 누락된 것이므로, 다음 명령어로 개발 패키지를 추가 설치합니다:

sudo apt update
sudo apt install mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev

다시 pip install kivy를 실행하면 정상적으로 설치됩니다.

설치 확인을 위해 간단한 테스트 앱을 작성합니다:

from kivy.app import App
from kivy.uix.button import Button

class MyApp(App):
    def build(self):
        return Button(text='Hello, Kivy!')

MyApp().run()

실행 시 OpenGL 버전이 낮아 오류가 발생할 수 있으나, 이는 개발 단계에서는 무시해도 무방하며 최종 APK 빌드에는 영향을 주지 않습니다.

Buildozer 설치 및 초기화

APK 생성을 위해 Buildozer를 설치합니다:

pip install buildozer

프로젝트 디렉터리로 이동하여 설정 파일을 생성합니다:

cd /mnt/c/Users/YourName/your_project
buildozer init

정상적으로 완료되면 buildozer.spec 파일이 생성됩니다. 이 파일은 앱 메타데이터와 빌드 옵션을 정의합니다.

buildozer.spec 설정 수정

주요 수정 항목은 다음과 같습니다:

  • title: 앱 이름 (예: MyKivyApp)
  • package.name: 패키지 식별자 (영문 소문자만 가능, 예: mykivyapp)
  • version: 앱 버전 (예: 0.1)
  • requirements: 종속성 목록 (예: kivy,numpy)
  • presplash.filename: 스플래시 이미지 경로 (PNG 또는 JPG)
  • icon.filename: 앱 아이콘 경로 (512x512 PNG 권장)
  • orientation: 화면 방향 (all, portrait, landscape)
  • fullscreen: 전체 화면 여부 (1 또는 0)
  • android.api, android.minapi, android.sdk, android.ndk: Android 플랫폼 설정
  • log_level: 로그 수준 (2 추천, 디버깅 용이)

빌드 전 필수 의존성 설치

Buildozer가 원활히 동작하려면 추가 시스템 패키지가 필요합니다:

sudo apt install -y build-essential ccache git libncurses5:i386 libstdc++6:i386
sudo apt install -y openjdk-8-jdk

Java 컴파일러(javac)가 없다는 오류가 발생하면 JDK 설치가 누락된 것입니다. 위 명령어로 해결 가능합니다.

APK 빌드 실행

모든 준비가 완료되면 다음 명령어로 빌드를 시작합니다:

buildozer -v android debug

이 과정에서 자동으로 Android SDK, NDK, 그리고 기타 빌드 도구들이 다운로드되고 설정됩니다. 첫 빌드 시 네트워크 상태에 따라 수십 분 이상 소요될 수 있으며, 전체 저장 공간은 약 5GB 이상 필요할 수 있습니다.

빌드 문제 해결 팁

  • 네트워크 차단: 중국 지역처럼 특정 자원 접근이 제한되는 경우, 프록시 또는 미러를 활용하세요.
  • 라이브러리 링킹 오류: "xyz.so not found" 오류 발생 시 시스템 내 존재하는 라이브러리를 심볼릭 링크로 연결합니다:
    locate xyz.so
    sudo ln -s /path/to/existing/xyz.so /usr/lib/xyz.so
    
  • 사용자 권한 경고: WSL에서 root로 실행 시 표시되는 경고는 일반적으로 무시해도 무방하지만, 별도의 사용자를 생성해 실행하는 것이 안정적입니다.

결과물 확인

성공적으로 빌드가 완료되면 프로젝트 폴더 내 bin/ 디렉터리에 *-debug.apk 파일이 생성됩니다. 해당 파일을 Android 기기에 설치하여 실행 가능합니다.

태그: kivy buildozer wsl android-apk python-mobile

6월 1일 12:36에 게시됨