Andy Matuschak dường như chỉ ra Sparkle mà thực sự có thể xử lý 'tải chỉ' một cách duyên dáng cho bạn. Nói cách riêng của mình, chỉ cần rời khỏi số <enclosure>
trong số <item>
của bạn và thêm phần tử <sparkle:version>2.0</sparkle:version>
làm con của <item>
.
đọc comment của mình ở đây: https://github.com/sparkle-project/Sparkle/issues/227#issuecomment-13192723
Cũng giống như Fermat trước mặt ông, ông rời ra một đoạn thông tin. Nhưng không giống như định lý, chúng ta có quyền truy cập vào mã nguồn Sparkle, cụ thể là SUAppcastItem.m
. Nhờ mã, tôi đã tìm ra phần còn thiếu là một thẻ <link>
. Dưới đây là một ví dụ appcast:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>FooBar</title>
<link>http://foobar.com/appcast.xml</link>
<description>Most recent changes with links to updates.</description>
<language>en</language>
<item>
<title>FooBar 2.0</title>
<sparkle:releaseNotesLink>http://foobar.com/release-notes-special.html</sparkle:releaseNotesLink>
<sparkle:minimumSystemVersion>10.9.0</sparkle:minimumSystemVersion>
<pubDate>2014-04-14T18:40:44+02:00</pubDate>
<sparkle:version>2013</sparkle:version>
<sparkle:shortVersionString>2.0</sparkle:shortVersionString>
<link>http://foobar.com/release-notes-special.html</link>
</item>
</channel>
</rss>
Trong ứng dụng sandbox mà nhận appcast đó và không thể được cập nhật bằng cách khác, 'Install Update' đã biến mất, và thay vào đó là một nút 'Tìm hiểu thêm' rằng sẽ mang lại người dùng đến URL trong đó <link>
. Đây là nơi tốt để có hướng dẫn tải xuống. Trong phiên bản tiếp theo của ứng dụng, bạn có thể sử dụng một URL khác cho ứng dụng, để ứng dụng trên chỉ áp dụng cho các phiên bản cũ hơn (giả sử bạn đã sửa và sử dụng thủ thuật XPC không chính thức với Sparkle). .
Chúng tôi hiện đang trong quá trình hợp nhất hỗ trợ hộp cát vào Sparkle, xem https://github.com/sparkle-project/Sparkle/issues/363 để biết thêm thông tin. –