Skip to content

Commit 306a6c6

Browse files
committed
Added a proper example
1 parent 33d4fed commit 306a6c6

File tree

6 files changed

+144
-119
lines changed

6 files changed

+144
-119
lines changed

Example/Screen/ScreenViewModel.swift

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
//
2+
// ScreenViewModel.swift
3+
// Example
4+
//
5+
// Created by Bruno Oliveira on 17/01/2019.
6+
// Copyright © 2019 Bruno Oliveira. All rights reserved.
7+
//
8+
9+
import Foundation
10+
11+
class ScreenViewModel {
12+
private var currentTime: Int
13+
private let initialTime: Int
14+
15+
init(time: Int) {
16+
self.currentTime = time
17+
self.initialTime = time
18+
}
19+
20+
func tick() -> Int {
21+
if (currentTime == -1) {
22+
currentTime = initialTime
23+
}
24+
currentTime -= 1
25+
return currentTime + 1
26+
}
27+
}

Example/Screen/ViewController.swift

+20
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,36 @@
77
//
88

99
import UIKit
10+
import RxTimer
11+
import RxSwift
12+
import Foundation
1013

1114
class ViewController: UIViewController {
1215
@IBOutlet weak var exampleLabel: UILabel!
1316

17+
private let viewModel = ScreenViewModel(time: 30)
18+
19+
let disposeBag = DisposeBag()
20+
1421
override func viewDidLoad() {
1522
super.viewDidLoad()
1623
}
1724

1825
override func viewDidAppear(_ animated: Bool) {
1926
super.viewDidAppear(animated)
27+
Timer
28+
.rx_timer
29+
.map { _ in
30+
self.viewModel.tick()
31+
}
32+
.subscribe(onNext: { time in
33+
self.exampleLabel.text = time.description
34+
})
35+
.disposed(by: disposeBag)
36+
}
37+
38+
override func viewDidDisappear(_ animated: Bool) {
39+
super.viewDidDisappear(animated)
2040

2141
}
2242
}

Podfile

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
project 'RxTimer.xcodeproj/'
22

33
use_frameworks!
4-
target 'RxTimer' do
4+
target 'Example' do
55
pod 'RxTimer', :path => '.'
6-
end
6+
end
7+
8+
target 'RxTimer' do
9+
pod 'RxSwift', '~> 4.x'
10+
end

Podfile.lock

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ PODS:
66
- RxSwift (~> 4.x)
77

88
DEPENDENCIES:
9+
- RxSwift (~> 4.x)
910
- RxTimer (from `.`)
1011

1112
SPEC REPOS:
@@ -22,6 +23,6 @@ SPEC CHECKSUMS:
2223
RxSwift: 5976ecd04fc2fefd648827c23de5e11157faa973
2324
RxTimer: ff8fc81ee78db9db3d64b261a11f1b1080810c8f
2425

25-
PODFILE CHECKSUM: 4364b32d1e434daa5ed3dbbf395e8b20fcb311aa
26+
PODFILE CHECKSUM: 904255a2f72af45ac2351fb2f95b602b83125bc3
2627

2728
COCOAPODS: 1.6.0.beta.2

RxTimer.xcodeproj/project.pbxproj

