Sparkle appcast 검사기
앱이 SUFeedURL에서 읽는 appcast를 붙여 넣으세요. 이 페이지 안에서만 읽고, 아무것도 가져오거나 전송하지 않아요.
예시로 해 보기:
하는 일
Sparkle은 Mac App Store 밖에서 판매되는 대부분의 Mac 앱이 쓰는 업데이트 프레임워크예요. 앱은 appcast라는 작은 RSS 파일을 읽고, 그 안의 <item> 하나가 릴리스 하나예요. 이 도구는 붙여 넣은 appcast를 읽고 각 릴리스를 Sparkle 자체의 배포 문서와 맞춰 봐요. Sparkle이 비교할 수 있는 버전이 있는지, https 다운로드에 크기와 EdDSA 서명이 있는지, 최소 macOS 버전과 날짜가 있는지요. Sparkle 네임스페이스가 없거나 다운로드 주소에 홀로 있는 &처럼 피드 전체를 망가뜨리는 실수도 잡아내요.
좋은 릴리스는 이렇게 생겼어요
<item>
<title>Version 2.1</title>
<pubDate>Sat, 07 Nov 2026 09:30:00 +0000</pubDate>
<sparkle:version>210</sparkle:version>
<sparkle:shortVersionString>2.1</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>14.0.0</sparkle:minimumSystemVersion>
<enclosure url="https://yourapp.com/YourApp-2.1.zip" length="8412337"
type="application/octet-stream" sparkle:edSignature="..."/>
</item>맨 위의 <rss> 태그에는 xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle"가 필요해요. Sparkle의 generate_appcast 도구는 서명과 length를 포함해 이 대부분을 대신 써 줘요.
결과별 의미
| 표시 | 의미 |
|---|---|
| 수정 | Sparkle이 피드를 읽을 수 없거나, 릴리스를 비교할 수 없거나, 설치하지 않을 거예요. |
| 모양 | 동작은 하지만, 이 릴리스가 실행할 수 없는 Mac에 갈 수 있거나 Sparkle 문서가 요구하는 게 빠져 있어요. |
| OK | Sparkle 문서에 나온 대로 설정되어 있어요. |
| 참고 | 알아 두면 좋은 설정이에요. 예를 들어 채널이나 중요 업데이트예요. |
출처: Sparkle, 업데이트 배포, Sparkle 문서, Sparkle, EdDSA 마이그레이션. 모두 2026년 11월 8일에 읽었어요.
작동 방식
이 페이지에서 돌아가는 몇 가지 간단한 텍스트 규칙이에요. 업데이트를 내려받지는 않기 때문에 서명이 내 키와 맞는지, length가 파일과 맞는지는 확인할 수 없어요. 둘 다 Sparkle이 설치할 때 확인해요. 피드도 가져오지 않으니 주소가 아니라 텍스트를 붙여 넣으세요. sparkle:hardwareRequirements는 사람들이 이미 가지고 있는 앱 사본에 Sparkle 2.9 이상이 들어 있어야 해요. 이전 사본은 이를 무시해요. 붙여 넣은 내용은 저장도 전송도 되지 않아요.
질문
Sparkle appcast가 뭔가요?
Mac 앱의 릴리스를 나열한, 서버에 있는 RSS 파일이에요. 앱 안의 Sparkle이 Info.plist의 SUFeedURL에서 이 파일을 읽고, 설치된 버전보다 새로운 릴리스가 있으면 알려 줘요.
Sparkle 업데이트마다 EdDSA 서명이 꼭 필요한가요?
Sparkle 문서는 업데이트에 서명해야 한다고 하고, generate_appcast가 대신 서명해 줘요. Info.plist에 SUPublicEDKey가 있는 앱은 무엇이든 설치하기 전에 서명을 확인해요.
실행할 수 없는 Mac에 업데이트가 가지 않게 하려면 어떻게 하나요?
릴리스에 sparkle:minimumSystemVersion을 추가하세요. 14.0.0처럼 세 부분으로 써요. Sparkle 2.9부터는 Apple silicon에서만 실행되는 빌드에 sparkle:hardwareRequirements를 arm64로 추가할 수도 있어요.
Sparkle은 어떤 버전 번호를 비교하나요?
sparkle:version은 사용자가 가진 앱의 CFBundleVersion과 비교돼요. sparkle:shortVersionString은 사람들에게 보이는 값일 뿐이에요.
붙여넣은 내용이 어딘가로 전송되나요?
아니요. 텍스트는 이 페이지에서만 읽고, 가져오거나 전송하거나 저장하지 않아요.