Skip to content

Commit 0038c32

Browse files
bsneedBrandon Sneed
andauthored
Add example plugin for Facebook App Events (#118)
* Fix mixpanel compilation issue. * Rework dependency specs * Added facebook app events example plugin * Fix support notices. * Add FacebookAppEvents to example app Co-authored-by: Brandon Sneed <[email protected]>
1 parent 0a84fa2 commit 0038c32

File tree

6 files changed

+317
-65
lines changed

6 files changed

+317
-65
lines changed

Examples/apps/DestinationsExample/DestinationsExample.xcodeproj/project.pbxproj

Lines changed: 78 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,13 @@
1212
46871696270E16080028B595 /* ConsentTracking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46871690270E16080028B595 /* ConsentTracking.swift */; };
1313
46871697270E16080028B595 /* IDFACollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46871691270E16080028B595 /* IDFACollection.swift */; };
1414
46871698270E16080028B595 /* ConsoleLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46871692270E16080028B595 /* ConsoleLogger.swift */; };
15+
4694D2F627B58C9600D110C0 /* FlurryAnalyticsSPM in Frameworks */ = {isa = PBXBuildFile; productRef = 4694D2F527B58C9600D110C0 /* FlurryAnalyticsSPM */; };
16+
4694D2F927B58E5E00D110C0 /* ComScore in Frameworks */ = {isa = PBXBuildFile; productRef = 4694D2F827B58E5E00D110C0 /* ComScore */; };
17+
4694D2FC27B5902100D110C0 /* Mixpanel in Frameworks */ = {isa = PBXBuildFile; productRef = 4694D2FB27B5902100D110C0 /* Mixpanel */; };
18+
4694D2FF27B5914200D110C0 /* Intercom in Frameworks */ = {isa = PBXBuildFile; productRef = 4694D2FE27B5914200D110C0 /* Intercom */; };
19+
4694D30127B592E500D110C0 /* FacebookAppEventsDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4694D30027B592E500D110C0 /* FacebookAppEventsDestination.swift */; };
20+
4694D30327B5979100D110C0 /* FacebookCore in Frameworks */ = {isa = PBXBuildFile; productRef = 4694D30227B5979100D110C0 /* FacebookCore */; };
1521
469EC8D0266066130068F9E3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 469EC8CF266066130068F9E3 /* SystemConfiguration.framework */; };
16-
469EC8E0266828860068F9E3 /* FlurryAnalyticsSPM in Frameworks */ = {isa = PBXBuildFile; productRef = 469EC8DF266828860068F9E3 /* FlurryAnalyticsSPM */; };
1722
469F7B08266011690038E773 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 469F7B07266011690038E773 /* AppDelegate.swift */; };
1823
469F7B0A266011690038E773 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 469F7B09266011690038E773 /* SceneDelegate.swift */; };
1924
469F7B0C266011690038E773 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 469F7B0B266011690038E773 /* ViewController.swift */; };
@@ -25,17 +30,14 @@
2530
469F7B23266013100038E773 /* Adjust in Frameworks */ = {isa = PBXBuildFile; productRef = 469F7B22266013100038E773 /* Adjust */; };
2631
469F7B25266013320038E773 /* AdjustDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 469F7B24266013320038E773 /* AdjustDestination.swift */; };
2732
96469A9B270279A600AC5772 /* IntercomDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96469A9A270279A600AC5772 /* IntercomDestination.swift */; };
28-
96469A9E2702862100AC5772 /* Intercom in Frameworks */ = {isa = PBXBuildFile; productRef = 96469A9D2702862100AC5772 /* Intercom */; };
2933
965DC0FA2668077400DDF9C7 /* MixpanelDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965DC0F82668077400DDF9C7 /* MixpanelDestination.swift */; };
3034
965DC0FB2668077400DDF9C7 /* AmplitudeSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965DC0F92668077400DDF9C7 /* AmplitudeSession.swift */; };
31-
965DC0FE2668079400DDF9C7 /* Mixpanel in Frameworks */ = {isa = PBXBuildFile; productRef = 965DC0FD2668079400DDF9C7 /* Mixpanel */; };
3235
965DC1212669942800DDF9C7 /* FirebaseAnalytics in Frameworks */ = {isa = PBXBuildFile; productRef = 965DC1202669942800DDF9C7 /* FirebaseAnalytics */; };
3336
965DC1232669947F00DDF9C7 /* FirebaseDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965DC1222669947F00DDF9C7 /* FirebaseDestination.swift */; };
3437
965DC1262671656C00DDF9C7 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 965DC1252671656C00DDF9C7 /* GoogleService-Info.plist */; };
3538
9697C1F52679156C00B87EC1 /* Segment_Logo_Avatar_Grey-1024.png in Resources */ = {isa = PBXBuildFile; fileRef = 9697C1F42679156C00B87EC1 /* Segment_Logo_Avatar_Grey-1024.png */; };
3639
96D8F16F26EFFA09007F8B28 /* ExampleDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96D8F16E26EFFA09007F8B28 /* ExampleDestination.swift */; };
3740
96DBF37D26FA943300724B0B /* ComscoreDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96DBF37C26FA943300724B0B /* ComscoreDestination.swift */; };
38-
96DBF38026FA984A00724B0B /* ComScore in Frameworks */ = {isa = PBXBuildFile; productRef = 96DBF37F26FA984A00724B0B /* ComScore */; };
3941
BA384C9826824F3700AFEA1B /* AppsFlyerLib in Frameworks */ = {isa = PBXBuildFile; productRef = BA384C9726824F3700AFEA1B /* AppsFlyerLib */; };
4042
BA384C9A2682973300AFEA1B /* AppsFlyerDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA384C992682973300AFEA1B /* AppsFlyerDestination.swift */; };
4143
/* End PBXBuildFile section */
@@ -46,6 +48,7 @@
4648
46871690270E16080028B595 /* ConsentTracking.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsentTracking.swift; sourceTree = "<group>"; };
4749
46871691270E16080028B595 /* IDFACollection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IDFACollection.swift; sourceTree = "<group>"; };
4850
46871692270E16080028B595 /* ConsoleLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsoleLogger.swift; sourceTree = "<group>"; };
51+
4694D30027B592E500D110C0 /* FacebookAppEventsDestination.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FacebookAppEventsDestination.swift; sourceTree = "<group>"; };
4952
469EC8CF266066130068F9E3 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
5053
469EC8E1266828AF0068F9E3 /* DestinationsExample-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DestinationsExample-Bridging-Header.h"; sourceTree = "<group>"; };
5154
469F7B04266011690038E773 /* DestinationsExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DestinationsExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -76,13 +79,14 @@
7679
buildActionMask = 2147483647;
7780
files = (
7881
BA384C9826824F3700AFEA1B /* AppsFlyerLib in Frameworks */,
79-
469EC8E0266828860068F9E3 /* FlurryAnalyticsSPM in Frameworks */,
82+
4694D30327B5979100D110C0 /* FacebookCore in Frameworks */,
8083
469EC8D0266066130068F9E3 /* SystemConfiguration.framework in Frameworks */,
81-
96DBF38026FA984A00724B0B /* ComScore in Frameworks */,
84+
4694D2F627B58C9600D110C0 /* FlurryAnalyticsSPM in Frameworks */,
8285
965DC1212669942800DDF9C7 /* FirebaseAnalytics in Frameworks */,
86+
4694D2F927B58E5E00D110C0 /* ComScore in Frameworks */,
8387
469F7B1D266011D70038E773 /* Segment in Frameworks */,
84-
965DC0FE2668079400DDF9C7 /* Mixpanel in Frameworks */,
85-
96469A9E2702862100AC5772 /* Intercom in Frameworks */,
88+
4694D2FC27B5902100D110C0 /* Mixpanel in Frameworks */,
89+
4694D2FF27B5914200D110C0 /* Intercom in Frameworks */,
8690
469F7B23266013100038E773 /* Adjust in Frameworks */,
8791
);
8892
runOnlyForDeploymentPostprocessing = 0;
@@ -154,6 +158,7 @@
154158
469F7B24266013320038E773 /* AdjustDestination.swift */,
155159
965DC0F92668077400DDF9C7 /* AmplitudeSession.swift */,
156160
96DBF37C26FA943300724B0B /* ComscoreDestination.swift */,
161+
4694D30027B592E500D110C0 /* FacebookAppEventsDestination.swift */,
157162
96D8F16E26EFFA09007F8B28 /* ExampleDestination.swift */,
158163
965DC1222669947F00DDF9C7 /* FirebaseDestination.swift */,
159164
469F7B1F266012CB0038E773 /* FlurryDestination.swift */,
@@ -192,12 +197,13 @@
192197
packageProductDependencies = (
193198
469F7B1C266011D70038E773 /* Segment */,
194199
469F7B22266013100038E773 /* Adjust */,
195-
965DC0FD2668079400DDF9C7 /* Mixpanel */,
196-
469EC8DF266828860068F9E3 /* FlurryAnalyticsSPM */,
197200
965DC1202669942800DDF9C7 /* FirebaseAnalytics */,
198201
BA384C9726824F3700AFEA1B /* AppsFlyerLib */,
199-
96DBF37F26FA984A00724B0B /* ComScore */,
200-
96469A9D2702862100AC5772 /* Intercom */,
202+
4694D2F527B58C9600D110C0 /* FlurryAnalyticsSPM */,
203+
4694D2F827B58E5E00D110C0 /* ComScore */,
204+
4694D2FB27B5902100D110C0 /* Mixpanel */,
205+
4694D2FE27B5914200D110C0 /* Intercom */,
206+
4694D30227B5979100D110C0 /* FacebookCore */,
201207
);
202208
productName = DestinationsExample;
203209
productReference = 469F7B04266011690038E773 /* DestinationsExample.app */;
@@ -228,12 +234,13 @@
228234
mainGroup = 469F7AFB266011690038E773;
229235
packageReferences = (
230236
469F7B21266013100038E773 /* XCRemoteSwiftPackageReference "ios_sdk" */,
231-
965DC0FC2668079400DDF9C7 /* XCRemoteSwiftPackageReference "mixpanel-swift" */,
232-
469EC8DE266828860068F9E3 /* XCRemoteSwiftPackageReference "FlurrySwiftPackage" */,
233237
965DC11F2669942800DDF9C7 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
234238
BA384C9626824F3700AFEA1B /* XCRemoteSwiftPackageReference "AppsFlyerFramework" */,
235-
96DBF37E26FA984900724B0B /* XCRemoteSwiftPackageReference "Comscore-Swift-Package-Manager" */,
236-
96469A9C2702862100AC5772 /* XCRemoteSwiftPackageReference "intercom-ios" */,
239+
4694D2F327B4500700D110C0 /* XCRemoteSwiftPackageReference "facebook-ios-sdk" */,
240+
4694D2F427B58C9500D110C0 /* XCRemoteSwiftPackageReference "FlurrySwiftPackage" */,
241+
4694D2F727B58E5E00D110C0 /* XCRemoteSwiftPackageReference "comscore-swift-package-manager" */,
242+
4694D2FA27B5902100D110C0 /* XCRemoteSwiftPackageReference "mixpanel-swift" */,
243+
4694D2FD27B5914200D110C0 /* XCRemoteSwiftPackageReference "intercom-ios" */,
237244
);
238245
productRefGroup = 469F7B05266011690038E773 /* Products */;
239246
projectDirPath = "";
@@ -277,6 +284,7 @@
277284
46871694270E16080028B595 /* NotificationTracking.swift in Sources */,
278285
469F7B25266013320038E773 /* AdjustDestination.swift in Sources */,
279286
469F7B0A266011690038E773 /* SceneDelegate.swift in Sources */,
287+
4694D30127B592E500D110C0 /* FacebookAppEventsDestination.swift in Sources */,
280288
965DC1232669947F00DDF9C7 /* FirebaseDestination.swift in Sources */,
281289
46871695270E16080028B595 /* UIKitScreenTracking.swift in Sources */,
282290
46871696270E16080028B595 /* ConsentTracking.swift in Sources */,
@@ -492,99 +500,112 @@
492500
/* End XCConfigurationList section */
493501

