Sparkle ์ MacOS ์ฉ ์ํํธ์จ์ด ์
๋ฐ์ดํธ๋ฅผ ์ํ ์คํ ์์ค ํ๋ ์ ์ํฌ์ด๋ค.
ํด๋น ๊ด๋ จ ํ์ผ์ ์๋ ์ฌ์ดํธ์์ ์ ๋ณด๋ฐ ๊ด๋ จ ํ์ผ์ ๋ค์ด ๋ฐ์ ์ ์๋ค.
https://sparkle-project.org
์ฐธ๊ณ ๋ก Sparkle ์ ์๋์ฐ ์ฉ๋ ์๋ค.
https://winsparkle.org/
๋๊ฐ์ง ๊ฒฝ์ฐ OS ํ๊ฒฝ์ ์ฐจ์ด๊ฐ ์์ด์ ์ฌ์ฉ๋ฒ์์๋ ์กฐ๊ธ ์ฐจ์ด๊ฐ ์์ง๋ง ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
์ฌ๊ธฐ์ ์ค๋ช
์ MacOS๋ฅผ ๊ธฐ์ค์ด๋ค.
๋ค์ด๋ก๋ ํ์ผ์ ๋ค์ดํ
Sparkle.framework ํด๋ ์ ์ฒด๋ฅผ ๋ QT ๊ฐ๋ฐ ํ๊ฒฝ์ lib ํด๋์ ๋ณต์ฌ ํด์ฃผ๋ฉด ๋๋ค.
์ต์ ๋ฒ์ ์ Sparkle ์์๋ DSA ์๋ช
์์ EdDSA ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ณ๊ฒฝ ๋์๋ค.
EdDSA ํค ์์ฑ์ ์๋ ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด ๋๋๋ฐ ๊ฐ์ธํค๋ MacOS ์ KeyChain ์ผ๋ก ๋ค์ด ๊ฐ๋ค.
EdDSA ํค ์์ฑ
./bin/generate_keys
๊ฒฐ๊ณผ ์์
<key>SUPublicEDKey</key>
<string>pfIShU4dEXqPd5ObYNfDBiQWcXozk7estwzTnF9BamQ=</string>
ํ๋ฒ ์์ฑ์ ํ๊ณ ๋์ ๋ค์ ์คํ์ ํด๋ ๊ณ์ ๊ฐ์ ๊ณต๊ฐํค ๊ฐ์ด ๋์จ๋ค.
์๋ง๋ ์ฒ์์๋ ์๋ก ํค ์์ ์์ฑํ์ง๋ง ํ๋ฒ ์์ฑ ๋๋ฉด ํค์ ๋ํ ๊ณต๊ฐํค ์ ๋ณด๋ง ํ์ํ๋๊ฑธ๋ก ๋ณด์ธ๋ค.
์ด ๊ณต๊ฐํค ๊ฐ์ ํด๋น ํจํค์ง์ info.plist ํ์ผ์ ์ถ๊ฐ ๋์ด์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ info.plist ์ ๋ณด์๋
SUFeedURL ์ ๋ณด์ CFBundleVersion ์ ๋ณด๊ฐ ์ถ๊ฐ ๋์ด์ผ ํ๋ค.
info.plist ์์
<key>CFBundleVersion</key>
<string>1.4.7</string>
<key>CFBundleSignature</key>
<string>hbwr</string>
<key>SUFeedURL</key>
<string>https://jykim74.github.io/appcast/bereditor_appcast_mac.xml</string>
<key>SUPublicEDKey</key>
<string>TLJn+zNF8t6SpCGDfDjjKEJGnv40yVGKJrK1XBhyVKo=</string>
EdDSA ์๋ช
./bin/sign_update path_to_your_update.(zip|dmg|tar.*)
์ฌ๊ธฐ์ path_to_you_update.(zip|dmg|tar) ๋ฑ ์๋ช
๋์ ํ์ผ์ ์ ์ฉ ํด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๋ช
๋ น ์คํ ๊ฒฐ๊ณผ ๊ฐ์ appcast.xml ํ์ผ์ ์ถ๊ฐ ํด ์ฃผ์ด์ผ ํ๋ค.
appcast.xml ์ ์ฉ ์์
<enclosure url="[https://example.com/downloads/app.zip.or.dmg.or.tar.etc](https://example.com/downloads/app.zip.or.dmg.or.tar.etc)"
sparkle:edSignature="7cLALFUHSwvEJWSkV8aMreoBe4fhRa4FncC5NoThKxwThL6FDR7hTiPJh1fo2uagnPogisnQsgFgq6mGkt2RBw=="
length="1623481"
type="application/octet-stream" />
์๋๋ ์ถ๊ฐ ์ฝ๋ ์๋ช ๊ด๋ จ ๋ช ๋ น์ด์ด๋ค.
App ์๋ช
codesign --force --deep --sign - /Applications/BerEditor.app
ํน์๋ GateKeeper ๋ฅผ ๋๊ธฐ / ์ผ๊ธฐ๋ ์๋ ๋ช ๋ น์ด๋ฅผ ์ฐธ์กฐ ํ๋ค.
GateKeeper ๋๊ธฐ
sudo spctl --master-disable
GateKeeper ์ผ๊ธฐ
sudo spctl --master-enable
ํ์ฌ ๊น์ง๋ ์
๋ฐ์ดํธ ๋์ค SIG ABORT ๋ฐ์ ํจ
์ฝ๋ ์ฌ์ธ์ด ๋์ด ์์ง ์์์ ์๊ธฐ๋ ๋ฌธ์ ๋ผ๊ณ ์๊ฐ๋๋๋ฐ
์ถํ AppleID ๋ก ์ธ์ฆ์ ๋ฐ๊ธ ํ ์ฝ๋ ์๋ช
ํ ํ
์คํธ๋ฅผ ํด ๋ณผ ํ์๊ฐ ์์
์ฝ๋ ์๋ช
์ด ์๋์ด์ ์ฃฝ๋๊ฒ ๋ง๋์ง ์๋ ๋ด๊ฐ ์๋ชป ์ฌ์ฉํ๋ ๊ฑด์ง ์์ง ์ ํํ์ง๊ฐ ์๋ค์..
ํน์ Apple ID ์์ด๋ ํ ์คํธ ํด ๋ณผ์ ์๋์ง ์์๋๋ถ ์ข ์๋ ค์ฃผ์ธ์..
'Development' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
QT ๋ฆฌ๋ ์ค Deploy ๋ฐฉ๋ฒ (0) | 2023.11.20 |
---|---|
Qt5 ์์ Qt6 ๋ณ๊ฒฝ ์์ ๋ด์ฉ (0) | 2023.10.06 |
[Qt5] MySQL(MariaDB) Driver ์ธ์ ์ํค๊ธฐ ( ์๋์ฐ ํ๊ฒฝ ) (0) | 2023.07.31 |
#define ๋งคํฌ๋ก ์ฌ์ฉ๋ฒ (0) | 2023.06.09 |
์ ๊ท ํํ์ ์ฌ์ฉ๋ฒ ์ ๋ฆฌ (0) | 2023.05.26 |