Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Mixpanel-swift.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ Pod::Spec.new do |s|
base_source_files = ['Sources/Network.swift', 'Sources/FlushRequest.swift', 'Sources/PrintLogging.swift', 'Sources/FileLogging.swift',
'Sources/MixpanelLogger.swift', 'Sources/JSONHandler.swift', 'Sources/Error.swift', 'Sources/AutomaticProperties.swift',
'Sources/Constants.swift', 'Sources/MixpanelType.swift', 'Sources/Mixpanel.swift', 'Sources/MixpanelInstance.swift',
'Sources/Flush.swift','Sources/Track.swift', 'Sources/People.swift', 'Sources/AutomaticEvents.swift',
'Sources/Group.swift',
'Sources/ReadWriteLock.swift', 'Sources/SessionMetadata.swift', 'Sources/MPDB.swift', 'Sources/MixpanelPersistence.swift', 'Sources/Data+Compression.swift']
'Sources/Flush.swift', 'Sources/Track.swift', 'Sources/People.swift', 'Sources/AutomaticEvents.swift',
'Sources/Group.swift', 'Sources/ReadWriteLock.swift', 'Sources/SessionMetadata.swift', 'Sources/MPDB.swift', 'Sources/MixpanelPersistence.swift',
'Sources/Data+Compression.swift', 'Sources/MixpanelConfig.swift', 'Sources/FeatureFlags.swift']
s.tvos.deployment_target = '11.0'
s.tvos.frameworks = 'UIKit', 'Foundation'
s.tvos.pod_target_xcconfig = {
Expand Down
20 changes: 20 additions & 0 deletions Mixpanel.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@
objects = {

/* Begin PBXBuildFile section */
171E4C122DAF108400B7CB11 /* FeatureFlags.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171E4C112DAF108400B7CB11 /* FeatureFlags.swift */; };
171E4C132DAF108400B7CB11 /* FeatureFlags.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171E4C112DAF108400B7CB11 /* FeatureFlags.swift */; };
171E4C142DAF108400B7CB11 /* FeatureFlags.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171E4C112DAF108400B7CB11 /* FeatureFlags.swift */; };
171E4C152DAF108400B7CB11 /* FeatureFlags.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171E4C112DAF108400B7CB11 /* FeatureFlags.swift */; };
171E4C172DAF2B3100B7CB11 /* MixpanelConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171E4C162DAF2B3100B7CB11 /* MixpanelConfig.swift */; };
171E4C182DAF2B3100B7CB11 /* MixpanelConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171E4C162DAF2B3100B7CB11 /* MixpanelConfig.swift */; };
171E4C192DAF2B3100B7CB11 /* MixpanelConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171E4C162DAF2B3100B7CB11 /* MixpanelConfig.swift */; };
171E4C1A2DAF2B3100B7CB11 /* MixpanelConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171E4C162DAF2B3100B7CB11 /* MixpanelConfig.swift */; };
17C6547A2BB1F15C00C8A126 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 1728208D2BA8BDE4002CD973 /* PrivacyInfo.xcprivacy */; };
17C6547B2BB1F16000C8A126 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 1728208D2BA8BDE4002CD973 /* PrivacyInfo.xcprivacy */; };
17C6547C2BB1F16400C8A126 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 1728208D2BA8BDE4002CD973 /* PrivacyInfo.xcprivacy */; };
Expand Down Expand Up @@ -103,6 +111,8 @@
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
171E4C112DAF108400B7CB11 /* FeatureFlags.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeatureFlags.swift; sourceTree = "<group>"; };
171E4C162DAF2B3100B7CB11 /* MixpanelConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MixpanelConfig.swift; sourceTree = "<group>"; };
1728208D2BA8BDE4002CD973 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = Sources/Mixpanel/PrivacyInfo.xcprivacy; sourceTree = SOURCE_ROOT; };
51DD56791D306B740045D3DB /* MixpanelLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MixpanelLogger.swift; sourceTree = "<group>"; };
51DD56801D306B7B0045D3DB /* PrintLogging.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrintLogging.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -226,12 +236,14 @@
E11594881CFF14D3007F8B4F /* Source */ = {
isa = PBXGroup;
children = (
171E4C162DAF2B3100B7CB11 /* MixpanelConfig.swift */,
17C654792BB1EF6700C8A126 /* Mixpanel */,
E189D8FB1D5A6943007F3F29 /* Networking */,
51DD56771D306B620045D3DB /* Log */,
E189D8FA1D5A692A007F3F29 /* Utilities */,
E115948A1CFF1538007F8B4F /* Mixpanel.swift */,
E115948D1D000709007F8B4F /* MixpanelInstance.swift */,
171E4C112DAF108400B7CB11 /* FeatureFlags.swift */,
E115949E1D01BE14007F8B4F /* Flush.swift */,
E11594A01D01C597007F8B4F /* Track.swift */,
E15FF7C71D0435670076CDE3 /* People.swift */,
Expand Down Expand Up @@ -488,13 +500,15 @@
86F86EC722443A3C00B69832 /* FileLogging.swift in Sources */,
86F86EC622443A3100B69832 /* Error.swift in Sources */,
86F86EC522443A2C00B69832 /* People.swift in Sources */,
171E4C172DAF2B3100B7CB11 /* MixpanelConfig.swift in Sources */,
86F86EC422443A2300B69832 /* ReadWriteLock.swift in Sources */,
8625BEBE26D045CE0009BAA9 /* MPDB.swift in Sources */,
95ECF06B2C9B851C006364D2 /* Data+Compression.swift in Sources */,
86F86EC222443A1300B69832 /* Track.swift in Sources */,
86F86EC122443A0E00B69832 /* JSONHandler.swift in Sources */,
86F86EC022443A0800B69832 /* MixpanelType.swift in Sources */,
86F86EBE224439FA00B69832 /* Network.swift in Sources */,
171E4C142DAF108400B7CB11 /* FeatureFlags.swift in Sources */,
86F86EBD224439F500B69832 /* Flush.swift in Sources */,
86F86EBC224439F100B69832 /* PrintLogging.swift in Sources */,
868550AF2699096F001FCDDC /* MixpanelPersistence.swift in Sources */,
Expand All @@ -517,13 +531,15 @@
E1D335CE1D30578E00E68E12 /* Constants.swift in Sources */,
E115949F1D01BE14007F8B4F /* Flush.swift in Sources */,
E11594971D006022007F8B4F /* Network.swift in Sources */,
171E4C182DAF2B3100B7CB11 /* MixpanelConfig.swift in Sources */,
E15FF7C81D0435670076CDE3 /* People.swift in Sources */,
673ABE3A21360CBE00B1784B /* Group.swift in Sources */,
95ECF0682C9B851A006364D2 /* Data+Compression.swift in Sources */,
E11594A11D01C597007F8B4F /* Track.swift in Sources */,
E11594991D01689F007F8B4F /* JSONHandler.swift in Sources */,
E1D335D01D3059A800E68E12 /* AutomaticProperties.swift in Sources */,
51DD567C1D306B740045D3DB /* MixpanelLogger.swift in Sources */,
171E4C122DAF108400B7CB11 /* FeatureFlags.swift in Sources */,
E165228F1D6781DF000D5949 /* MixpanelType.swift in Sources */,
BB9614171F3BB87700C3EF3E /* ReadWriteLock.swift in Sources */,
E190522D1F9FC1BC00900E5D /* SessionMetadata.swift in Sources */,
Expand All @@ -546,13 +562,15 @@
E12782BD1D4AB5CB0025FB05 /* MixpanelLogger.swift in Sources */,
E12782BE1D4AB5CB0025FB05 /* Mixpanel.swift in Sources */,
E12782BF1D4AB5CB0025FB05 /* MixpanelInstance.swift in Sources */,
171E4C192DAF2B3100B7CB11 /* MixpanelConfig.swift in Sources */,
E12782C11D4AB5CB0025FB05 /* Network.swift in Sources */,
8625BEBC26D045CE0009BAA9 /* MPDB.swift in Sources */,
95ECF0692C9B851B006364D2 /* Data+Compression.swift in Sources */,
E12782C21D4AB5CB0025FB05 /* JSONHandler.swift in Sources */,
E12782C31D4AB5CB0025FB05 /* Flush.swift in Sources */,
E12782C41D4AB5CB0025FB05 /* FlushRequest.swift in Sources */,
E12782C51D4AB5CB0025FB05 /* Track.swift in Sources */,
171E4C132DAF108400B7CB11 /* FeatureFlags.swift in Sources */,
E12782C61D4AB5CB0025FB05 /* People.swift in Sources */,
E19052001F9548F000900E5D /* ReadWriteLock.swift in Sources */,
868550AD2699096F001FCDDC /* MixpanelPersistence.swift in Sources */,
Expand All @@ -575,13 +593,15 @@
E1F15FDC1E64B60A00391AE3 /* AutomaticProperties.swift in Sources */,
E1F15FD91E64B60600391AE3 /* MixpanelLogger.swift in Sources */,
E1F15FD61E64B5FC00391AE3 /* FlushRequest.swift in Sources */,
171E4C1A2DAF2B3100B7CB11 /* MixpanelConfig.swift in Sources */,
E1F15FD71E64B60200391AE3 /* PrintLogging.swift in Sources */,
8625BEBD26D045CE0009BAA9 /* MPDB.swift in Sources */,
95ECF06A2C9B851B006364D2 /* Data+Compression.swift in Sources */,
E1F15FE21E64B60D00391AE3 /* Flush.swift in Sources */,
E1F15FD51E64B5F800391AE3 /* Network.swift in Sources */,
E1F15FDE1E64B60A00391AE3 /* MixpanelType.swift in Sources */,
E1F15FDA1E64B60A00391AE3 /* JSONHandler.swift in Sources */,
171E4C152DAF108400B7CB11 /* FeatureFlags.swift in Sources */,
E1F15FE31E64B60D00391AE3 /* Track.swift in Sources */,
E19052011F9548F000900E5D /* ReadWriteLock.swift in Sources */,
868550AE2699096F001FCDDC /* MixpanelPersistence.swift in Sources */,
Expand Down
4 changes: 4 additions & 0 deletions MixpanelDemo/MixpanelDemo.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
objects = {

/* Begin PBXBuildFile section */
171E4C1C2DB055BC00B7CB11 /* MixpanelFeatureFlagTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 171E4C1B2DB055A900B7CB11 /* MixpanelFeatureFlagTests.swift */; };
51DD568A1D3077390045D3DB /* LoggerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51DD56891D3077390045D3DB /* LoggerTests.swift */; };
60CB587123D77F9200F1632B /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60CB587023D77F9200F1632B /* LoginViewController.swift */; };
671EECAF21432E5F006DD9FA /* GroupsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 671EECAE21432E5F006DD9FA /* GroupsViewController.swift */; };
Expand Down Expand Up @@ -249,6 +250,7 @@
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
171E4C1B2DB055A900B7CB11 /* MixpanelFeatureFlagTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MixpanelFeatureFlagTests.swift; sourceTree = "<group>"; };
51DD56891D3077390045D3DB /* LoggerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggerTests.swift; sourceTree = "<group>"; };
60CB587023D77F9200F1632B /* LoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = "<group>"; };
671EECAE21432E5F006DD9FA /* GroupsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupsViewController.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -590,6 +592,7 @@
E15FF7EA1D0461130076CDE3 /* MixpanelDemoTests */ = {
isa = PBXGroup;
children = (
171E4C1B2DB055A900B7CB11 /* MixpanelFeatureFlagTests.swift */,
E124061F1D249B2500383635 /* MixpanelBaseTests.swift */,
E15FF7EB1D0461130076CDE3 /* MixpanelDemoTests.swift */,
E1C61EB91D22F6470056C56C /* MixpanelPeopleTests.swift */,
Expand Down Expand Up @@ -1114,6 +1117,7 @@
E12406201D249B2500383635 /* MixpanelBaseTests.swift in Sources */,
E17AA05E1EC6234E0066EFE8 /* MixpanelAutomaticEventsTests.swift in Sources */,
E15FF7EC1D0461130076CDE3 /* MixpanelDemoTests.swift in Sources */,
171E4C1C2DB055BC00B7CB11 /* MixpanelFeatureFlagTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
4 changes: 2 additions & 2 deletions MixpanelDemo/MixpanelDemo/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate {

func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
var ADD_YOUR_MIXPANEL_TOKEN_BELOW_🛠🛠🛠🛠🛠🛠: String
Mixpanel.initialize(token: "MIXPANEL_TOKEN", trackAutomaticEvents: true)
let mixpanelConfig = MixpanelConfig(token: "metrics-1", trackAutomaticEvents: false, flagsConfig: FlagsConfig(enabled: true, context: ["key": "value"]))
Mixpanel.initialize(config: mixpanelConfig)
Mixpanel.mainInstance().loggingEnabled = true

return true
Expand Down
49 changes: 48 additions & 1 deletion MixpanelDemo/MixpanelDemo/TrackingViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,15 @@ class TrackingViewController: UIViewController, UITableViewDelegate, UITableView
"Register SuperProperties",
"Register SuperProperties Once",
"Register SP Once w Default Value",
"Unregister SuperProperty"]
"Unregister SuperProperty",
"Load Flags",
"Are Features Ready",
"Get Feature",
"Get Feature Sync",
"Get Feature Data",
"Get Feature Data Sync",
"Is Feature Enabled",
"Is Feature Enabled Sync"]

override func viewDidLoad() {
super.viewDidLoad()
Expand Down Expand Up @@ -92,6 +100,45 @@ class TrackingViewController: UIViewController, UITableViewDelegate, UITableView
let p = "Super Property 2"
Mixpanel.mainInstance().unregisterSuperProperty(p)
descStr = "Properties: \(p)"
case 10:
Mixpanel.mainInstance().loadFlags()
descStr = "Flags Loaded"
case 11:
let ready = Mixpanel.mainInstance().areFeaturesReady()
descStr = "Features Ready: \(ready)"
case 12:
var flagData = FeatureFlagData(key: "super-neat")
Mixpanel.mainInstance().getFeature("marks_nifty_feature_flag", fallback: flagData) { data in
flagData = data
print("Feature: \(flagData.key), Value: \(String(describing: flagData.value))")
}
descStr = "Feature: \(flagData.key), Value: \(String(describing: flagData.value))"
case 13:
var flagData = FeatureFlagData(key: "enabled")
flagData = Mixpanel.mainInstance().getFeatureSync("jb_qa_flag", fallback: flagData)
descStr = "Feature: \(flagData.key), Value: \(String(describing: flagData.value))"
case 14:
var flagValue = "NOT_donnaqacontrol"
Mixpanel.mainInstance().getFeatureData("new_feature_flag_1744737773860", fallbackValue: flagValue) { value in
flagValue = value as! String
print("Feature Value: \(flagValue)")
}
descStr = "Feature Value: \(flagValue)"
case 15:
var flagValue = "NOT_donnaqacontrol"
flagValue = Mixpanel.mainInstance().getFeatureDataSync("new_feature_flag_1744737773860", fallbackValue: flagValue) as! String
descStr = "Feature Value: \(flagValue)"
case 16:
var enabled = false
Mixpanel.mainInstance().isFeatureEnabled("jared_boolean_flag", fallbackValue: enabled) { isEnabled in
enabled = isEnabled
print("Feature Enabled: \(enabled)")
}
descStr = "Feature Enabled: \(enabled)"
case 17:
var enabled = false
enabled = Mixpanel.mainInstance().isFeatureEnabledSync("jared_boolean_flag", fallbackValue: enabled)
descStr = "Feature Enabled: \(enabled)"
default:
break
}
Expand Down
Loading