macOS용으로 Electron 어플리케이션의 서명(code signing)·공증(notarization)을 한다
1) Mac App Store
2) 인터넷에서 직접 배포 (예 : GitHub release에 파일 업로드)
2)의 방법으로 배포하는 경우, 서명(code signing) 및 공증(notarization)이 필요합니다. 이 기사에서는 실제로 Electron 애플리케이션을 출시한 경험을 바탕으로 필요한 설정에 대해 설명합니다.
전제
내가 개발한 Electron 어플리케이션( Photo Location Map )에서는, 다음의 상태·조건으로부터, 릴리스를 향해 서명·공증에 필요한 설정을 했습니다.
서명·공증 없는 경우
서명·공증 없는 경우, 인터넷상에서 다운로드한 어플리케이션을 기동하려고 하면, 다음의 메세지가 나오고, 기동할 수 없습니다.
또, 서명의 설정을 하고 있지 않은 경우, electron-builder로 빌드시( electron-builder build
)에, skipped macOS application code signing
라고 메세지가 나옵니다.
• electron-builder version=21.2.0 os=19.0.0
• loaded configuration file=/Users/Tomoyuki/Documents/GitRepo/GitHub/photo-location-map/electron-builder.json
• writing effective config file=release/builder-effective-config.yaml
• packaging platform=darwin arch=x64 electron=7.0.0 appOutDir=release/mac
• skipped macOS application code signing reason=cannot find valid "Developer ID Application" identity or custom non-Apple code signing certificate, see https://electron.build/code-signing
서명 설정하기
우선 서명이 필요합니다. 서명을 위해서는 다음 두 가지가 필요합니다.
• electron-builder version=21.2.0 os=19.0.0
• loaded configuration file=/Users/Tomoyuki/Documents/GitRepo/GitHub/photo-location-map/electron-builder.json
• writing effective config file=release/builder-effective-config.yaml
• packaging platform=darwin arch=x64 electron=7.0.0 appOutDir=release/mac
• skipped macOS application code signing reason=cannot find valid "Developer ID Application" identity or custom non-Apple code signing certificate, see https://electron.build/code-signing
우선 서명이 필요합니다. 서명을 위해서는 다음 두 가지가 필요합니다.
Developer ID Application은 Xcode를 시작하고 Preferences에서 다음 이미지와 같이 만들 수 있습니다. 도중, Apple ID의 유저명・패스워드를 입력하는 팝업이 나오므로, Apple Developer Program 등록시에 붙인 Apple ID를 사용합니다.
Developer ID Application을 작성한 후에는 electron-builder에서 빌드 시에 "Developer ID Application을 사용하여 sign했다"라는 메시지가 나오게 됩니다.
• electron-builder version=21.2.0 os=19.0.0
• loaded configuration file=/Users/Tomoyuki/Documents/GitRepo/GitHub/photo-location-map/electron-builder.json
• writing effective config file=release/builder-effective-config.yaml
• packaging platform=darwin arch=x64 electron=7.0.0 appOutDir=release/mac
• signing file=release/mac/Photo Location Map.app identityName=Developer ID Application: Tomoyuki Aota
서명이 끝나고 공증이 없는 경우
서명되고 공증이 없는 경우 인터넷에서 다운로드한 응용 프로그램을 시작하려고 하면 다음 메시지가 표시되고 시작할 수 없습니다.
공증 설정
공증의 방법에 대해서는, 다음 페이지를 참고로 했습니다.
Notarizing your Electron application | Kilian Valkhof
내가 개발중인 응용 프로그램에서는 다음과 같은 변경이 필요했습니다.
htps : // 기주 b. 코 m/토모 유키 아오타/p
Apple ID와 App Specific Password를 지정해야 하지만 환경 변수에 저장하도록 했습니다.
htps : // 기주 b. 코 m / 토모 유키 아오타 / p 호토 ぉ 카치 온 마 p / 푸 l / 192 / 후 ぇ s # ぢ f 55db2099c7 a0 et f7f93007 또는 fse 6c7 ebR24-R25
appleId: process.env.APPLE_ID,
appleIdPassword: process.env.APPLE_APP_SPECIFIC_PASSWORD,
공증은 5-10분 정도 걸립니다. 공증이 끝나면 Apple에서 메일이 옵니다.
그런 다음 공증 결과를 확인하는 스크립트를 넣어두면 편리합니다. 공증에 시간이 걸리는 경우 등의 조사에 도움이 됩니다. ( Notary Service가 떨어짐 일이 있거나 합니다. ) 터미널에서는 xcrun altool --notarization-history 0 -u ${appleId} -p ${appSpecificPassword}
제 경우에는 이전의 변경 중에서 ${appleId}
라는 스크립트를 준비했습니다.
서명되고 공증된 경우
인터넷에서 다운로드한 응용 프로그램을 시작하면 다음 팝업이 나타납니다. 애플리케이션을 시작할 수 있습니다.
결론
공증은 macOS 10.14.5 및 macOS 10.15에서 필수로 간주됨 그래서 2019년 11월 현재 필요한 작업과 라이브러리( electron-notarize ) 관련 설정 등 아직 유동적인 면이 있습니다. 그러므로, 이 기사에 쓰여지고 있는 것에 가세해, 최신의 정보를 쫓도록(듯이) 유의하면 좋다고 생각합니다.
Reference
이 문제에 관하여(macOS용으로 Electron 어플리케이션의 서명(code signing)·공증(notarization)을 한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TomoyukiAota/items/6b81b4126058e7fd4099
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
공증의 방법에 대해서는, 다음 페이지를 참고로 했습니다.
Notarizing your Electron application | Kilian Valkhof
내가 개발중인 응용 프로그램에서는 다음과 같은 변경이 필요했습니다.
htps : // 기주 b. 코 m/토모 유키 아오타/p
Apple ID와 App Specific Password를 지정해야 하지만 환경 변수에 저장하도록 했습니다.
htps : // 기주 b. 코 m / 토모 유키 아오타 / p 호토 ぉ 카치 온 마 p / 푸 l / 192 / 후 ぇ s # ぢ f 55db2099c7 a0 et f7f93007 또는 fse 6c7 ebR24-R25
appleId: process.env.APPLE_ID,
appleIdPassword: process.env.APPLE_APP_SPECIFIC_PASSWORD,
공증은 5-10분 정도 걸립니다. 공증이 끝나면 Apple에서 메일이 옵니다.
그런 다음 공증 결과를 확인하는 스크립트를 넣어두면 편리합니다. 공증에 시간이 걸리는 경우 등의 조사에 도움이 됩니다. ( Notary Service가 떨어짐 일이 있거나 합니다. ) 터미널에서는
xcrun altool --notarization-history 0 -u ${appleId} -p ${appSpecificPassword}
제 경우에는 이전의 변경 중에서 ${appleId}
라는 스크립트를 준비했습니다.서명되고 공증된 경우
인터넷에서 다운로드한 응용 프로그램을 시작하면 다음 팝업이 나타납니다. 애플리케이션을 시작할 수 있습니다.
결론
공증은 macOS 10.14.5 및 macOS 10.15에서 필수로 간주됨 그래서 2019년 11월 현재 필요한 작업과 라이브러리( electron-notarize ) 관련 설정 등 아직 유동적인 면이 있습니다. 그러므로, 이 기사에 쓰여지고 있는 것에 가세해, 최신의 정보를 쫓도록(듯이) 유의하면 좋다고 생각합니다.
Reference
이 문제에 관하여(macOS용으로 Electron 어플리케이션의 서명(code signing)·공증(notarization)을 한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TomoyukiAota/items/6b81b4126058e7fd4099
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
공증은 macOS 10.14.5 및 macOS 10.15에서 필수로 간주됨 그래서 2019년 11월 현재 필요한 작업과 라이브러리( electron-notarize ) 관련 설정 등 아직 유동적인 면이 있습니다. 그러므로, 이 기사에 쓰여지고 있는 것에 가세해, 최신의 정보를 쫓도록(듯이) 유의하면 좋다고 생각합니다.
Reference
이 문제에 관하여(macOS용으로 Electron 어플리케이션의 서명(code signing)·공증(notarization)을 한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TomoyukiAota/items/6b81b4126058e7fd4099텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)