8
8
import Foundation
9
9
import SwiftUI
10
10
import Logging
11
- import SwiftyJSON
12
11
13
12
struct VersionManager {
14
13
let logger = Logger ( label: " version-manager " )
@@ -31,22 +30,17 @@ struct VersionManager {
31
30
return
32
31
}
33
32
34
- let jsonObj = JSON ( parseJSON: contents)
35
- let latestVersionNum = jsonObj [ " latestVersionNum " ]
36
- let latestVersion = String ( describing: jsonObj [ " latestVersion " ] )
37
- let updateType = String ( describing: jsonObj [ " updateType " ] )
38
- let releaseNotes = String ( describing: jsonObj [ " releaseNotes " ] )
33
+ let versionInfo = try JSONDecoder ( ) . decode ( VersionModel . self, from: contents. data ( using: . utf8) !)
39
34
40
35
let currentVersionInt = Int ( " \( currentVersionNum ?? 0 ) " ) ?? 0
41
- let latestVersionInt = Int ( " \( latestVersionNum) " ) ?? 0
42
- logger. info ( " compare latest version, latest version: \( latestVersionInt) , current version: \( currentVersionInt) " )
43
- if latestVersionInt > currentVersionInt {
36
+ logger. info ( " compare latest version, latest version info: \( versionInfo) , current version: \( currentVersionInt) " )
37
+ if versionInfo. latestVersionNum > currentVersionInt {
44
38
logger. info ( " get new version success, please update! " )
45
39
46
40
// 提示升级
47
- if updateType == " hint " {
41
+ if versionInfo . updateType == " hint " {
48
42
Task {
49
- let r = await Messages . confirmAsync ( " New version \( latestVersion) is available " , message: releaseNotes,
43
+ let r = await Messages . confirmAsync ( " New version \( versionInfo . latestVersion) is available " , message: versionInfo . releaseNotes,
50
44
primaryButton: " Upgrade " )
51
45
52
46
if r {
@@ -57,7 +51,7 @@ struct VersionManager {
57
51
}
58
52
}
59
53
// 强制升级
60
- else if updateType == " force " {
54
+ else if versionInfo . updateType == " force " {
61
55
62
56
}
63
57
} else {
0 commit comments