Skip to content

Commit 5b5aac7

Browse files
committed
fix constant
1 parent 6919f19 commit 5b5aac7

File tree

5 files changed

+77
-46
lines changed

5 files changed

+77
-46
lines changed

AppStoreManager.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pod::Spec.new do |spec|
22

33
spec.name = "AppStoreManager"
4-
spec.version = "1.0.0"
4+
spec.version = "1.1.0"
55
spec.summary = "A new version checking framework in Swift."
66

77
spec.homepage = "https://knottovt.github.io"

AppStoreManager.xcodeproj/project.pbxproj

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
1A38DDA025A7F907003F396E /* AppStoreManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A38DD9F25A7F907003F396E /* AppStoreManagerTests.swift */; };
1212
1A38DDB625A7FB82003F396E /* AppStoreManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A38DDB525A7FB82003F396E /* AppStoreManager.swift */; };
1313
69E6D0ABBC6AEC4026DA622C /* Pods_AppStoreManager_AppStoreManagerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 012B0AF89105315A6A14AC47 /* Pods_AppStoreManager_AppStoreManagerTests.framework */; };
14+
8B7CD1B326006F60005E8076 /* AppStoreManagerModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B7CD1B226006F60005E8076 /* AppStoreManagerModels.swift */; };
15+
8B7CD1B7260070B2005E8076 /* AppStoreManagerConstant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B7CD1B6260070B2005E8076 /* AppStoreManagerConstant.swift */; };
1416
A06BA46E1024B4E96934D960 /* Pods_AppStoreManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE3270435E209B0464BD34E7 /* Pods_AppStoreManager.framework */; };
1517
/* End PBXBuildFile section */
1618

@@ -34,6 +36,8 @@
3436
1A38DDA125A7F907003F396E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
3537
1A38DDB525A7FB82003F396E /* AppStoreManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStoreManager.swift; sourceTree = "<group>"; };
3638
71B697235DCF0C63A860250B /* Pods-AppStoreManager.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AppStoreManager.release.xcconfig"; path = "Target Support Files/Pods-AppStoreManager/Pods-AppStoreManager.release.xcconfig"; sourceTree = "<group>"; };
39+
8B7CD1B226006F60005E8076 /* AppStoreManagerModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStoreManagerModels.swift; sourceTree = "<group>"; };
40+
8B7CD1B6260070B2005E8076 /* AppStoreManagerConstant.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStoreManagerConstant.swift; sourceTree = "<group>"; };
3741
93B04D51420666DAE0B1049A /* Pods-AppStoreManager-AppStoreManagerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AppStoreManager-AppStoreManagerTests.debug.xcconfig"; path = "Target Support Files/Pods-AppStoreManager-AppStoreManagerTests/Pods-AppStoreManager-AppStoreManagerTests.debug.xcconfig"; sourceTree = "<group>"; };
3842
BE3270435E209B0464BD34E7 /* Pods_AppStoreManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AppStoreManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
3943
EDE85E490A38D9DE3BE49A14 /* Pods-AppStoreManager.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AppStoreManager.debug.xcconfig"; path = "Target Support Files/Pods-AppStoreManager/Pods-AppStoreManager.debug.xcconfig"; sourceTree = "<group>"; };
@@ -85,6 +89,8 @@
8589
children = (
8690
1A38DD9525A7F907003F396E /* Info.plist */,
8791
1A38DDB525A7FB82003F396E /* AppStoreManager.swift */,
92+
8B7CD1B226006F60005E8076 /* AppStoreManagerModels.swift */,
93+
8B7CD1B6260070B2005E8076 /* AppStoreManagerConstant.swift */,
8894
);
8995
path = AppStoreManager;
9096
sourceTree = "<group>";
@@ -276,6 +282,8 @@
276282
buildActionMask = 2147483647;
277283
files = (
278284
1A38DDB625A7FB82003F396E /* AppStoreManager.swift in Sources */,
285+
8B7CD1B326006F60005E8076 /* AppStoreManagerModels.swift in Sources */,
286+
8B7CD1B7260070B2005E8076 /* AppStoreManagerConstant.swift in Sources */,
279287
);
280288
runOnlyForDeploymentPostprocessing = 0;
281289
};
@@ -439,7 +447,7 @@
439447
"@executable_path/Frameworks",
440448
"@loader_path/Frameworks",
441449
);
442-
MARKETING_VERSION = 1.0.0;
450+
MARKETING_VERSION = 1.1.0;
443451
PRODUCT_BUNDLE_IDENTIFIER = com.knottx.AppStoreManager;
444452
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
445453
SKIP_INSTALL = YES;
@@ -469,7 +477,7 @@
469477
"@executable_path/Frameworks",
470478
"@loader_path/Frameworks",
471479
);
472-
MARKETING_VERSION = 1.0.0;
480+
MARKETING_VERSION = 1.1.0;
473481
PRODUCT_BUNDLE_IDENTIFIER = com.knottx.AppStoreManager;
474482
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
475483
SKIP_INSTALL = YES;

