근래 Android나 iOS브라우저에서 많이 쓰이는 기술인데
standalone으로 실행되는 Windows나 Mac에서 어떻게 사용되는지 알아보는 기회가 있어 알아봅니다.
Windows
Windows는 Windows registry로 url scheme가 동작합니다.
브라우저에서 TestApp:// 입력 했을 때 특정 앱이 동작하도록 설정을 해봅니다.
Windows > 실행 에서 regedit를 실행합니다.
HKEY_CLASSES_ROOT 에서 키를 추가 합니다.
TestApp에서 URL Protocol이라는 문자열 값을 추가하고 별도의 설정없이 빈 값으로 유지 합니다.
TestApp 하위에 shell 이라는 키를 추가 합니다.
shell에는 별다른 값이 필요하지 않습니다.
방금과 동일하게 shell키 하위에 open 이라는 키를 추가 합니다.
open에도 별다른 값이 필요하지 않구요
한번 더 open 키 아래에 command 키를 추가 합니다.
이번에는 command의 기본값에서 실행하고자 하는 실행파일의 경로를 입력해 줍니다.
테스트 notepad.exe의 경로를 사용합니다.
먼저 notepad.exe의 경로를 확인하고
command키의 기본 값에 경로를 입력 합니다.
이제 브라우저에서 실행 해 봅니다.
오~~
뭔가 멋지게 실행되었습니다.
Mac OS
macos에서의 url scheme은
예전 생각해서 xcodeproject나 plist를 수정해야 하나 싶었는데, windows에서보다 사용법이 좀 간단합니다.
간단하게 유니티의 player 설정에서 한방에 끝나버립니다.
먼저 unity의 GUI 환경에서 설정하거나 빌드 타이밍에 API호출로 간단하게 해결 됩니다.
1. editor에서
2. 스크립트에서 API로
위 두 가지 방법중 하나로 iOS빌드를 진행하기만 하면 끝입니다.
브라우저에서 테스트
위 이미지에서 실행되는 앱의 이름은 노출되면 안되서 실제 앱 이름이 아니라 TestApp으로 편집 되었습니다.
여기서 url scheme이 실행되는 윈도우와의 차이는
윈도우는 어떤 프로그램이든 상관없이 url scheme이 원하는 실행파일을 지정해 줄 수 있지만,
맥 에서는 빌드 될 때 url scheme을 갖고 빌드가 된다는 점이 가장 큰 차이점이 되는 것 같습니다.
그럼 mac에서 앱 이름이 동일한 여러 파일이 있게 되는경우 어떤 것이 실행 되는지 알 수가 없습니다.
(보통은 개발 단에서의 이슈일 것 같긴하지만)
관련해서 검색을 좀 해보니 다음글의 내용을 보면
How are url scheme and file types handlers found/registered on macOS?
Launch Service에 의해 실행 될 응용프로그램이 결정되는 것 같은데
Finder에 의해 사용자가 디스크로 끌거나 사용자가 해당 응용프로그램이 있는 폴더로 이동할 때 등의
이벤트 때 갱신이 되는 것으로 보여집니다.
그렇다면 동일한 패키지 이름의 응용프로그램이 여러 개인 경우 제일 마지막에 설치, 이동, 복사 된
응용프로그램이 실행이 될 것 같습니다.
'IT > 개발환경' 카테고리의 다른 글
NSIS 스크립트에 URL scheme 추가 (0) | 2023.04.11 |
---|---|
Jenkins로 AKS CI/CD 구축 2/2 - Agent 구성 (1) | 2023.04.10 |
NSIS로 응용프로그램 설치파일 만들기 - 4/4 command로 빌드 (0) | 2023.04.10 |
NSIS로 응용프로그램 설치파일 만들기 - 3/4 installer 빌드 (0) | 2023.04.10 |
NSIS로 응용프로그램 설치파일 만들기 - 2/4 스크립트 생성 (0) | 2023.04.10 |