인디노트

macOS 에서 electron npm run pack 할 때 에러 처리 본문

개발 플랫폼 및 언어/일렉트론 Electron (JS)

macOS 에서 electron npm run pack 할 때 에러 처리

인디개발자 2023. 1. 12. 22:30

우선 macOS 에 /usr/bin/python3 가 설치되어 있는 경우

electron 의 서드파티가 아직 python2 를 기준으로 작성된 경우 pack 할 때 에러가 좀 생긴다.

우선 다음의 파일에서 
node_modules/dmg-builder/out/dmg.js
/usr/bin/python 를 찾아서 /usr/bin/python3 로 바꿔줘야 진행 할 수 있다.

또한, node_modules/dmg-builder/vendor/dmgbuild/core.py
라는 파일에서
from importlib import reload
를 추가해 줘야 한다.
import sys 바로 아래 줄에 추가 해 주면 된다.

또한, reload(sys) 및 sys.setdefaultencoding('UTF8') 은 python3 는 기본이 UTF8 이고 setdefaultencoding 이 존재하지 않기 때문에 앞쪽에 if 문을 추가해주고 해당 2개의 명령이 파이썬 버전 2 일 경우에만 동작 하도록 수정해 준다.

import os
import re
import sys
from importlib import reload

if sys.version[0] == '2':
  reload(sys)  # Reload is a hack
  sys.setdefaultencoding('UTF8')

이제 다음과 같이 pack 이 잘 동작 된다.

kgy@GYUYOUNGs-MacBook-Pro electron-quick-start % npm run pack            

> electron-quick-start@1.0.0 pack
> electron-builder

  • electron-builder  version=22.10.3 os=22.2.0
  • writing effective config  file=dist/builder-effective-config.yaml
  • packaging       platform=darwin arch=x64 electron=22.0.1 appOutDir=dist/mac
  • default Electron icon is used  reason=application icon is not set
  • signing         file=dist/mac/electron-quick-start.app identityName=Developer ID Application: SMARTDISK ORG (5BM5KUC7PW) identityHash=E2F92101298C82D1995A8525F50208965C31F13C provisioningProfile=none
  • building        target=macOS zip arch=x64 file=dist/electron-quick-start-1.0.0-mac.zip
  • building        target=DMG arch=x64 file=dist/electron-quick-start-1.0.0.dmg
  • building block map  blockMapFile=dist/electron-quick-start-1.0.0.dmg.blockmap
  • building embedded block map  file=dist/electron-quick-start-1.0.0-mac.zip

 

반응형
Comments