+89-25
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,18 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10-
A1D3B1DA719151334EB5CD29 /* Pods_RxTimer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F031826E142FA26E41F33DE /* Pods_RxTimer.framework */; };
10+
4B39C5B6521D74D9B73C587F /* Pods_RxTimer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BE2E56066EC75C735C17F37 /* Pods_RxTimer.framework */; };
11+
962623DCA125AC7CFD8C4D25 /* Pods_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5868C397564BD36FC34A6C6F /* Pods_Example.framework */; };
1112
B607DB6921F0D5F3009C1A93 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B607DB6821F0D5F3009C1A93 /* AppDelegate.swift */; };
1213
B607DB6B21F0D5F3009C1A93 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B607DB6A21F0D5F3009C1A93 /* ViewController.swift */; };
1314
B607DB6E21F0D5F3009C1A93 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B607DB6C21F0D5F3009C1A93 /* Main.storyboard */; };
1415
B607DB7021F0D5F4009C1A93 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B607DB6F21F0D5F4009C1A93 /* Assets.xcassets */; };
1516
B607DB7321F0D5F4009C1A93 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B607DB7121F0D5F4009C1A93 /* LaunchScreen.storyboard */; };
1617
B607DB8621F0D8E4009C1A93 /* RxTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = B607DB8421F0D8E4009C1A93 /* RxTimer.h */; settings = {ATTRIBUTES = (Public, ); }; };
1718
B607DB8921F0D8E4009C1A93 /* RxTimer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B607DB8221F0D8E4009C1A93 /* RxTimer.framework */; };
18-
B607DB8A21F0D8E4009C1A93 /* RxTimer.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B607DB8221F0D8E4009C1A93 /* RxTimer.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
1919
B607DB9021F0D9E4009C1A93 /* Timer+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = B607DB8F21F0D9E3009C1A93 /* Timer+Rx.swift */; };
20+
B6B914C521F0E17A0080B851 /* (null) in Embed Frameworks */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
21+
B6B914C721F0E3100080B851 /* ScreenViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6B914C621F0E3100080B851 /* ScreenViewModel.swift */; };
2022
/* End PBXBuildFile section */
2123

2224
/* Begin PBXContainerItemProxy section */
@@ -36,17 +38,20 @@
3638
dstPath = "";
3739
dstSubfolderSpec = 10;
3840
files = (
39-
B607DB8A21F0D8E4009C1A93 /* RxTimer.framework in Embed Frameworks */,
41+
B6B914C521F0E17A0080B851 /* (null) in Embed Frameworks */,
4042
);
4143
name = "Embed Frameworks";
4244
runOnlyForDeploymentPostprocessing = 0;
4345
};
4446
/* End PBXCopyFilesBuildPhase section */
4547