AppStoreManager/AppStoreManager.swift

Lines changed: 33 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//
2-
// AppStoreManager.swift
2+
// .swift
33
// AppStoreManager
44
//
55
// Created by Visarut Tippun on 8/1/21.
@@ -18,25 +18,15 @@ enum AppStoreDefaults: String {
1818
case storedSkippedVersion
1919
}
2020

21-
struct AppStoreResponse: Decodable {
22-
var resultCount:Int?
23-
var results:[AppStoreResult]
24-
}
25-
26-
struct AppStoreResult: Decodable {
27-
var trackId:Int?
28-
var version:String?
29-
}
30-
3121
public class AppStoreManager {
3222

3323
public static let shared = AppStoreManager()
3424

35-
var title:String = "New version available"
36-
var message:String? = "There is an update available. Please update to use this application."
25+
var title:String = AppStoreManagerConstant.alertTitle
26+
var message:String? = AppStoreManagerConstant.alertMessage
3727

38-
var skipButtonTitle:String = "Skip"
39-
var updateButtonTitle:String = "Update"
28+
var skipButtonTitle:String = AppStoreManagerConstant.skipButtonTitle
29+
var updateButtonTitle:String = AppStoreManagerConstant.updateButtonTitle
4030

4131
var lastVersionCheckDate:Date? {
4232
didSet{
@@ -67,44 +57,44 @@ public class AppStoreManager {
6757
return
6858
}
6959
let session = URLSession(configuration: .default)
70-
let task = session.dataTask(with: url) { (data, response, error) in
60+
let task = session.dataTask(with: url) { [weak self] (data, response, error) in
7161
if let er = error {
72-
self.log(er.localizedDescription)
62+
self?.log(er.localizedDescription)
7363
completion(nil)
7464
}
7565
if let safeData = data,
7666
let responseData = try? JSONDecoder().decode(AppStoreResponse.self, from: safeData),
7767
let result = responseData.results.first {
78-
self.log("AppStore ID: \(result.trackId ?? 0)")
79-
self.log("AppStore version: \(result.version ?? "")")
80-
self.appStoreResult = result
68+
self?.log("AppStore ID: \(result.trackId ?? 0)")
69+
self?.log("AppStore version: \(result.version ?? "")")
70+
self?.appStoreResult = result
8171
completion(result)
8272
}else{
83-
self.appStoreResult = nil
73+
self?.appStoreResult = nil
8474
completion(nil)
8575
}
8676
}
8777
task.resume()
8878
}
8979

9080
public func checkNewVersion(_ type:VersionCheckType, isAvailable: @escaping (Bool) -> ()) {
91-
self.getStoreVersion { (result) in
92-
if let currentInstalledVersion = self.currentInstalledVersion,
81+
self.getStoreVersion { [weak self] (result) in
82+
if let currentInstalledVersion = self?.currentInstalledVersion,
9383
let appStoreVersion = result?.version {
9484
switch currentInstalledVersion.compare(appStoreVersion, options: .numeric) {
9585
case .orderedAscending:
9686
switch type {
9787
case .immediately:
98-
self.lastVersionCheckDate = Date()
88+
self?.lastVersionCheckDate = Date()
9989
isAvailable(true)
10090
default:
101-
guard let lastVersionCheckDate = self.lastVersionCheckDate else {
102-
self.lastVersionCheckDate = Date()
91+
guard let lastVersionCheckDate = self?.lastVersionCheckDate else {
92+
self?.lastVersionCheckDate = Date()
10393
isAvailable(true)
10494
return
10595
}
10696
if Date.days(since: lastVersionCheckDate) >= type.rawValue {
107-
self.lastVersionCheckDate = Date()
97+
self?.lastVersionCheckDate = Date()
10898
isAvailable(true)
10999
}else{
110100
isAvailable(false)
@@ -120,42 +110,42 @@ public class AppStoreManager {
120110
}
121111

122112
public func checkNewVersionAndShowAlert(_ type:VersionCheckType,at vc:UIViewController, canSkip:Bool, preferredStyle: UIAlertController.Style = .alert) {
123-
self.getStoreVersion { (result) in
124-
if let currentInstalledVersion = self.currentInstalledVersion,
113+
self.getStoreVersion { [weak self] (result) in
114+
if let currentInstalledVersion = self?.currentInstalledVersion,
125115
let appStoreVersion = result?.version {
126116
switch currentInstalledVersion.compare(appStoreVersion, options: .numeric) {
127117
case .orderedAscending:
128-
self.lastVersionCheckDate = Date()
129-
self.showAlertUpdate(at: vc, canSkip: canSkip, preferredStyle: preferredStyle)
118+
self?.lastVersionCheckDate = Date()
119+
self?.showAlertUpdate(at: vc, canSkip: canSkip, preferredStyle: preferredStyle)
130120
case .orderedDescending, .orderedSame:
131121
break
132122
}
133123
}else{
134-
self.log("Can't get Version")
124+
self?.log("Can't get Version")
135125
}
136126
}
137127
}
138128

139129
//MARK: - Alert
140130

141131
public func configureAlert(title:String?, message: String?) {
142-
self.title = title ?? "New version available"
132+
self.title = title ?? AppStoreManagerConstant.alertTitle
143133
self.message = message
144134
}
145135

146136
public func configureAlert(updateButtonTitle:String?, skipButtonTitle:String?) {
147-
self.updateButtonTitle = updateButtonTitle ?? "Update"
148-
self.skipButtonTitle = skipButtonTitle ?? "Skip"
137+
self.updateButtonTitle = updateButtonTitle ?? AppStoreManagerConstant.updateButtonTitle
138+
self.skipButtonTitle = skipButtonTitle ?? AppStoreManagerConstant.skipButtonTitle
149139
}
150140

151141
public func showAlertUpdate(at vc:UIViewController, canSkip:Bool, preferredStyle:UIAlertController.Style = .alert) {
152-
DispatchQueue.main.async {
153-
let alertVc = UIAlertController(title: self.title, message: self.message, preferredStyle: preferredStyle)
154-
let skip = UIAlertAction(title: "Skip", style: .cancel) { (_) in
142+
DispatchQueue.main.async { [weak self] in
143+
let alertVc = UIAlertController(title: self?.title, message: self?.message, preferredStyle: preferredStyle)
144+
let skip = UIAlertAction(title: AppStoreManagerConstant.skipButtonTitle, style: .cancel) { (_) in
155145
//
156146
}
157-
let update = UIAlertAction(title: "Update", style: .default) { (_) in
158-
self.openAppStore()
147+
let update = UIAlertAction(title: AppStoreManagerConstant.updateButtonTitle, style: .default) { (_) in
148+
self?.openAppStore()
159149
}
160150
alertVc.addAction(update)
161151
if canSkip {
@@ -169,12 +159,12 @@ public class AppStoreManager {
169159
if let appStoreId = self.appStoreResult?.trackId {
170160
self.openAppStore(id: appStoreId)
171161
}else{
172-
self.getStoreVersion { (result) in
162+
self.getStoreVersion { [weak self] (result) in
173163
guard let appStoreId = result?.trackId else {
174-
self.log("Can't get an AppId")
164+
self?.log("Can't get an AppId")
175165
return
176166
}
177-
self.openAppStore(id: appStoreId)
167+
self?.openAppStore(id: appStoreId)
178168
}
179169
}
180170
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//
2+
// AppStoreManagerConstant.swift
3+
// AppStoreManager
4+
//
5+
// Created by Developer on 16/3/21.
6+
//
7+
8+
import Foundation
9+
10+
struct AppStoreManagerConstant {
11+
static let alertTitle = "New version available"
12+
static let alertMessage = "There is an update available. Please update to use this application."
13+
static let skipButtonTitle = "Skip"
14+
static let updateButtonTitle = "Update"
15+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//
2+
// AppStoreManagerModels.swift
3+
// AppStoreManager
4+
//
5+
// Created by Developer on 16/3/21.
6+
//
7+
8+
import Foundation
9+
10+
struct AppStoreResponse: Decodable {
11+
var resultCount:Int?
12+
var results:[AppStoreResult]
13+
}
14+
15+
struct AppStoreResult: Decodable {
16+
var trackId:Int?
17+
var version:String?
18+
}

0 commit comments

Comments
 (0)