지난 시간에 깃헙을 통하여 내가 만든 어플리케이션을 업데이트 하는 방법을 보았습니다. 하지만 해당 레파지토리가 public이여야 한다는 한계가 있었습니다.
private 레파지토리인 경우에 사용 할 수 있는 함수가 setFeedURL 이 함수 입니다. 어떤 url에서 버전 확인및 업데이트용 파일을 가져 올 것인지에 대해 설정이 가능 합니다.
GitHub 사용하기!
우리는 배포용 서버로 아직 gitHub을 사용 할 수 있습니다. 하지만 private 레파지토리를 그대로 이용 하기에는, github access token을 발급하여야 합니다. 하지만 특정 레파지토리를 제한 할 수 없으면 release만을 위한 옵션을 설정 하기가 애매합니다.
또한 해당 토큰을 유실 또는 노출에 대해서 대처하기에는 꽤나 리스크가 큽니다. 따라서 이 예제 에서는 배포 전용의 public 레파지토리를 만들것을 추천 드립니다.
위 처럼 release 전용이며 public에 전혀 의미없는 커밋을 만들어서 지난 시간에 하였듯이 release들을 만들어 주면 됩니다.
그리고 나면 일렉트론 프로젝트의 index.js를 수정해줍니다.
생략 ....
const menu = Menu.buildFromTemplate(templates)
Menu.setApplicationMenu(menu)
autoUpdater.autoDownload = false
autoUpdater.setFeedURL({
provider: 'github',
repo: 'my-electron-app-release-only',
owner: 'sejinjja'
})생략 ....
autoUpdater.setFeedURL({
provider: 'github',
repo: ${repository},
owner: ${owner},
})
위처럼 변경 해주면 업데이트가 해당 public 레파지토리를 참조 하게 할 수 있습니다.
일반적인 파일서버 이용하기.
몇몇 분들은 외부와 서버가 차단된 인트라넷에서 배포를 해야 한다거나, gitHub을 통하여 배포를 못하는 많은 분들이 있을 수 있으며 권한에 따라 다른 버전의 어플리케이션이 업데이트가 되어야 하는 프로젝트 등등.. 여러 이유로 인하여 직접 서버를 개발해야 할 수도 있습니다.
npm install -g live-server
live-server
간단하게 서버를 열 수 있기에 저는 자주 이용합니다.
간단하게 내 피씨에 8080포트 혹은 몇몇 다른 포트로 서버가 열렸을 겁니다.
그리고 나면 일렉트론 프로젝트의 index.js를 수정해줍니다.
생략 ....
const menu = Menu.buildFromTemplate(templates)
Menu.setApplicationMenu(menu)
autoUpdater.autoDownload = false
autoUpdater.setFeedURL({
provider: 'generic',
url: 'http://127.0.0.1:8080'
})생략 ....
autoUpdater.setFeedURL({
provider: 'generic',
url: ${serverUrl}
})
열어둔 서버에 업데이트 시킬 파일을 위치 시켜두기만 하면 됩니다.
댓글
댓글 쓰기