이 글에서는 Qt Installer Framework와 GitHub Pages를 사용해 온라인 설치 프로그램을 만드는 방법을 설명합니다. 예제로 RockPaperScissors.7z 게임 파일을 배포하며, GitHub Pages를 활용해 설치 파일을 관리하는 과정을 다룹니다.
온라인 기반 설치 프로그램이 아닌 오프라인 설치 프로그램을 알고 싶으시면 해당 링크로 이동해주세요.
1. 준비물
1.1 Qt Installer Framework 설치
- 최신 버전을 Qt Installer Framework에서 다운로드합니다.
- 설치 후 환경 변수에 QtInstallerFramework/bin 경로를 추가합니다.
1.2 GitHub 계정과 레포지토리 생성
- GitHub에서 계정을 생성하고 새 **레포지토리(Repository)**를 만듭니다.
- 예: rockpaperscissors-installer
- 배포할 게임 파일을 RockPaperScissors.7z로 준비합니다.
1.3 Git 설치
- 명령 프롬프트에서 아래 명령어로 Git을 설치합니다:
winget install --id Git.Git -e --source winget
- Git 설치 후 cmd 창을 새로 열어 환경 변수를 적용합니다.
- 사용자 이름과 이메일을 설정합니다:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
2. 프로젝트 구조 만들기
Qt Installer Framework에서는 특정한 디렉터리 구조가 필요합니다. 아래와 같은 구조를 만듭니다:
D:\qt\OnlineInstaller\
├── config\
│ └── config.xml
├── packages\
│ └── com.vendor.rockpaperscissors\
│ ├── meta\
│ │ └── package.xml
│ └── data\
│ └── RockPaperScissors.7z
디렉터리 생성 명령어
mkdir D:\qt\OnlineInstaller\config
mkdir D:\qt\OnlineInstaller\packages\com.vendor.rockpaperscissors\meta
mkdir D:\qt\OnlineInstaller\packages\com.vendor.rockpaperscissors\data
- RockPaperScissors.7z 파일을 data 폴더에 복사합니다.
3. 설정 파일 작성
3.1 config.xml 파일 작성
D:\qt\OnlineInstaller\config\config.xml 파일을 생성하고 아래 내용을 입력합니다:
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
<Name>Rock Paper Scissors Installer</Name>
<Version>1.0.0</Version>
<Title>Rock Paper Scissors Game Installer</Title>
<Publisher>MyCompany</Publisher>
<StartMenuDir>RockPaperScissors</StartMenuDir>
<TargetDir>@HomeDir@/RockPaperScissors</TargetDir>
<RemoteRepositories>
<Repository>
<Url>https://yourusername.github.io/rockpaperscissors-installer</Url>
<Enabled>1</Enabled>
<DisplayName>rockpaperscissors-installer Repository</DisplayName>
</Repository>
</RemoteRepositories>
</Installer>
- yourusername에는 레포지터리를 생성한 깃허브 아이디를 입력하면 됩니다.
- <RemoteRepositories> 부분이 핵심이다. 깃허브 페이지에서 설치에 필요한 파일들을 다운받는다. 따라서 설치파일의 용량이 줄어든다. 그리고 레포지터리를 갱신하면 자동으로 최신 설치 파일을 만들어준다.
3.2 package.xml 파일 작성
D:\qt\OnlineInstaller\packages\com.vendor.rockpaperscissors\meta\package.xml 파일을 생성하고 아래 내용을 입력합니다:
<Package>
<DisplayName>Rock Paper Scissors Game</DisplayName>
<Description>A simple Rock Paper Scissors game.</Description>
<Version>1.0.0</Version>
<ReleaseDate>2024-10-24</ReleaseDate>
<Default>true</Default>
</Package>
- ReleaseDate는 오늘 날짜를 입력해주세요. 바꾸지 않아도 문제는 없음.
4. GitHub Pages에 레포지토리 업로드
4.1 Git 초기화 및 레포지토리 클론
명령 프롬프트에서 레포지토리를 가져올 경로로 이동합니다. 예를 들어:
cd D:\qt
git clone https://github.com/yourusername/rockpaperscissors-installer.git
cd rockpaperscissors-installer
4.2 Qt 레포지토리 생성 및 파일 복사
repogen 명령어를 사용해 레포지토리를 생성합니다:
repogen --update -p D:\qt\OnlineInstaller\packages D:\qt\rockpaperscissors-installer
4.3 변경 사항 커밋 및 푸시
레포지토리 경로로 이동 후, 아래 명령어로 파일을 GitHub에 업로드합니다:
cd D:\qt\rockpaperscissors-installer
git add .
git commit -m "Add installer repository files"
git push origin main
5. GitHub Pages 설정
- GitHub 레포지토리의 Settings 탭으로 이동합니다.
- Pages 탭을 클릭합니다.
- Source를 main 브랜치로 설정하고 경로를 /root로 선택합니다.
- GitHub Pages URL이 생성됩니다:
예: https://yourusername.github.io/rockpaperscissors-installer - GitHub에 push 후, 항상 Pages를 새로 저장해야 페이지에 적용됩니다. 만약 자동으로 페이지 적용을 원할 경우 GitHub Action을 사용하면 레포지터리에 코드가 push될 때 마다 자동으로 페이지에 적용 시켜줍니다.
6. 온라인 설치 프로그램 생성
아래 명령어로 온라인 설치 프로그램을 생성합니다:
binarycreator -c D:\qt\OnlineInstaller\config\config.xml -p D:\qt\OnlineInstaller\packages D:\qt\RockPaperScissorsOnlineInstaller.exe --verbose
7. 설치 프로그램 테스트
RockPaperScissorsOnlineInstaller.exe를 실행하고 아래 내용을 확인합니다:
- 설치 중 GitHub Pages에서 파일을 다운로드하는지 확인합니다.
- 게임이 정상적으로 설치 디렉터리에 배포되는지 확인합니다.
- 시작 메뉴에 바로가기가 생성되는지 확인합니다.
8. 주의할 점
CORS 문제
GitHub Pages에서 다운로드 시 CORS(Cross-Origin Resource Sharing) 문제를 겪을 수 있습니다.
해결 방법:
- 모든 파일을 같은 도메인(https://yourusername.github.io)에서 제공하도록 설정합니다.
- 또는 GitHub Actions를 활용해 정기적으로 업데이트합니다.
GitHub Pages의 용량 제한
- GitHub Pages에는 1GB 용량 제한이 있습니다.
- 큰 파일은 압축하거나 나눠 업로드하는 것이 좋습니다.
9. 결론
이제 GitHub Pages와 Qt Installer Framework를 이용해 온라인 설치 프로그램을 만드는 방법을 알게 되었습니다! 🎉
RockPaperScissorsOnlineInstaller.exe를 통해 사용자는 인터넷을 통해 게임 파일을 다운로드하고 설치할 수 있습니다. 앞으로 더 다양한 배포와 업데이트에 활용해 보세요!
10. 마무리
다음은 깃허브 페이지에 업데이트 버전을 나누어 디렉터리로 저장하고, 설치 프로그램 실행시 업데이트 버전을 선택할 수 있도록 할 예정입니다. 최종 목표는 레포지터리가 업데이트하면 업데이트 알람을 주고, 최신 버전 업데이트를 자동으로 할 수 있도록 할 예정입니다.
궁금한 점이 있거나 추가적인 도움이 필요하면 댓글로 남겨 주세요. 😊
'임베디드 관련 카테고리 > Qt' 카테고리의 다른 글
Qt Creator를 사용한 GitHub API 기반 버전 관리 모듈 분리 및 사용하기 (0) | 2024.10.29 |
---|---|
Rock Paper Scissors Installer: 버전별 관리와 설치 프로그램 생성 가이드 (Windows CMD) (1) | 2024.10.28 |
가위바위보 배포 프로그램 만들기 - Qt Creator 사용 (3) | 2024.10.23 |
Qt Creator로 버튼 클릭 예제 만들기 (0) | 2024.10.23 |
Qt Installer Framework를 사용한 설치 프로그램 제작 튜토리얼 (윈도우 10 기반) (0) | 2024.10.23 |
댓글