Skip to content

Commit c705868

Browse files
Merge pull request #475 from mixpanel/archive-refactoring-sqlite
Replace NSKeyedArchiver with SQLite for offline tracking
2 parents f78d0f4 + 6ee1f2c commit c705868

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+3401
-3030
lines changed

.swiftlint.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,4 @@ disabled_rules:
6161
- type_body_length
6262
- variable_name
6363
- trailing_whitespace
64+
- unused_optional_binding

Mixpanel-swift.podspec

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'Mixpanel-swift'
3-
s.version = '3.0.0.beta.2'
3+
s.version = '3.0.0.beta.4'
44
s.module_name = 'Mixpanel'
55
s.license = 'Apache License, Version 2.0'
66
s.summary = 'Mixpanel tracking library for iOS (Swift)'
@@ -18,9 +18,9 @@ Pod::Spec.new do |s|
1818
base_source_files = ['Sources/Network.swift', 'Sources/FlushRequest.swift', 'Sources/PrintLogging.swift', 'Sources/FileLogging.swift',
1919
'Sources/Logger.swift', 'Sources/JSONHandler.swift', 'Sources/Error.swift', 'Sources/AutomaticProperties.swift',
2020
'Sources/Constants.swift', 'Sources/MixpanelType.swift', 'Sources/Mixpanel.swift', 'Sources/MixpanelInstance.swift',
21-
'Sources/Persistence.swift', 'Sources/Flush.swift','Sources/Track.swift', 'Sources/People.swift', 'Sources/AutomaticEvents.swift',
21+
'Sources/Flush.swift','Sources/Track.swift', 'Sources/People.swift', 'Sources/AutomaticEvents.swift',
2222
'Sources/Group.swift',
23-
'Sources/ReadWriteLock.swift', 'Sources/SessionMetadata.swift']
23+
'Sources/ReadWriteLock.swift', 'Sources/SessionMetadata.swift', 'Sources/MPDB.swift', 'Sources/MixpanelPersistence.swift']
2424
s.tvos.deployment_target = '9.0'
2525
s.tvos.frameworks = 'UIKit', 'Foundation'
2626
s.tvos.pod_target_xcconfig = {

Mixpanel.xcodeproj/project.pbxproj

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@
1313
673ABE3A21360CBE00B1784B /* Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 673ABE3921360CBE00B1784B /* Group.swift */; };
1414
67FF65E421878414005161FA /* Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 673ABE3921360CBE00B1784B /* Group.swift */; };
1515
67FF65E521878416005161FA /* Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 673ABE3921360CBE00B1784B /* Group.swift */; };
16+
8625BEBB26D045CE0009BAA9 /* MPDB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8625BEBA26D045CE0009BAA9 /* MPDB.swift */; };
17+
8625BEBC26D045CE0009BAA9 /* MPDB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8625BEBA26D045CE0009BAA9 /* MPDB.swift */; };
18+
8625BEBD26D045CE0009BAA9 /* MPDB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8625BEBA26D045CE0009BAA9 /* MPDB.swift */; };
19+
8625BEBE26D045CE0009BAA9 /* MPDB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8625BEBA26D045CE0009BAA9 /* MPDB.swift */; };
20+
868550AC2699096F001FCDDC /* MixpanelPersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 868550AB2699096F001FCDDC /* MixpanelPersistence.swift */; };
21+
868550AD2699096F001FCDDC /* MixpanelPersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 868550AB2699096F001FCDDC /* MixpanelPersistence.swift */; };
22+
868550AE2699096F001FCDDC /* MixpanelPersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 868550AB2699096F001FCDDC /* MixpanelPersistence.swift */; };
23+
868550AF2699096F001FCDDC /* MixpanelPersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 868550AB2699096F001FCDDC /* MixpanelPersistence.swift */; };
1624
86F86EB7224439D300B69832 /* Mixpanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E115948A1CFF1538007F8B4F /* Mixpanel.swift */; };
1725
86F86EB8224439D300B69832 /* MixpanelInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E115948D1D000709007F8B4F /* MixpanelInstance.swift */; };
1826
86F86EB9224439DC00B69832 /* AutomaticProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1D335CF1D3059A800E68E12 /* AutomaticProperties.swift */; };
@@ -21,7 +29,6 @@
2129
86F86EBC224439F100B69832 /* PrintLogging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51DD56801D306B7B0045D3DB /* PrintLogging.swift */; };
2230
86F86EBD224439F500B69832 /* Flush.swift in Sources */ = {isa = PBXBuildFile; fileRef = E115949E1D01BE14007F8B4F /* Flush.swift */; };
2331
86F86EBE224439FA00B69832 /* Network.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11594961D006022007F8B4F /* Network.swift */; };
24-
86F86EBF22443A0000B69832 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11594921D0036E1007F8B4F /* Persistence.swift */; };
2532
86F86EC022443A0800B69832 /* MixpanelType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E165228E1D6781DF000D5949 /* MixpanelType.swift */; };
2633
86F86EC122443A0E00B69832 /* JSONHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11594981D01689F007F8B4F /* JSONHandler.swift */; };
2734
86F86EC222443A1300B69832 /* Track.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11594A01D01C597007F8B4F /* Track.swift */; };
@@ -38,7 +45,6 @@
3845
E10D118D1EC0F30900195CCD /* AutomaticEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = E151FA371E70DFB5002EF53D /* AutomaticEvents.swift */; };
3946
E115948B1CFF1538007F8B4F /* Mixpanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E115948A1CFF1538007F8B4F /* Mixpanel.swift */; };
4047
E115948E1D000709007F8B4F /* MixpanelInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E115948D1D000709007F8B4F /* MixpanelInstance.swift */; };
41-
E11594931D0036E1007F8B4F /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11594921D0036E1007F8B4F /* Persistence.swift */; };
4248
E11594971D006022007F8B4F /* Network.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11594961D006022007F8B4F /* Network.swift */; };
4349
E11594991D01689F007F8B4F /* JSONHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11594981D01689F007F8B4F /* JSONHandler.swift */; };
4450
E115949F1D01BE14007F8B4F /* Flush.swift in Sources */ = {isa = PBXBuildFile; fileRef = E115949E1D01BE14007F8B4F /* Flush.swift */; };
@@ -48,7 +54,6 @@
4854
E12782BD1D4AB5CB0025FB05 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51DD56791D306B740045D3DB /* Logger.swift */; };
4955
E12782BE1D4AB5CB0025FB05 /* Mixpanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E115948A1CFF1538007F8B4F /* Mixpanel.swift */; };
5056
E12782BF1D4AB5CB0025FB05 /* MixpanelInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E115948D1D000709007F8B4F /* MixpanelInstance.swift */; };
51-
E12782C01D4AB5CB0025FB05 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11594921D0036E1007F8B4F /* Persistence.swift */; };
5257
E12782C11D4AB5CB0025FB05 /* Network.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11594961D006022007F8B4F /* Network.swift */; };
5358
E12782C21D4AB5CB0025FB05 /* JSONHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11594981D01689F007F8B4F /* JSONHandler.swift */; };
5459
E12782C31D4AB5CB0025FB05 /* Flush.swift in Sources */ = {isa = PBXBuildFile; fileRef = E115949E1D01BE14007F8B4F /* Flush.swift */; };
@@ -86,7 +91,6 @@
8691
E1F15FDE1E64B60A00391AE3 /* MixpanelType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E165228E1D6781DF000D5949 /* MixpanelType.swift */; };
8792
E1F15FDF1E64B60D00391AE3 /* Mixpanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E115948A1CFF1538007F8B4F /* Mixpanel.swift */; };
8893
E1F15FE01E64B60D00391AE3 /* MixpanelInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E115948D1D000709007F8B4F /* MixpanelInstance.swift */; };
89-
E1F15FE11E64B60D00391AE3 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11594921D0036E1007F8B4F /* Persistence.swift */; };
9094
E1F15FE21E64B60D00391AE3 /* Flush.swift in Sources */ = {isa = PBXBuildFile; fileRef = E115949E1D01BE14007F8B4F /* Flush.swift */; };
9195
E1F15FE31E64B60D00391AE3 /* Track.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11594A01D01C597007F8B4F /* Track.swift */; };
9296
E1F15FE41E64B60D00391AE3 /* People.swift in Sources */ = {isa = PBXBuildFile; fileRef = E15FF7C71D0435670076CDE3 /* People.swift */; };
@@ -98,13 +102,14 @@
98102
51DD56801D306B7B0045D3DB /* PrintLogging.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrintLogging.swift; sourceTree = "<group>"; };
99103
51DD56811D306B7B0045D3DB /* FileLogging.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileLogging.swift; sourceTree = "<group>"; };
100104
673ABE3921360CBE00B1784B /* Group.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Group.swift; sourceTree = "<group>"; };
105+
8625BEBA26D045CE0009BAA9 /* MPDB.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MPDB.swift; sourceTree = "<group>"; };
106+
868550AB2699096F001FCDDC /* MixpanelPersistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MixpanelPersistence.swift; sourceTree = "<group>"; };
101107
86F86E81224404BD00B69832 /* Mixpanel.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Mixpanel.framework; sourceTree = BUILT_PRODUCTS_DIR; };
102108
BB9614161F3BB87700C3EF3E /* ReadWriteLock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadWriteLock.swift; sourceTree = "<group>"; };
103109
E115947D1CFF1491007F8B4F /* Mixpanel.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Mixpanel.framework; sourceTree = BUILT_PRODUCTS_DIR; };
104110
E11594821CFF1491007F8B4F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
105111
E115948A1CFF1538007F8B4F /* Mixpanel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mixpanel.swift; sourceTree = "<group>"; };
106112
E115948D1D000709007F8B4F /* MixpanelInstance.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MixpanelInstance.swift; sourceTree = "<group>"; };
107-
E11594921D0036E1007F8B4F /* Persistence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; };
108113
E11594961D006022007F8B4F /* Network.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Network.swift; sourceTree = "<group>"; };
109114
E11594981D01689F007F8B4F /* JSONHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JSONHandler.swift; sourceTree = "<group>"; };
110115
E115949E1D01BE14007F8B4F /* Flush.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Flush.swift; sourceTree = "<group>"; };
@@ -215,7 +220,6 @@
215220
E189D8FA1D5A692A007F3F29 /* Utilities */,
216221
E115948A1CFF1538007F8B4F /* Mixpanel.swift */,
217222
E115948D1D000709007F8B4F /* MixpanelInstance.swift */,
218-
E11594921D0036E1007F8B4F /* Persistence.swift */,
219223
E115949E1D01BE14007F8B4F /* Flush.swift */,
220224
E11594A01D01C597007F8B4F /* Track.swift */,
221225
E15FF7C71D0435670076CDE3 /* People.swift */,
@@ -258,8 +262,10 @@
258262
E151FA371E70DFB5002EF53D /* AutomaticEvents.swift */,
259263
E1D335CD1D30578E00E68E12 /* Constants.swift */,
260264
E165228E1D6781DF000D5949 /* MixpanelType.swift */,
265+
8625BEBA26D045CE0009BAA9 /* MPDB.swift */,
261266
BB9614161F3BB87700C3EF3E /* ReadWriteLock.swift */,
262267
E190522C1F9FC1BC00900E5D /* SessionMetadata.swift */,
268+
868550AB2699096F001FCDDC /* MixpanelPersistence.swift */,
263269
);
264270
name = Utilities;
265271
sourceTree = "<group>";
@@ -484,13 +490,14 @@
484490
86F86EC622443A3100B69832 /* Error.swift in Sources */,
485491
86F86EC522443A2C00B69832 /* People.swift in Sources */,
486492
86F86EC422443A2300B69832 /* ReadWriteLock.swift in Sources */,
493+
8625BEBE26D045CE0009BAA9 /* MPDB.swift in Sources */,
487494
86F86EC222443A1300B69832 /* Track.swift in Sources */,
488495
86F86EC122443A0E00B69832 /* JSONHandler.swift in Sources */,
489496
86F86EC022443A0800B69832 /* MixpanelType.swift in Sources */,
490-
86F86EBF22443A0000B69832 /* Persistence.swift in Sources */,
491497
86F86EBE224439FA00B69832 /* Network.swift in Sources */,
492498
86F86EBD224439F500B69832 /* Flush.swift in Sources */,
493499
86F86EBC224439F100B69832 /* PrintLogging.swift in Sources */,
500+
868550AF2699096F001FCDDC /* MixpanelPersistence.swift in Sources */,
494501
86F86EBB224439EB00B69832 /* FlushRequest.swift in Sources */,
495502
86F86EBA224439E300B69832 /* Logger.swift in Sources */,
496503
86F86EB9224439DC00B69832 /* AutomaticProperties.swift in Sources */,
@@ -509,7 +516,6 @@
509516
E151FA381E70DFB5002EF53D /* AutomaticEvents.swift in Sources */,
510517
E1D335CE1D30578E00E68E12 /* Constants.swift in Sources */,
511518
E115949F1D01BE14007F8B4F /* Flush.swift in Sources */,
512-
E11594931D0036E1007F8B4F /* Persistence.swift in Sources */,
513519
E189D8F61D54ECBF007F3F29 /* Decide.swift in Sources */,
514520
E11594971D006022007F8B4F /* Network.swift in Sources */,
515521
E15FF7C81D0435670076CDE3 /* People.swift in Sources */,
@@ -521,6 +527,8 @@
521527
E165228F1D6781DF000D5949 /* MixpanelType.swift in Sources */,
522528
BB9614171F3BB87700C3EF3E /* ReadWriteLock.swift in Sources */,
523529
E190522D1F9FC1BC00900E5D /* SessionMetadata.swift in Sources */,
530+
8625BEBB26D045CE0009BAA9 /* MPDB.swift in Sources */,
531+
868550AC2699096F001FCDDC /* MixpanelPersistence.swift in Sources */,
524532
E1982BFF1D0AC2E2006B7330 /* Error.swift in Sources */,
525533
51DD56841D306B7B0045D3DB /* FileLogging.swift in Sources */,
526534
E1D335CC1D303A0D00E68E12 /* FlushRequest.swift in Sources */,
@@ -540,14 +548,15 @@
540548
E12782BD1D4AB5CB0025FB05 /* Logger.swift in Sources */,
541549
E12782BE1D4AB5CB0025FB05 /* Mixpanel.swift in Sources */,
542550
E12782BF1D4AB5CB0025FB05 /* MixpanelInstance.swift in Sources */,
543-
E12782C01D4AB5CB0025FB05 /* Persistence.swift in Sources */,
544551
E12782C11D4AB5CB0025FB05 /* Network.swift in Sources */,
552+
8625BEBC26D045CE0009BAA9 /* MPDB.swift in Sources */,
545553
E12782C21D4AB5CB0025FB05 /* JSONHandler.swift in Sources */,
546554
E12782C31D4AB5CB0025FB05 /* Flush.swift in Sources */,
547555
E12782C41D4AB5CB0025FB05 /* FlushRequest.swift in Sources */,
548556
E12782C51D4AB5CB0025FB05 /* Track.swift in Sources */,
549557
E12782C61D4AB5CB0025FB05 /* People.swift in Sources */,
550558
E19052001F9548F000900E5D /* ReadWriteLock.swift in Sources */,
559+
868550AD2699096F001FCDDC /* MixpanelPersistence.swift in Sources */,
551560
E12782C71D4AB5CB0025FB05 /* Error.swift in Sources */,
552561
E16522901D67D421000D5949 /* MixpanelType.swift in Sources */,
553562
E12782C81D4AB5CB0025FB05 /* Constants.swift in Sources */,
@@ -568,13 +577,14 @@
568577
E1F15FD91E64B60600391AE3 /* Logger.swift in Sources */,
569578
E1F15FD61E64B5FC00391AE3 /* FlushRequest.swift in Sources */,
570579
E1F15FD71E64B60200391AE3 /* PrintLogging.swift in Sources */,
580+
8625BEBD26D045CE0009BAA9 /* MPDB.swift in Sources */,
571581
E1F15FE21E64B60D00391AE3 /* Flush.swift in Sources */,
572582
E1F15FD51E64B5F800391AE3 /* Network.swift in Sources */,
573-
E1F15FE11E64B60D00391AE3 /* Persistence.swift in Sources */,
574583
E1F15FDE1E64B60A00391AE3 /* MixpanelType.swift in Sources */,
575584
E1F15FDA1E64B60A00391AE3 /* JSONHandler.swift in Sources */,
576585
E1F15FE31E64B60D00391AE3 /* Track.swift in Sources */,
577586
E19052011F9548F000900E5D /* ReadWriteLock.swift in Sources */,
587+
868550AE2699096F001FCDDC /* MixpanelPersistence.swift in Sources */,
578588
E1F15FE41E64B60D00391AE3 /* People.swift in Sources */,
579589
E1F15FDB1E64B60A00391AE3 /* Error.swift in Sources */,
580590
E1F15FD81E64B60200391AE3 /* FileLogging.swift in Sources */,

0 commit comments

Comments
 (0)