494502
/* Begin XCRemoteSwiftPackageReference section */
495-
469EC8DE266828860068F9E3 /* XCRemoteSwiftPackageReference "FlurrySwiftPackage" */ = {
503+
4694D2F327B4500700D110C0 /* XCRemoteSwiftPackageReference "facebook-ios-sdk" */ = {
496504
isa = XCRemoteSwiftPackageReference;
497-
repositoryURL = "git@github.com:flurry/FlurrySwiftPackage.git";
505+
repositoryURL = "https://github.com/facebook/facebook-ios-sdk";
498506
requirement = {
499-
kind = exactVersion;
500-
version = 11.2.1;
507+
kind = upToNextMajorVersion;
508+
minimumVersion = 12.0.0;
501509
};
502510
};
503-
469F7B21266013100038E773 /* XCRemoteSwiftPackageReference "ios_sdk" */ = {
511+
4694D2F427B58C9500D110C0 /* XCRemoteSwiftPackageReference "FlurrySwiftPackage" */ = {
504512
isa = XCRemoteSwiftPackageReference;
505-
repositoryURL = "https://github.com/adjust/ios_sdk.git";
513+
repositoryURL = "https://github.com/flurry/FlurrySwiftPackage";
506514
requirement = {
507-
kind = exactVersion;
508-
version = 4.29.6;
515+
kind = upToNextMajorVersion;
516+
minimumVersion = 11.0.0;
509517
};
510518
};
511-
96469A9C2702862100AC5772 /* XCRemoteSwiftPackageReference "intercom-ios" */ = {
519+
4694D2F727B58E5E00D110C0 /* XCRemoteSwiftPackageReference "comscore-swift-package-manager" */ = {
512520
isa = XCRemoteSwiftPackageReference;
513-
repositoryURL = "git@github.com:intercom/intercom-ios.git";
521+
repositoryURL = "https://github.com/comscore/comscore-swift-package-manager";
514522
requirement = {
515523
kind = upToNextMajorVersion;
516-
minimumVersion = 9.0.0;
524+
minimumVersion = 6.9.0;
517525
};
518526
};
519-
965DC0FC2668079400DDF9C7 /* XCRemoteSwiftPackageReference "mixpanel-swift" */ = {
527+
4694D2FA27B5902100D110C0 /* XCRemoteSwiftPackageReference "mixpanel-swift" */ = {
520528
isa = XCRemoteSwiftPackageReference;
521-
repositoryURL = "git@github.com:mixpanel/mixpanel-swift.git";
529+
repositoryURL = "https://github.com/mixpanel/mixpanel-swift";
522530
requirement = {
523-
kind = exactVersion;
524-
version = 2.9.3;
531+
kind = upToNextMajorVersion;
532+
minimumVersion = 3.1.3;
525533
};
526534
};
527-
965DC11F2669942800DDF9C7 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
535+
4694D2FD27B5914200D110C0 /* XCRemoteSwiftPackageReference "intercom-ios" */ = {
528536
isa = XCRemoteSwiftPackageReference;
529-
repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git";
537+
repositoryURL = "https://github.com/intercom/intercom-ios";
530538
requirement = {
531-
kind = exactVersion;
532-
version = 8.1.0;
539+
kind = upToNextMajorVersion;
540+
minimumVersion = 11.1.2;
533541
};
534542
};
535-
96DBF37E26FA984900724B0B /* XCRemoteSwiftPackageReference "Comscore-Swift-Package-Manager" */ = {
543+
469F7B21266013100038E773 /* XCRemoteSwiftPackageReference "ios_sdk" */ = {
536544
isa = XCRemoteSwiftPackageReference;
537-
repositoryURL = "git@github.com:comScore/Comscore-Swift-Package-Manager.git";
545+
repositoryURL = "https://github.com/adjust/ios_sdk.git";
538546
requirement = {
539547
kind = upToNextMajorVersion;
540-
minimumVersion = 6.0.0;
548+
minimumVersion = 4.29.6;
549+
};
550+
};
551+
965DC11F2669942800DDF9C7 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
552+
isa = XCRemoteSwiftPackageReference;
553+
repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git";
554+
requirement = {
555+
kind = upToNextMajorVersion;
556+
minimumVersion = 8.1.0;
541557
};
542558
};
543559
BA384C9626824F3700AFEA1B /* XCRemoteSwiftPackageReference "AppsFlyerFramework" */ = {
544560
isa = XCRemoteSwiftPackageReference;
545561
repositoryURL = "https://github.com/AppsFlyerSDK/AppsFlyerFramework";
546562
requirement = {
547-
kind = exactVersion;
548-
version = 6.3.2;
563+
kind = upToNextMajorVersion;
564+
minimumVersion = 6.3.2;
549565
};
550566
};
551567
/* End XCRemoteSwiftPackageReference section */
552568

553569
/* Begin XCSwiftPackageProductDependency section */
554-
469EC8DF266828860068F9E3 /* FlurryAnalyticsSPM */ = {
570+
4694D2F527B58C9600D110C0 /* FlurryAnalyticsSPM */ = {
555571
isa = XCSwiftPackageProductDependency;
556-
package = 469EC8DE266828860068F9E3 /* XCRemoteSwiftPackageReference "FlurrySwiftPackage" */;
572+
package = 4694D2F427B58C9500D110C0 /* XCRemoteSwiftPackageReference "FlurrySwiftPackage" */;
557573
productName = FlurryAnalyticsSPM;
558574
};
559-
469F7B1C266011D70038E773 /* Segment */ = {
575+
4694D2F827B58E5E00D110C0 /* ComScore */ = {
560576
isa = XCSwiftPackageProductDependency;
561-
productName = Segment;
577+
package = 4694D2F727B58E5E00D110C0 /* XCRemoteSwiftPackageReference "comscore-swift-package-manager" */;
578+
productName = ComScore;
562579
};
563-
469F7B22266013100038E773 /* Adjust */ = {
580+
4694D2FB27B5902100D110C0 /* Mixpanel */ = {
564581
isa = XCSwiftPackageProductDependency;
565-
package = 469F7B21266013100038E773 /* XCRemoteSwiftPackageReference "ios_sdk" */;
566-
productName = Adjust;
582+
package = 4694D2FA27B5902100D110C0 /* XCRemoteSwiftPackageReference "mixpanel-swift" */;
583+
productName = Mixpanel;
567584
};
568-
96469A9D2702862100AC5772 /* Intercom */ = {
585+
4694D2FE27B5914200D110C0 /* Intercom */ = {
569586
isa = XCSwiftPackageProductDependency;
570-
package = 96469A9C2702862100AC5772 /* XCRemoteSwiftPackageReference "intercom-ios" */;
587+
package = 4694D2FD27B5914200D110C0 /* XCRemoteSwiftPackageReference "intercom-ios" */;
571588
productName = Intercom;
572589
};
573-
965DC0FD2668079400DDF9C7 /* Mixpanel */ = {
590+
4694D30227B5979100D110C0 /* FacebookCore */ = {
574591
isa = XCSwiftPackageProductDependency;
575-
package = 965DC0FC2668079400DDF9C7 /* XCRemoteSwiftPackageReference "mixpanel-swift" */;
576-
productName = Mixpanel;
592+
package = 4694D2F327B4500700D110C0 /* XCRemoteSwiftPackageReference "facebook-ios-sdk" */;
593+
productName = FacebookCore;
594+
};
595+
469F7B1C266011D70038E773 /* Segment */ = {
596+
isa = XCSwiftPackageProductDependency;
597+
productName = Segment;
598+
};
599+
469F7B22266013100038E773 /* Adjust */ = {
600+
isa = XCSwiftPackageProductDependency;
601+
package = 469F7B21266013100038E773 /* XCRemoteSwiftPackageReference "ios_sdk" */;
602+
productName = Adjust;
577603
};
578604
965DC1202669942800DDF9C7 /* FirebaseAnalytics */ = {
579605
isa = XCSwiftPackageProductDependency;
580606
package = 965DC11F2669942800DDF9C7 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
581607
productName = FirebaseAnalytics;
582608
};
583-
96DBF37F26FA984A00724B0B /* ComScore */ = {
584-
isa = XCSwiftPackageProductDependency;
585-
package = 96DBF37E26FA984900724B0B /* XCRemoteSwiftPackageReference "Comscore-Swift-Package-Manager" */;
586-
productName = ComScore;
587-
};
588609
BA384C9726824F3700AFEA1B /* AppsFlyerLib */ = {
589610
isa = XCSwiftPackageProductDependency;
590611
package = BA384C9626824F3700AFEA1B /* XCRemoteSwiftPackageReference "AppsFlyerFramework" */;

Examples/apps/DestinationsExample/DestinationsExample/AppDelegate.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
4444
// Add the Comscore destination plugin
4545
analytics?.add(plugin: ComscoreDestination())
4646

47+
// Add the Facebook App Events plugin
48+
analytics?.add(plugin: FacebookAppEventsDestination())
49+
4750
return true
4851
}
4952

Examples/destination_plugins/ComscoreDestination.swift

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,33 @@ import CoreMedia
1313
An implementation of the Comscore Analytics device mode destination as a plugin.
1414
*/
1515

16+
// NOTE: You can see this plugin in use in the DestinationsExample application.
17+
//
18+
// This plugin is NOT SUPPORTED by Segment. It is here merely as an example,
19+
// and for your convenience should you find it useful.
20+
//
21+
// Copyright (c) 2022 Segment
22+
//
23+
// Permission is hereby granted, free of charge, to any person obtaining a copy
24+
// of this software and associated documentation files (the "Software"), to deal
25+
// in the Software without restriction, including without limitation the rights
26+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
27+
// copies of the Software, and to permit persons to whom the Software is
28+
// furnished to do so, subject to the following conditions:
29+
//
30+
// The above copyright notice and this permission notice shall be included in all
31+
// copies or substantial portions of the Software.
32+
//
33+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
34+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
35+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
36+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
37+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
38+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
39+
// SOFTWARE.
40+
//
41+
42+
1643
class ComscoreDestination: DestinationPlugin {
1744
let timeline = Timeline()
1845
let type = PluginType.destination

0 commit comments

Comments
 (0)