[003] 플러터 (Flutter) Windows App Tip - 윈도우 앱 빌드 및 스토어 배포하기 (msix 및 인증서 사용)
안녕하세요~ totally 개발자입니다.
윈도우 앱을 배포할 때 msix 패키지를 사용해서 배포하게 되는데요. 이 경우 테스트 인증서로 되지 않아 개인 인증서를 설치하고 테스트 설치를 보는 경우가 생기게 됩니다.
Step 1: 아래 사이트를 통해 OpenSSL를 설치합니다. 경로 선택 하는 부분에서 System 부분이 아니라 Program Files\OpenSSL-Win64\bin 이렇게 갈 수 있도록 선택해주면 됩니다.
https://slproweb.com/products/Win32OpenSSL.html
Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions
Minimum system requirements: Windows XP or later 32MB RAM 200MHz CPU 30MB hard drive space Recommended system requirements: Windows XP or later 128MB RAM 500MHz CPU 300MB hard drive space March 14, 2023 - OpenSSL 3.1 is available. Also, Happy Pi Day. Users
slproweb.com
Step 2: OpenSSL를 설치한 후 Powershell이 아닌 일반 cmd 명령 크롬프트를 열어주시고 아래 경로로 설정해줍니다.
Step 3: 다음을 입력합니다.
openssl genrsa -out mykeyname.key 2048
Step 4: 키를 생성한 후, csr 부분입니다
openssl req -new -key mykeyname.key -out mycsrname.csr
Step 5: 여기에서 국가, 도시 등 정보를 물어보는데 국가는 한국인 경우 KR로 입력하고 넘어가시면 됩니다.
Step 6: A challenge password, an optional company name 등도 물어보면 적절히 입력 후 넘어가시면 됩니다.
Step 7: 그 다음 이 명령어를 입력합니다. openssl x509 -in mycsrname.csr -out mycrtname.crt -req -signkey mykeyname.key -days 365
Step 8: 그 후 이 명령어를 입력하면 pfx 증명서가 생성됩니다. openssl pkcs12 -export -out CERTIFICATE.pfx -inkey mykeyname.key -in mycrtname.crt
Step 9: 비밀번호를 입력해주시면 생성이 완료됩니다.
Step 10: 검색에서 '인증서'를 입력하신 뒤 '컴퓨터 인증서 관리'로 들어갑니다.
Step 11: '신뢰할 수 있는 사용자'를 선택합니다.
Step 12: 마우스 우클릭 -> 모든 작업 -> 가져오기를 선택합니다.
Step 13: '다음'을 눌러줍니다.
Step 14: '찾아보기'를 누릅니다.
Step 15: 아래 확장자를 개인 정보 교환(pfx)으로 변경하시고 CERTIFICATE로 명명한 증명서를 선택하여 열어줍니다.
Step 16: 상위에서 입력한 비밀번호를 입력하고 '다음'을 눌러 완료하시면 됩니다.
Step 17: 에디터를 여시고 pubspec.yaml 파일로 가서 dev_dependencies: 밑에 msix 패키지를 추가해주고 아래 msix_config 정보도 입력해줍니다.
더 자세한 정보는 아래 패키지 정보를 확인해주시면 됩니다.
msix | Dart Package
A command-line tool that create Msix installer from your flutter windows-build files.
pub.dev
Step 18: 배포 파일을 만들기 위해서 프로젝트 경로에서 dart run msix:publish 명령어를 입력하면 생성됩니다. 위에 생성 경로 설정한 곳을 열어서 APPINSTALL 파일 (TEST.appinstall) 열어보셔서 설치하시고 진행하시면 마무리됩니다.
만약에 Microsoft Store(마이크로소프트 스토어)에 배포하시는 용도시라면 dart run msix:publish --store 명령어로 입력하시면 되는데 그 전에 pubspec.yaml에서
msix_config:
display_name: 스토어어플이름
publisher_display_name: 스토어개발자이름
publisher: CN=A1234처럼시작하는일련배포번호
identity_name: 12345처럼시작하는고유이름
msix_version: 1.0.0.0
app_installer:
publish_folder_path: C:\publish (배포 폴더를 만드시고 경로 작성, 여기에 생성됩니다)
hours_between_update_checks: 0 (업데이트 체크)
automatic_background_task: true
update_block_activation: true
show_prompt: true
languages: en-us, ko-kr(지원언어들을 여기에 적습니다)
logo_path: C:\logo.png(로고로 쓰일 아이콘 경로)
enable_at_startup: true (컴퓨터 부팅시 앱을 실행하기 원하는 경우 true)
capabilities: internetClient, musicLibrary, picturesLibrary, videosLibrary, location (필요한 권한 및 기능을 부여)