Skip to content

Commit 93fee1d

Browse files
committed
Refactor README files to enhance clarity and structure, updating sections for documentation and quick start, while removing outdated content related to installation and usage examples.
1 parent bc8febf commit 93fee1d

File tree

6 files changed

+628
-602
lines changed

6 files changed

+628
-602
lines changed

README-ZH.md

Lines changed: 15 additions & 301 deletions
Original file line numberDiff line numberDiff line change
@@ -22,34 +22,17 @@
2222
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
2323
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
2424

25-
- [auto\_updater](#auto_updater)
26-
- [平台支持](#平台支持)
27-
- [快速开始](#快速开始)
28-
- [安装](#安装)
29-
- [⚠️ Windows requirements](#️-windows-requirements)
30-
- [用法](#用法)
31-
- [发布你的应用](#发布你的应用)
32-
- [生成私钥](#生成私钥)
33-
- [macOS](#macos)
34-
- [Windows](#windows)
35-
- [打包应用](#打包应用)
36-
- [macOS](#macos-1)
37-
- [Windows](#windows-1)
38-
- [获取签名](#获取签名)
39-
- [macOS](#macos-2)
40-
- [Windows](#windows-2)
41-
- [分发应用](#分发应用)
42-
- [故障排除](#故障排除)
43-
- [macOS](#macos-3)
44-
- [谁在用使用它?](#谁在用使用它)
45-
- [API](#api)
46-
- [AutoUpdater](#autoupdater)
47-
- [Methods](#methods)
48-
- [setFeedURL](#setfeedurl)
49-
- [checkForUpdates](#checkforupdates)
50-
- [setScheduledCheckInterval](#setscheduledcheckinterval)
51-
- [相关链接](#相关链接)
52-
- [许可证](#许可证)
25+
- [平台支持](#%E5%B9%B3%E5%8F%B0%E6%94%AF%E6%8C%81)
26+
- [文档](#%E6%96%87%E6%A1%A3)
27+
- [谁在用使用它?](#%E8%B0%81%E5%9C%A8%E7%94%A8%E4%BD%BF%E7%94%A8%E5%AE%83)
28+
- [API](#api)
29+
- [AutoUpdater](#autoupdater)
30+
- [Methods](#methods)
31+
- [setFeedURL](#setfeedurl)
32+
- [checkForUpdates](#checkforupdates)
33+
- [setScheduledCheckInterval](#setscheduledcheckinterval)
34+
- [相关链接](#%E7%9B%B8%E5%85%B3%E9%93%BE%E6%8E%A5)
35+
- [许可证](#%E8%AE%B8%E5%8F%AF%E8%AF%81)
5336

5437
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
5538

@@ -59,280 +42,11 @@
5942
| :---: | :---: | :-----: |
6043
|| ✔️ | ✔️ |
6144

62-
## 快速开始
45+
## 文档
6346

64-
### 安装
65-
66-
将此添加到你的软件包的 pubspec.yaml 文件:
67-
68-
```yaml
69-
dependencies:
70-
auto_updater: ^0.2.0
71-
```
72-
73-
74-
75-
```yaml
76-
dependencies:
77-
auto_updater:
78-
git:
79-
path: packages/auto_updater
80-
url: https://github.com/leanflutter/auto_updater.git
81-
ref: main
82-
```
83-
84-
#### ⚠️ Windows requirements
85-
86-
- `openssl`
87-
88-
运行以下命令:
89-
90-
> 使用 [Chocolatey](https://chocolatey.org/install)
91-
92-
```
93-
choco install openssl
94-
```
95-
96-
### 用法
97-
98-
```dart
99-
import 'package:auto_updater/auto_updater.dart';
100-
101-
void main() async {
102-
// 必须加上这一行。
103-
WidgetsFlutterBinding.ensureInitialized();
104-
105-
String feedURL = 'http://localhost:5002/appcast.xml';
106-
await autoUpdater.setFeedURL(feedURL);
107-
await autoUpdater.checkForUpdates();
108-
await autoUpdater.setScheduledCheckInterval(3600);
109-
110-
runApp(MyApp());
111-
}
112-
```
113-
114-
> 请看这个插件的示例应用,以了解完整的例子。
115-
116-
### 发布你的应用
117-
118-
#### 生成私钥
119-
120-
运行以下命令:
121-
122-
```bash
123-
dart run auto_updater:generate_keys
124-
```
125-
126-
> 需要分别在 `macOS``Windows` 系统中运行该命令。
127-
128-
##### macOS
129-
130-
准备使用 `EdDSA` 签名算法进行签名:
131-
132-
输出:
133-
134-
```
135-
A key has been generated and saved in your keychain. Add the `SUPublicEDKey` key to
136-
the Info.plist of each app for which you intend to use Sparkle for distributing
137-
updates. It should appear like this:
138-
139-
<key>SUPublicEDKey</key>
140-
<string>pfIShU4dEXqPd5ObYNfDBiQWcXozk7estwzTnF9BamQ=</string>
141-
```
142-
143-
更改文件 `macos/Runner/Info.plist` 如下:
144-
145-
```diff
146-
<?xml version="1.0" encoding="UTF-8"?>
147-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
148-
<plist version="1.0">
149-
<dict>
150-
151-
...
152-
153-
+ <key>SUPublicEDKey</key>
154-
+ <string>bHaXClrRGMmKoKP/3HJnr/jn2ODTRPAM3VZhhkI9ZvY=</string>
155-
</dict>
156-
</plist>
157-
```
158-
159-
##### Windows
160-
161-
准备使用 `DSA` 签名算法进行签名:
162-
163-
输出:
164-
165-
```
166-
Generated two files:
167-
dsa_priv.pem: your private key. Keep it secret and don't share it!
168-
dsa_pub.pem: public counterpart to include in youe app.
169-
BACK UP YOUR PRIVATE KEY AND KEEP IT SAFE!
170-
If you lose it, your users will be unable to upgrade!
171-
```
172-
173-
> 命令将为你生成私钥(`dsa_priv.pem`)及公钥(`dsa_pub.pem`),请备份你的私钥并确保其安全,并将公钥作为 Windows 资源添加到项目中。
174-
175-
更改文件 `windows/runner/Runner.rc` 如下:
176-
177-
```diff
178-
179-
...
180-
181-
+/////////////////////////////////////////////////////////////////////////////
182-
+//
183-
+// WinSparkle
184-
+//
185-
186-
+// And verify signature using DSA public key:
187-
+DSAPub DSAPEM "../../dsa_pub.pem"
188-
```
189-
190-
#### 打包应用
191-
192-
> 为了简化打包的过程,这里使用了 [Fastforge](https://fastforge.dev) ,一个专门用于打包和发布 Flutter 应用的完整工具。
193-
194-
`distribute_options.yaml` 添加到你的项目根目录。
195-
196-
```yaml
197-
output: dist/
198-
releases:
199-
- name: prod
200-
jobs:
201-
- name: macos-zip
202-
package:
203-
platform: macos
204-
target: zip
205-
build_args:
206-
dart-define:
207-
APP_ENV: dev
208-
# 查看完整文档:https://fastforge.dev/makers/exe
209-
- name: windows-exe
210-
package:
211-
platform: windows
212-
target: exe
213-
build_args:
214-
dart-define:
215-
APP_ENV: dev
216-
```
217-
218-
##### macOS
219-
220-
运行以下命令:
221-
222-
```
223-
fastforge release --name prod --jobs macos-zip
224-
```
225-
226-
##### Windows
227-
228-
运行以下命令:
229-
230-
```
231-
fastforge release --name prod --jobs windows-exe
232-
```
233-
234-
#### 获取签名
235-
236-
##### macOS
237-
238-
运行以下命令:
239-
240-
```
241-
dart run auto_updater:sign_update dist/1.1.0+2/auto_updater_example-1.1.0+2-macos.zip
242-
```
243-
244-
输出:
245-
246-
```
247-
sparkle:edSignature="pbdyPt92pnPkzLfQ7BhS9hbjcV9/ndkzSIlWjFQIUMcaCNbAFO2fzl0tISMNJApG2POTkZY0/kJQ2yZYOSVgAA==" length="13400992"
248-
```
249-
250-
将获得的新签名更新到 `appcast.xml` 文件 `enclosure` 节点的 `sparkle:edSignature` 属性值。
251-
252-
##### Windows
253-
254-
运行以下命令:
255-
256-
```
257-
dart run auto_updater:sign_update dist/1.1.0+2/auto_updater_example-1.1.0+2-windows-setup.exe
258-
```
259-
260-
输出:
261-
262-
```
263-
264-
sparkle:dsaSignature="MEUCIQCVbVzVID7H3aUzAY5znpi+ySZKznkukV8whlMFzKh66AIgREUGOmvavlcg6hwAwkb2o4IqVE/D56ipIBshIqCH8rk=" length="13400992"
265-
```
266-
267-
将获得的新签名更新到 `appcast.xml` 文件 `enclosure` 节点的 `sparkle:dsaSignature` 属性值。
268-
269-
#### 分发应用
270-
271-
`appcast.xml` 添加到你的项目 `dist/` 目录。
272-
273-
```xml
274-
<?xml version="1.0" encoding="UTF-8"?>
275-
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
276-
<channel>
277-
<title>auto_updater_example</title>
278-
<description>Most recent updates to auto_updater_example</description>
279-
<language>en</language>
280-
<item>
281-
<title>Version 1.1.0</title>
282-
<!-- 对于 macOS 项目,建议将 'sparkle:version' 和 'sparkle:shortVersionString' 添加到项目节点中,而不是作为 'enclosure' 的一部分。 -->
283-
<sparkle:version>2</sparkle:version>
284-
<sparkle:shortVersionString>1.1.0</sparkle:shortVersionString>
285-
<sparkle:releaseNotesLink>
286-
https://your_domain/your_path/release_notes.html
287-
</sparkle:releaseNotesLink>
288-
<pubDate>Sun, 16 Feb 2022 12:00:00 +0800</pubDate>
289-
<enclosure url="1.1.0+2/auto_updater_example-1.1.0+2-macos.zip"
290-
sparkle:edSignature="pbdyPt92pnPkzLfQ7BhS9hbjcV9/ndkzSIlWjFQIUMcaCNbAFO2fzl0tISMNJApG2POTkZY0/kJQ2yZYOSVgAA=="
291-
sparkle:os="macos"
292-
length="13400992"
293-
type="application/octet-stream" />
294-
</item>
295-
<item>
296-
<title>Version 1.1.0</title>
297-
<sparkle:releaseNotesLink>
298-
https://your_domain/your_path/release_notes.html
299-
</sparkle:releaseNotesLink>
300-
<pubDate>Sun, 16 Feb 2022 12:00:00 +0800</pubDate>
301-
<enclosure url="1.1.0+2/auto_updater_example-1.1.0+2-windows.exe"
302-
sparkle:dsaSignature="MEUCIQCVbVzVID7H3aUzAY5znpi+ySZKznkukV8whlMFzKh66AIgREUGOmvavlcg6hwAwkb2o4IqVE/D56ipIBshIqCH8rk="
303-
sparkle:version="1.1.0+2"
304-
sparkle:os="windows"
305-
length="0"
306-
type="application/octet-stream" />
307-
</item>
308-
</channel>
309-
</rss>
310-
```
311-
312-
> 本示例中 `macOS``Windows` 使用同一个 `appcast.xml` 文件,你需根据配置 `sparkle:os` 属性的值。
313-
314-
启动测试更新服务器:
315-
316-
```
317-
cd dist/
318-
serve -l 5002
319-
```
320-
321-
## 故障排除
322-
323-
### macOS
324-
325-
- 确保按照 [Sparkle 文档](https://sparkle-project.org/documentation/)中的说明添加了 sparkle pod
326-
- 通过将以下内容添加到您的授权文件以进行调试和发布,确保您已添加并启用应用程序的网络功能并禁用沙箱以进行发布
327-
328-
```
329-
<key>com.apple.security.network.client</key>
330-
<true/>
331-
<key>com.apple.security.network.server</key>
332-
<true/>
333-
<key>com.apple.security.app-sandbox</key>
334-
<false/>
335-
```
47+
- [快速开始](https://leanflutter.dev/zh/documentation/auto_updater/quick-start)
48+
- [API 参考](https://pub.dev/documentation/auto_updater/latest/auto_updater/)
49+
- [更新日志](https://pub.dev/packages/auto_updater/changelog)
33650

33751
## 谁在用使用它?
33852

0 commit comments

Comments
 (0)