diff --git a/Examples/apps/DestinationsExample/DestinationsExample.xcodeproj/project.pbxproj b/Examples/apps/DestinationsExample/DestinationsExample.xcodeproj/project.pbxproj index 385d983a..192eab8d 100644 --- a/Examples/apps/DestinationsExample/DestinationsExample.xcodeproj/project.pbxproj +++ b/Examples/apps/DestinationsExample/DestinationsExample.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 469EC8D0266066130068F9E3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 469EC8CF266066130068F9E3 /* SystemConfiguration.framework */; }; + 469EC8E0266828860068F9E3 /* FlurryAnalyticsSPM in Frameworks */ = {isa = PBXBuildFile; productRef = 469EC8DF266828860068F9E3 /* FlurryAnalyticsSPM */; }; 469F7B08266011690038E773 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 469F7B07266011690038E773 /* AppDelegate.swift */; }; 469F7B0A266011690038E773 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 469F7B09266011690038E773 /* SceneDelegate.swift */; }; 469F7B0C266011690038E773 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 469F7B0B266011690038E773 /* ViewController.swift */; }; @@ -25,6 +26,7 @@ /* Begin PBXFileReference section */ 469EC8CF266066130068F9E3 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + 469EC8E1266828AF0068F9E3 /* DestinationsExample-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DestinationsExample-Bridging-Header.h"; sourceTree = ""; }; 469F7B04266011690038E773 /* DestinationsExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DestinationsExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 469F7B07266011690038E773 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 469F7B09266011690038E773 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; @@ -44,6 +46,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 469EC8E0266828860068F9E3 /* FlurryAnalyticsSPM in Frameworks */, 469EC8D0266066130068F9E3 /* SystemConfiguration.framework in Frameworks */, 469F7B1D266011D70038E773 /* Segment in Frameworks */, 965DC0FE2668079400DDF9C7 /* Mixpanel in Frameworks */, @@ -78,6 +81,7 @@ 469F7B07266011690038E773 /* AppDelegate.swift */, 469F7B09266011690038E773 /* SceneDelegate.swift */, 469F7B0B266011690038E773 /* ViewController.swift */, + 469EC8E1266828AF0068F9E3 /* DestinationsExample-Bridging-Header.h */, 469F7B0D266011690038E773 /* Main.storyboard */, 469F7B102660116A0038E773 /* Assets.xcassets */, 469F7B122660116A0038E773 /* LaunchScreen.storyboard */, @@ -126,6 +130,7 @@ 469F7B1C266011D70038E773 /* Segment */, 469F7B22266013100038E773 /* Adjust */, 965DC0FD2668079400DDF9C7 /* Mixpanel */, + 469EC8DF266828860068F9E3 /* FlurryAnalyticsSPM */, ); productName = DestinationsExample; productReference = 469F7B04266011690038E773 /* DestinationsExample.app */; @@ -157,6 +162,7 @@ packageReferences = ( 469F7B21266013100038E773 /* XCRemoteSwiftPackageReference "ios_sdk" */, 965DC0FC2668079400DDF9C7 /* XCRemoteSwiftPackageReference "mixpanel-swift" */, + 469EC8DE266828860068F9E3 /* XCRemoteSwiftPackageReference "FlurrySwiftPackage" */, ); productRefGroup = 469F7B05266011690038E773 /* Products */; projectDirPath = ""; @@ -274,6 +280,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OBJC_BRIDGING_HEADER = "DestinationsExample/DestinationsExample-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; @@ -328,6 +335,7 @@ MTL_FAST_MATH = YES; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OBJC_BRIDGING_HEADER = "DestinationsExample/DestinationsExample-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-O"; VALIDATE_PRODUCT = YES; }; @@ -393,6 +401,14 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ + 469EC8DE266828860068F9E3 /* XCRemoteSwiftPackageReference "FlurrySwiftPackage" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "git@github.com:flurry/FlurrySwiftPackage.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 11.2.1; + }; + }; 469F7B21266013100038E773 /* XCRemoteSwiftPackageReference "ios_sdk" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/adjust/ios_sdk.git"; @@ -412,6 +428,11 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ + 469EC8DF266828860068F9E3 /* FlurryAnalyticsSPM */ = { + isa = XCSwiftPackageProductDependency; + package = 469EC8DE266828860068F9E3 /* XCRemoteSwiftPackageReference "FlurrySwiftPackage" */; + productName = FlurryAnalyticsSPM; + }; 469F7B1C266011D70038E773 /* Segment */ = { isa = XCSwiftPackageProductDependency; productName = Segment; diff --git a/Examples/apps/DestinationsExample/DestinationsExample/AppDelegate.swift b/Examples/apps/DestinationsExample/DestinationsExample/AppDelegate.swift index 56bbf24f..0748fce4 100644 --- a/Examples/apps/DestinationsExample/DestinationsExample/AppDelegate.swift +++ b/Examples/apps/DestinationsExample/DestinationsExample/AppDelegate.swift @@ -31,10 +31,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { // Add Mixpanel destination plugin analytics?.add(plugin: MixpanelDestination(name: "Mixpanel")) - // setup flurry on the main instance - // NOTE: This is currently commented out due to lack of arm64 support in the flurry SDK via swift package manager. - //let flurry = FlurryDestination(name: "Flurry", analytics: Analytics.main) - //Analytics.main.add(plugin: flurry) + // Add Flurry destination plugin + analytics?.add(plugin: FlurryDestination(name: "Flurry")) return true } diff --git a/Examples/apps/DestinationsExample/DestinationsExample/DestinationsExample-Bridging-Header.h b/Examples/apps/DestinationsExample/DestinationsExample/DestinationsExample-Bridging-Header.h new file mode 100644 index 00000000..b92d2eee --- /dev/null +++ b/Examples/apps/DestinationsExample/DestinationsExample/DestinationsExample-Bridging-Header.h @@ -0,0 +1,13 @@ +// +// DestinationsExample-Bridging-Header.h +// DestinationsExample +// +// Created by Brandon Sneed on 6/2/21. +// + +#ifndef DestinationsExample_Bridging_Header_h +#define DestinationsExample_Bridging_Header_h + +#import "Flurry.h" + +#endif /* DestinationsExample_Bridging_Header_h */ diff --git a/Examples/destination_plugins/AdjustDestination.swift b/Examples/destination_plugins/AdjustDestination.swift index fea21094..7651fe2a 100644 --- a/Examples/destination_plugins/AdjustDestination.swift +++ b/Examples/destination_plugins/AdjustDestination.swift @@ -8,8 +8,7 @@ // NOTE: You can see this plugin in use in the DestinationsExample application. // // This plugin is NOT SUPPORTED by Segment. It is here merely as an example, -// and for your convenience should you find it useful. Please contact Adjust -// about providing full support and publishing if desired. +// and for your convenience should you find it useful. // // Adjust SPM package can be found here: https://github.com/adjust/ios_sdk diff --git a/Examples/destination_plugins/AmplitudeSession.swift b/Examples/destination_plugins/AmplitudeSession.swift index 31cf3842..a6fc5148 100644 --- a/Examples/destination_plugins/AmplitudeSession.swift +++ b/Examples/destination_plugins/AmplitudeSession.swift @@ -1,10 +1,38 @@ // // AmplitudeSession.swift -// DestinationsExampleTests +// DestinationsExample // // Created by Cody Garvin on 2/16/21. // +// NOTE: You can see this plugin in use in the DestinationsExample application. +// +// This plugin is NOT SUPPORTED by Segment. It is here merely as an example, +// and for your convenience should you find it useful. +// + +// MIT License +// +// Copyright (c) 2021 Segment +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + import Foundation import Segment diff --git a/Examples/destination_plugins/FlurryDestination.swift b/Examples/destination_plugins/FlurryDestination.swift index cb2d748b..c6a0b1c5 100644 --- a/Examples/destination_plugins/FlurryDestination.swift +++ b/Examples/destination_plugins/FlurryDestination.swift @@ -1,15 +1,14 @@ // // FlurryDestination.swift -// SegmentUIKitExample +// DestinationsExample // // Created by Brandon Sneed on 4/9/21. // -// NOTE: You can see this plugin in use in the SwiftUIKitExample application. +// NOTE: You can see this plugin in use in the DestinationsExample application. // // This plugin is NOT SUPPORTED by Segment. It is here merely as an example, -// and for your convenience should you find it useful. Please contact Flurry -// about providing full support and publishing if desired. +// and for your convenience should you find it useful. // // Flurry SPM package can be found here: https://github.com/flurry/FlurrySwiftPackage @@ -35,9 +34,6 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -/* If flurry ever gets their swift package working, we can re-enable this */ - -/* import Foundation import Segment import FlurryAnalytics @@ -133,4 +129,3 @@ extension FlurryDestination { } } -*/ diff --git a/Examples/destination_plugins/MixpanelDestination.swift b/Examples/destination_plugins/MixpanelDestination.swift index 996fb996..d3cddebd 100644 --- a/Examples/destination_plugins/MixpanelDestination.swift +++ b/Examples/destination_plugins/MixpanelDestination.swift @@ -1,10 +1,39 @@ // -// SegmentMixpanel.swift -// SegmentExample +// MixpanelDestination.swift +// DestinationsExample // // Created by Cody Garvin on 1/15/21. // +// NOTE: You can see this plugin in use in the DestinationsExample application. +// +// This plugin is NOT SUPPORTED by Segment. It is here merely as an example, +// and for your convenience should you find it useful. +// +// Mixpanel SPM package can be found here: https://github.com/mixpanel/mixpanel-swift + +// MIT License +// +// Copyright (c) 2021 Segment +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + import Foundation import Mixpanel import Segment