4648
/* Begin PBXFileReference section */
47-
3A3B4BC9F86B05286A514D38 /* Pods-RxTimer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxTimer.debug.xcconfig"; path = "Target Support Files/Pods-RxTimer/Pods-RxTimer.debug.xcconfig"; sourceTree = "<group>"; };
48-
3C131280AF0C43416D72B11E /* Pods-RxTimer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxTimer.release.xcconfig"; path = "Target Support Files/Pods-RxTimer/Pods-RxTimer.release.xcconfig"; sourceTree = "<group>"; };
49-
4F031826E142FA26E41F33DE /* Pods_RxTimer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RxTimer.framework; sourceTree = BUILT_PRODUCTS_DIR; };
49+
0BE2E56066EC75C735C17F37 /* Pods_RxTimer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RxTimer.framework; sourceTree = BUILT_PRODUCTS_DIR; };
50+
1BD1B7B49B5C6A010AD5151F /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.debug.xcconfig"; path = "Target Support Files/Pods-Example/Pods-Example.debug.xcconfig"; sourceTree = "<group>"; };
51+
47C699604F2F1CC8C1691A3B /* Pods-RxTimer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxTimer.debug.xcconfig"; path = "Target Support Files/Pods-RxTimer/Pods-RxTimer.debug.xcconfig"; sourceTree = "<group>"; };
52+
4F719C032191451F46529542 /* Pods-RxTimer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxTimer.release.xcconfig"; path = "Target Support Files/Pods-RxTimer/Pods-RxTimer.release.xcconfig"; sourceTree = "<group>"; };
53+
5868C397564BD36FC34A6C6F /* Pods_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
54+
819495C523CAFAC9187C4BC0 /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.release.xcconfig"; path = "Target Support Files/Pods-Example/Pods-Example.release.xcconfig"; sourceTree = "<group>"; };
5055
B607DB6521F0D5F3009C1A93 /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
5156
B607DB6821F0D5F3009C1A93 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
5257
B607DB6A21F0D5F3009C1A93 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
@@ -58,6 +63,7 @@
5863
B607DB8421F0D8E4009C1A93 /* RxTimer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RxTimer.h; sourceTree = "<group>"; };
5964
B607DB8521F0D8E4009C1A93 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
6065
B607DB8F21F0D9E3009C1A93 /* Timer+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Timer+Rx.swift"; sourceTree = "<group>"; };
66+
B6B914C621F0E3100080B851 /* ScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenViewModel.swift; sourceTree = "<group>"; };
6167
B6E320E621F0DD0700FB090B /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = SOURCE_ROOT; };
6268
B6E320E721F0DD0700FB090B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = SOURCE_ROOT; };
6369
/* End PBXFileReference section */
@@ -68,14 +74,15 @@
6874
buildActionMask = 2147483647;
6975
files = (
7076
B607DB8921F0D8E4009C1A93 /* RxTimer.framework in Frameworks */,
77+
962623DCA125AC7CFD8C4D25 /* Pods_Example.framework in Frameworks */,
7178
);
7279
runOnlyForDeploymentPostprocessing = 0;
7380
};
7481
B607DB7F21F0D8E4009C1A93 /* Frameworks */ = {
7582
isa = PBXFrameworksBuildPhase;
7683
buildActionMask = 2147483647;
7784
files = (
78-
A1D3B1DA719151334EB5CD29 /* Pods_RxTimer.framework in Frameworks */,
85+
4B39C5B6521D74D9B73C587F /* Pods_RxTimer.framework in Frameworks */,
7986
);
8087
runOnlyForDeploymentPostprocessing = 0;
8188
};
@@ -85,21 +92,32 @@
8592
1375E646F4A286BDE1C7611A /* Pods */ = {
8693
isa = PBXGroup;
8794
children = (
88-
3A3B4BC9F86B05286A514D38 /* Pods-RxTimer.debug.xcconfig */,
89-
3C131280AF0C43416D72B11E /* Pods-RxTimer.release.xcconfig */,
95+
47C699604F2F1CC8C1691A3B /* Pods-RxTimer.debug.xcconfig */,
96+
4F719C032191451F46529542 /* Pods-RxTimer.release.xcconfig */,
97+
1BD1B7B49B5C6A010AD5151F /* Pods-Example.debug.xcconfig */,
98+
819495C523CAFAC9187C4BC0 /* Pods-Example.release.xcconfig */,
9099
);
91100
path = Pods;
92101
sourceTree = "<group>";
93102
};
103+
3A9D42BA62F18CC7D8DE9811 /* Frameworks */ = {
104+
isa = PBXGroup;
105+
children = (
106+
0BE2E56066EC75C735C17F37 /* Pods_RxTimer.framework */,
107+
5868C397564BD36FC34A6C6F /* Pods_Example.framework */,
108+
);
109+
name = Frameworks;
110+
sourceTree = "<group>";
111+
};
94112
B607DB5C21F0D5F3009C1A93 = {
95113
isa = PBXGroup;
96114
children = (
97115
B607DB6721F0D5F3009C1A93 /* Example */,
98116
B607DB8321F0D8E4009C1A93 /* RxTimer */,
99-
B6E320E521F0DCEC00FB090B /* Metadata */,
100-
FBB11D46E3A28FFFE4EA2016 /* Frameworks */,
117+
B6B914C421F0E0CA0080B851 /* Metadata */,
101118
1375E646F4A286BDE1C7611A /* Pods */,
102119
B607DB6621F0D5F3009C1A93 /* Products */,
120+
3A9D42BA62F18CC7D8DE9811 /* Frameworks */,
103121
);
104122
sourceTree = "<group>";
105123
};
@@ -126,6 +144,7 @@
126144
isa = PBXGroup;
127145
children = (
128146
B607DB6A21F0D5F3009C1A93 /* ViewController.swift */,
147+
B6B914C621F0E3100080B851 /* ScreenViewModel.swift */,
129148
);
130149
path = Screen;
131150
sourceTree = "<group>";
@@ -167,21 +186,13 @@
167186
path = Sources;
168187
sourceTree = "<group>";
169188
};
170-
B6E320E521F0DCEC00FB090B /* Metadata */ = {
189+
B6B914C421F0E0CA0080B851 /* Metadata */ = {
171190
isa = PBXGroup;
172191
children = (
173192
B6E320E621F0DD0700FB090B /* LICENSE */,
174193
B6E320E721F0DD0700FB090B /* README.md */,
175194
);
176-
path = Metadata;
177-
sourceTree = "<group>";
178-
};
179-
FBB11D46E3A28FFFE4EA2016 /* Frameworks */ = {
180-
isa = PBXGroup;
181-
children = (
182-
4F031826E142FA26E41F33DE /* Pods_RxTimer.framework */,
183-
);
184-
name = Frameworks;
195+
name = Metadata;
185196
sourceTree = "<group>";
186197
};
187198
/* End PBXGroup section */
@@ -202,10 +213,12 @@
202213
isa = PBXNativeTarget;
203214
buildConfigurationList = B607DB7721F0D5F4009C1A93 /* Build configuration list for PBXNativeTarget "Example" */;
204215
buildPhases = (
216+
7A85C15A659C2AEB045B6154 /* [CP] Check Pods Manifest.lock */,
205217
B607DB6121F0D5F3009C1A93 /* Sources */,
206218
B607DB6221F0D5F3009C1A93 /* Frameworks */,
207219
B607DB6321F0D5F3009C1A93 /* Resources */,
208220
B607DB8E21F0D8E4009C1A93 /* Embed Frameworks */,
221+
EDD363DB87DD6FCB7CB525D2 /* [CP] Embed Pods Frameworks */,
209222
);
210223
buildRules = (
211224
);
@@ -221,7 +234,7 @@
221234
isa = PBXNativeTarget;
222235
buildConfigurationList = B607DB8B21F0D8E4009C1A93 /* Build configuration list for PBXNativeTarget "RxTimer" */;
223236
buildPhases = (
224-
8614A180FAD4207893325E38 /* [CP] Check Pods Manifest.lock */,
237+
6C7C2CF885BFC99ABDE928CC /* [CP] Check Pods Manifest.lock */,
225238
B607DB7D21F0D8E4009C1A93 /* Headers */,
226239
B607DB7E21F0D8E4009C1A93 /* Sources */,
227240
B607DB7F21F0D8E4009C1A93 /* Frameworks */,
@@ -295,7 +308,7 @@
295308
/* End PBXResourcesBuildPhase section */
296309

297310
/* Begin PBXShellScriptBuildPhase section */
298-
8614A180FAD4207893325E38 /* [CP] Check Pods Manifest.lock */ = {
311+
6C7C2CF885BFC99ABDE928CC /* [CP] Check Pods Manifest.lock */ = {
299312
isa = PBXShellScriptBuildPhase;
300313
buildActionMask = 2147483647;
301314
files = (
@@ -317,6 +330,54 @@
317330
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
318331
showEnvVarsInLog = 0;
319332
};
333+
7A85C15A659C2AEB045B6154 /* [CP] Check Pods Manifest.lock */ = {
334+
isa = PBXShellScriptBuildPhase;
335+
buildActionMask = 2147483647;
336+
files = (
337+
);
338+
inputFileListPaths = (
339+
);
340+
inputPaths = (
341+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
342+
"${PODS_ROOT}/Manifest.lock",
343+
);
344+
name = "[CP] Check Pods Manifest.lock";
345+
outputFileListPaths = (
346+
);
347+
outputPaths = (
348+
"$(DERIVED_FILE_DIR)/Pods-Example-checkManifestLockResult.txt",
349+
);
350+
runOnlyForDeploymentPostprocessing = 0;
351+
shellPath = /bin/sh;
352+
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
353+
showEnvVarsInLog = 0;
354+
};
355+
EDD363DB87DD6FCB7CB525D2 /* [CP] Embed Pods Frameworks */ = {
356+
isa = PBXShellScriptBuildPhase;
357+
buildActionMask = 2147483647;
358+
files = (
359+
);
360+
inputFileListPaths = (
361+
);
362+
inputPaths = (
363+
"${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks.sh",
364+
"${BUILT_PRODUCTS_DIR}/RxAtomic/RxAtomic.framework",
365+
"${BUILT_PRODUCTS_DIR}/RxSwift/RxSwift.framework",
366+
"${BUILT_PRODUCTS_DIR}/RxTimer/RxTimer.framework",
367+
);
368+
name = "[CP] Embed Pods Frameworks";
369+
outputFileListPaths = (
370+
);
371+
outputPaths = (
372+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxAtomic.framework",
373+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxSwift.framework",
374+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxTimer.framework",
375+
);
376+
runOnlyForDeploymentPostprocessing = 0;
377+
shellPath = /bin/sh;
378+
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks.sh\"\n";
379+
showEnvVarsInLog = 0;
380+
};
320381
/* End PBXShellScriptBuildPhase section */
321382

322383
/* Begin PBXSourcesBuildPhase section */
@@ -325,6 +386,7 @@
325386
buildActionMask = 2147483647;
326387
files = (
327388
B607DB6B21F0D5F3009C1A93 /* ViewController.swift in Sources */,
389+
B6B914C721F0E3100080B851 /* ScreenViewModel.swift in Sources */,
328390
B607DB6921F0D5F3009C1A93 /* AppDelegate.swift in Sources */,
329391
);
330392
runOnlyForDeploymentPostprocessing = 0;
@@ -485,6 +547,7 @@
485547
};
486548
B607DB7821F0D5F4009C1A93 /* Debug */ = {
487549
isa = XCBuildConfiguration;
550+
baseConfigurationReference = 1BD1B7B49B5C6A010AD5151F /* Pods-Example.debug.xcconfig */;
488551
buildSettings = {
489552
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
490553
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
@@ -503,6 +566,7 @@
503566
};
504567
B607DB7921F0D5F4009C1A93 /* Release */ = {
505568
isa = XCBuildConfiguration;
569+
baseConfigurationReference = 819495C523CAFAC9187C4BC0 /* Pods-Example.release.xcconfig */;
506570
buildSettings = {
507571
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
508572
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
@@ -521,7 +585,7 @@
521585
};
522586
B607DB8C21F0D8E4009C1A93 /* Debug */ = {
523587
isa = XCBuildConfiguration;
524-
baseConfigurationReference = 3A3B4BC9F86B05286A514D38 /* Pods-RxTimer.debug.xcconfig */;
588+
baseConfigurationReference = 47C699604F2F1CC8C1691A3B /* Pods-RxTimer.debug.xcconfig */;
525589
buildSettings = {
526590
CLANG_ENABLE_MODULES = YES;
527591
CODE_SIGN_IDENTITY = "";
@@ -551,7 +615,7 @@
551615
};
552616
B607DB8D21F0D8E4009C1A93 /* Release */ = {
553617
isa = XCBuildConfiguration;
554-
baseConfigurationReference = 3C131280AF0C43416D72B11E /* Pods-RxTimer.release.xcconfig */;
618+
baseConfigurationReference = 4F719C032191451F46529542 /* Pods-RxTimer.release.xcconfig */;
555619
buildSettings = {
556620
CLANG_ENABLE_MODULES = YES;
557621
CODE_SIGN_IDENTITY = "";

0 commit comments

Comments
 (0)