기본 콘텐츠로 건너뛰기

라벨이 electron-updater인 게시물 표시

Electron with vue! (업데이트 하기 - MAC 전자서명)

 업데이트 첫 포스팅에  보면 MAC의 경우 전자서명을 하지않으면 진행이 되지 않는다고 언급 한적 있다. 당연하게도 MAC이 필요하니 MAC이 없다면 진행 할 수 없다. Apple Developer Program 구독 하기 Apple Developer Program 구독  기본적인 인적사항 작성 및 개인사업자로 가입을 진행을 하면 된다.  => 기업으로 등록시 DUNS라는 번호를 입력해야 하는등 꽤나 까다롭다. 비용은 년간 계속 발생하며  2022년 4월 기준 129,000원이라는 꽤나 고액의 비용이였다. CSR 만들기 MAC에서 keychain Access.app ( 키체인 접근 ) 이라는 어플리케이션을 실행하자. ( 키체인 접근  => 인증서 지원 => 인증 기관에서 인증서 요청... ) 위처럼 적당히 자신의 정보를 입력 하고 디스크에 저장됨을 클릭하도록 하자. 그리고 계속을 누른다. 적당한 위치에 파일을 다운로드 해두자. 인증서 만들기 인증서 만들러 가기   Certificates "+" <- 파란 버튼을 눌러서 인증서 등록을 시작 할 수 있다. 위처럼  Developer ID Application 을 선택하고 continue로 계속 진행을 하도록 하자.   Previous Sub-CA 를 선택하고 진행을 하며 Choose File을 클릭하여 만들어 두었던 CSR파일을 업로드 하도록 하자. 등록이 완료 되면 다운로드만 진행후 해당 파일을 실행 해주면 된다.  => keychain Access.app ( 키체인 접근 ) 인증서 등록을 진행 할 것인가 라는 질의가 들어올 것이고 등록을 하면 된다. 아래처럼 "인증서가 유효함" 이라고 되어있으면 잘 진행 된 것이다. 이제 다시 MAC에서 우리의 어플리케이션이 빌드 하도록 하자.

Electron with vue! (업데이트 하기2)

  지난 시간에 깃헙을 통하여 내가 만든 어플리케이션을 업데이트 하는 방법을 보았습니다. 하지만 해당 레파지토리가 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}, })  위처럼 변경 해주...

Electron with vue! (업데이트 하기!)

 지난 시간까지 만든 프로그램을 업데이트를 하기 위하여 사용자가 매번 패치 파일을 다운로드 받게 할 수는 없습니다.  electron-updater를 사용하여 사용자가 딱히 신경 쓰지 않아도 업데이트가 되도록 해보겠습니다. 기본적으로 이 포스팅 시리즈는 맛보기 정도로 상세한 옵션은 다루지 않습니다. 업데이트를 위한 모듈 추가 npm i electron-updater --save npm i electron-log --save electron-updater는 업데이트를 위하여 사용되는 모듈입니다. electron-log는 로그를 파일로 관리 하기 위함 입니다. 업데이트중에는 콘솔을 사용 할 수 없기에 파일에 남겨서 확인하는 것을 추천합니다. 빌드를 위한 일렉트론 설정! 일렉트론 프로젝트의 index.js를 수정하자 변경점의 색상을 변경 하였습니다. const {app , BrowserWindow , Menu } = require( 'electron' ) const path = require( 'path' ) const {autoUpdater} = require('electron-updater') const log = require('electron-log') const createWindow = ( devMode ) => { const win = new BrowserWindow({ width : 800 , height : 600 , webPreferences : { preload : path. join (__dirname , 'preload.js' ) } }) if ( devMode ) { win.loadURL( 'http://localhost:8080' ) } else { win.loadFile( 'dist_web/index.html' ) } win.webContents.openDev...