From cdc076d582bb8c834e2895eb0deeef139f6f44d5 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 19 Apr 2023 12:37:37 +1000 Subject: [PATCH 01/12] Fetch Nimble via SPM instead of CocoaPods --- Package.resolved | 32 +++++++ Package.swift | 6 +- ParselyDemo.xcodeproj/project.pbxproj | 95 ++++++++++++------- .../xcshareddata/swiftpm/Package.resolved | 32 +++++++ Podfile | 1 - Podfile.lock | 15 +-- 6 files changed, 129 insertions(+), 52 deletions(-) create mode 100644 Package.resolved create mode 100644 ParselyDemo.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/Package.resolved b/Package.resolved new file mode 100644 index 00000000..d33ce7e8 --- /dev/null +++ b/Package.resolved @@ -0,0 +1,32 @@ +{ + "pins" : [ + { + "identity" : "cwlcatchexception", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mattgallagher/CwlCatchException.git", + "state" : { + "revision" : "3b123999de19bf04905bc1dfdb76f817b0f2cc00", + "version" : "2.1.2" + } + }, + { + "identity" : "cwlpreconditiontesting", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git", + "state" : { + "revision" : "a23ded2c91df9156628a6996ab4f347526f17b6b", + "version" : "2.1.2" + } + }, + { + "identity" : "nimble", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Quick/Nimble.git", + "state" : { + "revision" : "ecade0f20e58e55ba3e5f110b701dad88fd40170", + "version" : "12.0.0" + } + } + ], + "version" : 2 +} diff --git a/Package.swift b/Package.swift index d46ec43d..f069deaa 100644 --- a/Package.swift +++ b/Package.swift @@ -13,7 +13,9 @@ let package = Package( targets: ["ParselyAnalytics"] ), ], - dependencies: [], + dependencies: [ + .package(url: "https://github.com/Quick/Nimble.git", .upToNextMajor(from: "12.0.0")) + ], targets: [ .target( name: "ParselyAnalytics", @@ -24,7 +26,7 @@ let package = Package( ), .testTarget( name: "ParselyTrackerTests", - dependencies: ["ParselyAnalytics"], + dependencies: ["ParselyAnalytics", "Nimble"], path: "ParselyTrackerTests", exclude: ["Info.plist"] ) diff --git a/ParselyDemo.xcodeproj/project.pbxproj b/ParselyDemo.xcodeproj/project.pbxproj index f0da02a2..80306e10 100644 --- a/ParselyDemo.xcodeproj/project.pbxproj +++ b/ParselyDemo.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 48; + objectVersion = 52; objects = { /* Begin PBXBuildFile section */ @@ -11,6 +11,7 @@ 2A1F02E3BE1F9F969BD9C6E1 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1F0F92460A849C17B26338 /* Storage.swift */; }; 2A1F05EB11D3A1B7EC5FB2C1 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1F0F92460A849C17B26338 /* Storage.swift */; }; 2A1F0DF37B68B0886A0E6848 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1F0F92460A849C17B26338 /* Storage.swift */; }; + 3F147F8F29EF8CA100752DFB /* Nimble in Frameworks */ = {isa = PBXBuildFile; productRef = 3F147F8E29EF8CA100752DFB /* Nimble */; }; 412303BAD35C03905845036B /* Pods_Parsely_ParselyTracker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E14A66E8F1BB8BC158D4959 /* Pods_Parsely_ParselyTracker.framework */; }; AA73AAAF2242C1F10089BF1D /* ParselyTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA73AAAE2242C1F10089BF1D /* ParselyTestCase.swift */; }; AA7473DE224956A000C75436 /* ParselyAnalytics.podspec in Resources */ = {isa = PBXBuildFile; fileRef = AA7473DD224956A000C75436 /* ParselyAnalytics.podspec */; }; @@ -62,13 +63,6 @@ remoteGlobalIDString = F433338D20F0087E004BB6F5; remoteInfo = ParselyTracker; }; - F433339A20F0087E004BB6F5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F40D9A5220EFF74F0030525E /* Project object */; - proxyType = 1; - remoteGlobalIDString = F40D9A5920EFF74F0030525E; - remoteInfo = AnalyticsSDK; - }; F43333A120F0087E004BB6F5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = F40D9A5220EFF74F0030525E /* Project object */; @@ -181,6 +175,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 3F147F8F29EF8CA100752DFB /* Nimble in Frameworks */, F433339720F0087E004BB6F5 /* ParselyTracker.framework in Frameworks */, DFD7BB483E787F03E5494A20 /* Pods_ParselyTrackerTests.framework in Frameworks */, ); @@ -336,6 +331,8 @@ F43333A220F0087E004BB6F5 /* PBXTargetDependency */, ); name = ParselyDemo; + packageProductDependencies = ( + ); productName = AnalyticsSDK; productReference = F40D9A5A20EFF74F0030525E /* ParselyDemo.app */; productType = "com.apple.product-type.application"; @@ -367,15 +364,16 @@ F433339220F0087E004BB6F5 /* Sources */, F433339320F0087E004BB6F5 /* Frameworks */, F433339420F0087E004BB6F5 /* Resources */, - 50A891132731B54A9972347D /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( F433339920F0087E004BB6F5 /* PBXTargetDependency */, - F433339B20F0087E004BB6F5 /* PBXTargetDependency */, ); name = ParselyTrackerTests; + packageProductDependencies = ( + 3F147F8E29EF8CA100752DFB /* Nimble */, + ); productName = ParselyTrackerTests; productReference = F433339620F0087E004BB6F5 /* ParselyTrackerTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; @@ -422,6 +420,9 @@ Base, ); mainGroup = F40D9A5120EFF74F0030525E; + packageReferences = ( + 3F147F8B29EF8C9800752DFB /* XCRemoteSwiftPackageReference "Nimble" */, + ); productRefGroup = F40D9A5B20EFF74F0030525E /* Products */; projectDirPath = ""; projectRoot = ""; @@ -464,24 +465,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 50A891132731B54A9972347D /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ParselyTrackerTests/Pods-ParselyTrackerTests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/Nimble/Nimble.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Nimble.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ParselyTrackerTests/Pods-ParselyTrackerTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; AAF24F042465B46CC0D7A05C /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -740,7 +723,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 10.1; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 4.2; VALIDATE_PRODUCT = YES; }; @@ -756,7 +740,10 @@ DEVELOPMENT_TEAM = N3Z6SG5Z94; INFOPLIST_FILE = ParselyDemo/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.parsely.ParselyDemo; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -774,7 +761,10 @@ DEVELOPMENT_TEAM = N3Z6SG5Z94; INFOPLIST_FILE = ParselyDemo/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.parsely.ParselyDemo; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -797,7 +787,11 @@ INFOPLIST_FILE = ParselyTracker/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.parsely.ParselyTracker; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; @@ -823,7 +817,11 @@ INFOPLIST_FILE = ParselyTracker/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.parsely.ParselyTracker; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; @@ -843,7 +841,11 @@ DEVELOPMENT_TEAM = N3Z6SG5Z94; INFOPLIST_FILE = ParselyTrackerTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACOSX_DEPLOYMENT_TARGET = 10.15; PRODUCT_BUNDLE_IDENTIFIER = com.parsely.ParselyTrackerTests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -862,7 +864,11 @@ DEVELOPMENT_TEAM = N3Z6SG5Z94; INFOPLIST_FILE = ParselyTrackerTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MACOSX_DEPLOYMENT_TARGET = 10.15; PRODUCT_BUNDLE_IDENTIFIER = com.parsely.ParselyTrackerTests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -912,6 +918,25 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + 3F147F8B29EF8C9800752DFB /* XCRemoteSwiftPackageReference "Nimble" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/Quick/Nimble"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 12.0.0; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 3F147F8E29EF8CA100752DFB /* Nimble */ = { + isa = XCSwiftPackageProductDependency; + package = 3F147F8B29EF8C9800752DFB /* XCRemoteSwiftPackageReference "Nimble" */; + productName = Nimble; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = F40D9A5220EFF74F0030525E /* Project object */; } diff --git a/ParselyDemo.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ParselyDemo.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 00000000..6d34078e --- /dev/null +++ b/ParselyDemo.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,32 @@ +{ + "pins" : [ + { + "identity" : "cwlcatchexception", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mattgallagher/CwlCatchException.git", + "state" : { + "revision" : "3b123999de19bf04905bc1dfdb76f817b0f2cc00", + "version" : "2.1.2" + } + }, + { + "identity" : "cwlpreconditiontesting", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git", + "state" : { + "revision" : "a23ded2c91df9156628a6996ab4f347526f17b6b", + "version" : "2.1.2" + } + }, + { + "identity" : "nimble", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Quick/Nimble", + "state" : { + "revision" : "ecade0f20e58e55ba3e5f110b701dad88fd40170", + "version" : "12.0.0" + } + } + ], + "version" : 2 +} diff --git a/Podfile b/Podfile index 5208448e..9cd7afde 100644 --- a/Podfile +++ b/Podfile @@ -12,7 +12,6 @@ abstract_target 'Parsely' do target 'ParselyTracker' do target 'ParselyTrackerTests' do inherit! :search_paths - pod 'Nimble' end end end diff --git a/Podfile.lock b/Podfile.lock index 22dcad23..8a59fe10 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,16 +1,3 @@ -PODS: - - Nimble (11.2.2) - -DEPENDENCIES: - - Nimble - -SPEC REPOS: - trunk: - - Nimble - -SPEC CHECKSUMS: - Nimble: 01a944d4d07eab73617dfd4b32ac9f7152ac34de - -PODFILE CHECKSUM: b40c4302d457171fe102ded4f89b9a4f72906a80 +PODFILE CHECKSUM: 27eb074e00d33484ec6389a88002bad2a74360a6 COCOAPODS: 1.12.0 From 23f0897b6d7fc3be8a656f86b7e47c25316481ea Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 19 Apr 2023 12:52:30 +1000 Subject: [PATCH 02/12] Remove `Storage.swift` from ParselyDemo and ParselyTracker tests This source filed did not need to be compiled in those targets. --- ParselyDemo.xcodeproj/project.pbxproj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ParselyDemo.xcodeproj/project.pbxproj b/ParselyDemo.xcodeproj/project.pbxproj index 80306e10..85101eb8 100644 --- a/ParselyDemo.xcodeproj/project.pbxproj +++ b/ParselyDemo.xcodeproj/project.pbxproj @@ -8,8 +8,6 @@ /* Begin PBXBuildFile section */ 2A1F02DDE91E502E3B49AFAB /* StorageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1F03819E4FAF1F979D5926 /* StorageTests.swift */; }; - 2A1F02E3BE1F9F969BD9C6E1 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1F0F92460A849C17B26338 /* Storage.swift */; }; - 2A1F05EB11D3A1B7EC5FB2C1 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1F0F92460A849C17B26338 /* Storage.swift */; }; 2A1F0DF37B68B0886A0E6848 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1F0F92460A849C17B26338 /* Storage.swift */; }; 3F147F8F29EF8CA100752DFB /* Nimble in Frameworks */ = {isa = PBXBuildFile; productRef = 3F147F8E29EF8CA100752DFB /* Nimble */; }; 412303BAD35C03905845036B /* Pods_Parsely_ParselyTracker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E14A66E8F1BB8BC158D4959 /* Pods_Parsely_ParselyTracker.framework */; }; @@ -529,7 +527,6 @@ F40D9A6220EFF74F0030525E /* SecondViewController.swift in Sources */, F40D9A5E20EFF74F0030525E /* AppDelegate.swift in Sources */, F40D9A6020EFF74F0030525E /* FirstViewController.swift in Sources */, - 2A1F05EB11D3A1B7EC5FB2C1 /* Storage.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -567,7 +564,6 @@ B2C84B66220A03610018BC7B /* SamplerTests.swift in Sources */, F4BF86682190DAFC00BD3867 /* EngagedTimeTests.swift in Sources */, F433339E20F0087E004BB6F5 /* ParselyTrackerTests.swift in Sources */, - 2A1F02E3BE1F9F969BD9C6E1 /* Storage.swift in Sources */, F4BF866C2190DB3C00BD3867 /* SessionTests.swift in Sources */, 2A1F02DDE91E502E3B49AFAB /* StorageTests.swift in Sources */, F4BF866A2190DB1C00BD3867 /* TrackTests.swift in Sources */, From bb79b82816a74a82302d84912fb4a9e5857e5d88 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 19 Apr 2023 12:55:11 +1000 Subject: [PATCH 03/12] Exclude `UnitTests.xctestplan` from test target in `Package.swift` --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index f069deaa..a32a13a9 100644 --- a/Package.swift +++ b/Package.swift @@ -28,7 +28,7 @@ let package = Package( name: "ParselyTrackerTests", dependencies: ["ParselyAnalytics", "Nimble"], path: "ParselyTrackerTests", - exclude: ["Info.plist"] + exclude: ["Info.plist", "UnitTests.xctestplan"] ) ] ) From 2d7dfb3ede4d7ea2a495e944b64cc52e5f1057d7 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 19 Apr 2023 12:56:26 +1000 Subject: [PATCH 04/12] Deintegrate CocoaPods We were no longer importing any dependency via the `Podfile` --- .github/workflows/ios.yml | 2 +- ParselyDemo.xcodeproj/project.pbxproj | 127 ------------------ .../contents.xcworkspacedata | 2 +- .../xcshareddata/swiftpm/Package.resolved | 0 .../contents.xcworkspacedata | 10 -- .../xcshareddata/IDEWorkspaceChecks.plist | 8 -- Podfile | 31 ----- Podfile.lock | 3 - 8 files changed, 2 insertions(+), 181 deletions(-) rename {ParselyDemo.xcworkspace => ParselyDemo.xcodeproj/project.xcworkspace}/xcshareddata/swiftpm/Package.resolved (100%) delete mode 100644 ParselyDemo.xcworkspace/contents.xcworkspacedata delete mode 100644 ParselyDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 Podfile delete mode 100644 Podfile.lock diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index c3f951ad..01b5a1a1 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -44,7 +44,7 @@ jobs: - name: Build and Test run: | xcodebuild test \ - -workspace ParselyDemo.xcworkspace \ + -project ParselyDemo.xcodeproj \ -scheme ParselyDemo \ -sdk iphonesimulator \ -destination 'platform=iOS Simulator,name=iPhone 14,OS=latest' \ diff --git a/ParselyDemo.xcodeproj/project.pbxproj b/ParselyDemo.xcodeproj/project.pbxproj index 85101eb8..9607c1b2 100644 --- a/ParselyDemo.xcodeproj/project.pbxproj +++ b/ParselyDemo.xcodeproj/project.pbxproj @@ -10,7 +10,6 @@ 2A1F02DDE91E502E3B49AFAB /* StorageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1F03819E4FAF1F979D5926 /* StorageTests.swift */; }; 2A1F0DF37B68B0886A0E6848 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1F0F92460A849C17B26338 /* Storage.swift */; }; 3F147F8F29EF8CA100752DFB /* Nimble in Frameworks */ = {isa = PBXBuildFile; productRef = 3F147F8E29EF8CA100752DFB /* Nimble */; }; - 412303BAD35C03905845036B /* Pods_Parsely_ParselyTracker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E14A66E8F1BB8BC158D4959 /* Pods_Parsely_ParselyTracker.framework */; }; AA73AAAF2242C1F10089BF1D /* ParselyTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA73AAAE2242C1F10089BF1D /* ParselyTestCase.swift */; }; AA7473DE224956A000C75436 /* ParselyAnalytics.podspec in Resources */ = {isa = PBXBuildFile; fileRef = AA7473DD224956A000C75436 /* ParselyAnalytics.podspec */; }; AAEDC3272212161F00769350 /* HttpClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAEDC3262212161F00769350 /* HttpClient.swift */; }; @@ -22,7 +21,6 @@ B2C84B66220A03610018BC7B /* SamplerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2C84B65220A03610018BC7B /* SamplerTests.swift */; }; B2FC40BE221CC42300C70806 /* Metadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FC40BD221CC42300C70806 /* Metadata.swift */; }; B2FC40C0221CC43200C70806 /* MetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FC40BF221CC43200C70806 /* MetadataTests.swift */; }; - DFD7BB483E787F03E5494A20 /* Pods_ParselyTrackerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A80C09D1CED0319E596DBEE /* Pods_ParselyTrackerTests.framework */; }; F40D9A5E20EFF74F0030525E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F40D9A5D20EFF74F0030525E /* AppDelegate.swift */; }; F40D9A6020EFF74F0030525E /* FirstViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F40D9A5F20EFF74F0030525E /* FirstViewController.swift */; }; F40D9A6220EFF74F0030525E /* SecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F40D9A6120EFF74F0030525E /* SecondViewController.swift */; }; @@ -44,13 +42,11 @@ F43333BE20F008EF004BB6F5 /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = F43333B520F008EF004BB6F5 /* Event.swift */; }; F441A55C20F3B8BF009B556E /* EventQueueTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F441A55B20F3B8BF009B556E /* EventQueueTests.swift */; }; F441A55E20F53A56009B556E /* EventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F441A55D20F53A56009B556E /* EventTests.swift */; }; - F494BFB620FFDD5900025A4C /* Podfile in Resources */ = {isa = PBXBuildFile; fileRef = F494BFB520FFDD5900025A4C /* Podfile */; }; F4BF86682190DAFC00BD3867 /* EngagedTimeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4BF86672190DAFC00BD3867 /* EngagedTimeTests.swift */; }; F4BF866A2190DB1C00BD3867 /* TrackTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4BF86692190DB1C00BD3867 /* TrackTests.swift */; }; F4BF866C2190DB3C00BD3867 /* SessionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4BF866B2190DB3C00BD3867 /* SessionTests.swift */; }; F4BF866E2190DB4A00BD3867 /* VideoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4BF866D2190DB4A00BD3867 /* VideoTests.swift */; }; F4BF86702190DB5A00BD3867 /* VisitorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4BF866F2190DB5A00BD3867 /* VisitorTests.swift */; }; - FFAFE15752EDFF97939A720B /* Pods_Parsely_ParselyDemo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14B4D2093AFB65E10D802394 /* Pods_Parsely_ParselyDemo.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -85,37 +81,20 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0512C3C37D1324FAF6BE71AD /* Pods-AnalyticsSDK.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AnalyticsSDK.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AnalyticsSDK/Pods-AnalyticsSDK.debug.xcconfig"; sourceTree = ""; }; - 14B4D2093AFB65E10D802394 /* Pods_Parsely_ParselyDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Parsely_ParselyDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 2A1F03819E4FAF1F979D5926 /* StorageTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StorageTests.swift; sourceTree = ""; }; 2A1F0F92460A849C17B26338 /* Storage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Storage.swift; sourceTree = ""; }; - 2E14A66E8F1BB8BC158D4959 /* Pods_Parsely_ParselyTracker.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Parsely_ParselyTracker.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3A80C09D1CED0319E596DBEE /* Pods_ParselyTrackerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ParselyTrackerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3FCAFC8B29E9775A00BC9360 /* UnitTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = UnitTests.xctestplan; sourceTree = ""; }; - 446CD722898871FC8DB4DE4D /* Pods-Parsely-ParselyTracker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Parsely-ParselyTracker.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Parsely-ParselyTracker/Pods-Parsely-ParselyTracker.debug.xcconfig"; sourceTree = ""; }; - 491B2BC988D8B0335724A102 /* Pods-Parsely-ParselyDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Parsely-ParselyDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-Parsely-ParselyDemo/Pods-Parsely-ParselyDemo.release.xcconfig"; sourceTree = ""; }; - 510E83E973D358D695481B9E /* Pods_AnalyticsSDK.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AnalyticsSDK.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 51F998D6A6A125B4106BDE73 /* Pods-Parsely-ParselyTracker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Parsely-ParselyTracker.release.xcconfig"; path = "Pods/Target Support Files/Pods-Parsely-ParselyTracker/Pods-Parsely-ParselyTracker.release.xcconfig"; sourceTree = ""; }; - 57664AA65429314270E473DB /* Pods-Parsely-ParselyDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Parsely-ParselyDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Parsely-ParselyDemo/Pods-Parsely-ParselyDemo.debug.xcconfig"; sourceTree = ""; }; - 6D623D570B7F71EFD9E46D24 /* Pods-ParselyTracker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ParselyTracker.release.xcconfig"; path = "Pods/Target Support Files/Pods-ParselyTracker/Pods-ParselyTracker.release.xcconfig"; sourceTree = ""; }; - 8E611964813255DB16F1B8D3 /* Pods-ParselyDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ParselyDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-ParselyDemo/Pods-ParselyDemo.release.xcconfig"; sourceTree = ""; }; - 906991F0294DF786C982D060 /* Pods-ParselyDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ParselyDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ParselyDemo/Pods-ParselyDemo.debug.xcconfig"; sourceTree = ""; }; - 9CD753A4903488F9E572497D /* Pods-AnalyticsSDKTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AnalyticsSDKTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AnalyticsSDKTests/Pods-AnalyticsSDKTests.debug.xcconfig"; sourceTree = ""; }; - A07DD8B365F9DFAC828E58C2 /* Pods-ParselyTrackerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ParselyTrackerTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ParselyTrackerTests/Pods-ParselyTrackerTests.debug.xcconfig"; sourceTree = ""; }; AA73AAAE2242C1F10089BF1D /* ParselyTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParselyTestCase.swift; sourceTree = ""; }; AA7473DD224956A000C75436 /* ParselyAnalytics.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ParselyAnalytics.podspec; sourceTree = ""; }; AAEDC3262212161F00769350 /* HttpClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpClient.swift; sourceTree = ""; }; AAEDC32822123DD300769350 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; AAEDC32A2212407700769350 /* ParselyTracker.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParselyTracker.framework; path = ../../../Downloads/ParselyTracker.framework; sourceTree = ""; }; - AB009DED9C4184290AB524B3 /* Pods-ParselyTracker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ParselyTracker.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ParselyTracker/Pods-ParselyTracker.debug.xcconfig"; sourceTree = ""; }; B205889C220CB67500476E27 /* RequestBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestBuilder.swift; sourceTree = ""; }; B205889E220CB72A00476E27 /* RequestBuilderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestBuilderTests.swift; sourceTree = ""; }; B2BC46FA2208D60A000B937A /* Track.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Track.swift; sourceTree = ""; }; B2C84B65220A03610018BC7B /* SamplerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SamplerTests.swift; sourceTree = ""; }; B2FC40BD221CC42300C70806 /* Metadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Metadata.swift; sourceTree = ""; }; B2FC40BF221CC43200C70806 /* MetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetadataTests.swift; sourceTree = ""; }; - C809B31A3D785C1DD2A05C4E /* Pods-AnalyticsSDKTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AnalyticsSDKTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-AnalyticsSDKTests/Pods-AnalyticsSDKTests.release.xcconfig"; sourceTree = ""; }; - F32771E2DD5F1A6A68B29BB2 /* Pods-AnalyticsSDK.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AnalyticsSDK.release.xcconfig"; path = "Pods/Target Support Files/Pods-AnalyticsSDK/Pods-AnalyticsSDK.release.xcconfig"; sourceTree = ""; }; F40D9A5A20EFF74F0030525E /* ParselyDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ParselyDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; F40D9A5D20EFF74F0030525E /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; F40D9A5F20EFF74F0030525E /* FirstViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirstViewController.swift; sourceTree = ""; }; @@ -142,13 +121,11 @@ F43333B520F008EF004BB6F5 /* Event.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Event.swift; sourceTree = ""; }; F441A55B20F3B8BF009B556E /* EventQueueTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventQueueTests.swift; sourceTree = ""; }; F441A55D20F53A56009B556E /* EventTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventTests.swift; sourceTree = ""; }; - F494BFB520FFDD5900025A4C /* Podfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Podfile; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; F4BF86672190DAFC00BD3867 /* EngagedTimeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EngagedTimeTests.swift; sourceTree = ""; }; F4BF86692190DB1C00BD3867 /* TrackTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackTests.swift; sourceTree = ""; }; F4BF866B2190DB3C00BD3867 /* SessionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionTests.swift; sourceTree = ""; }; F4BF866D2190DB4A00BD3867 /* VideoTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoTests.swift; sourceTree = ""; }; F4BF866F2190DB5A00BD3867 /* VisitorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VisitorTests.swift; sourceTree = ""; }; - F641C3C76F714CE598D03837 /* Pods-ParselyTrackerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ParselyTrackerTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ParselyTrackerTests/Pods-ParselyTrackerTests.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -157,7 +134,6 @@ buildActionMask = 2147483647; files = ( AAF629792216382800F59789 /* ParselyTracker.framework in Frameworks */, - FFAFE15752EDFF97939A720B /* Pods_Parsely_ParselyDemo.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -165,7 +141,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 412303BAD35C03905845036B /* Pods_Parsely_ParselyTracker.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -175,42 +150,16 @@ files = ( 3F147F8F29EF8CA100752DFB /* Nimble in Frameworks */, F433339720F0087E004BB6F5 /* ParselyTracker.framework in Frameworks */, - DFD7BB483E787F03E5494A20 /* Pods_ParselyTrackerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 18AECE06D2368AC7AC7D27B1 /* Pods */ = { - isa = PBXGroup; - children = ( - 0512C3C37D1324FAF6BE71AD /* Pods-AnalyticsSDK.debug.xcconfig */, - F32771E2DD5F1A6A68B29BB2 /* Pods-AnalyticsSDK.release.xcconfig */, - 9CD753A4903488F9E572497D /* Pods-AnalyticsSDKTests.debug.xcconfig */, - C809B31A3D785C1DD2A05C4E /* Pods-AnalyticsSDKTests.release.xcconfig */, - AB009DED9C4184290AB524B3 /* Pods-ParselyTracker.debug.xcconfig */, - 6D623D570B7F71EFD9E46D24 /* Pods-ParselyTracker.release.xcconfig */, - A07DD8B365F9DFAC828E58C2 /* Pods-ParselyTrackerTests.debug.xcconfig */, - F641C3C76F714CE598D03837 /* Pods-ParselyTrackerTests.release.xcconfig */, - 906991F0294DF786C982D060 /* Pods-ParselyDemo.debug.xcconfig */, - 8E611964813255DB16F1B8D3 /* Pods-ParselyDemo.release.xcconfig */, - 57664AA65429314270E473DB /* Pods-Parsely-ParselyDemo.debug.xcconfig */, - 491B2BC988D8B0335724A102 /* Pods-Parsely-ParselyDemo.release.xcconfig */, - 446CD722898871FC8DB4DE4D /* Pods-Parsely-ParselyTracker.debug.xcconfig */, - 51F998D6A6A125B4106BDE73 /* Pods-Parsely-ParselyTracker.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; E6EFA5F61B38FE34B3DF5AD2 /* Frameworks */ = { isa = PBXGroup; children = ( AAEDC32A2212407700769350 /* ParselyTracker.framework */, - 510E83E973D358D695481B9E /* Pods_AnalyticsSDK.framework */, - 3A80C09D1CED0319E596DBEE /* Pods_ParselyTrackerTests.framework */, - 14B4D2093AFB65E10D802394 /* Pods_Parsely_ParselyDemo.framework */, - 2E14A66E8F1BB8BC158D4959 /* Pods_Parsely_ParselyTracker.framework */, ); name = Frameworks; sourceTree = ""; @@ -220,12 +169,10 @@ children = ( AA7473DD224956A000C75436 /* ParselyAnalytics.podspec */, AAEDC32822123DD300769350 /* README.md */, - F494BFB520FFDD5900025A4C /* Podfile */, F40D9A5C20EFF74F0030525E /* ParselyDemo */, F433338F20F0087E004BB6F5 /* ParselyTracker */, F433339C20F0087E004BB6F5 /* ParselyTrackerTests */, F40D9A5B20EFF74F0030525E /* Products */, - 18AECE06D2368AC7AC7D27B1 /* Pods */, E6EFA5F61B38FE34B3DF5AD2 /* Frameworks */, ); sourceTree = ""; @@ -317,7 +264,6 @@ isa = PBXNativeTarget; buildConfigurationList = F40D9A7920EFF7500030525E /* Build configuration list for PBXNativeTarget "ParselyDemo" */; buildPhases = ( - B2D8136DDB40E2E07902E28F /* [CP] Check Pods Manifest.lock */, F40D9A5620EFF74F0030525E /* Sources */, F40D9A5720EFF74F0030525E /* Frameworks */, F40D9A5820EFF74F0030525E /* Resources */, @@ -329,8 +275,6 @@ F43333A220F0087E004BB6F5 /* PBXTargetDependency */, ); name = ParselyDemo; - packageProductDependencies = ( - ); productName = AnalyticsSDK; productReference = F40D9A5A20EFF74F0030525E /* ParselyDemo.app */; productType = "com.apple.product-type.application"; @@ -339,7 +283,6 @@ isa = PBXNativeTarget; buildConfigurationList = F43333A920F0087E004BB6F5 /* Build configuration list for PBXNativeTarget "ParselyTracker" */; buildPhases = ( - DE28483D27F1BA2AA36E2A05 /* [CP] Check Pods Manifest.lock */, F433338920F0087E004BB6F5 /* Sources */, F433338A20F0087E004BB6F5 /* Frameworks */, F433338B20F0087E004BB6F5 /* Headers */, @@ -358,7 +301,6 @@ isa = PBXNativeTarget; buildConfigurationList = F43333AB20F0087E004BB6F5 /* Build configuration list for PBXNativeTarget "ParselyTrackerTests" */; buildPhases = ( - AAF24F042465B46CC0D7A05C /* [CP] Check Pods Manifest.lock */, F433339220F0087E004BB6F5 /* Sources */, F433339320F0087E004BB6F5 /* Frameworks */, F433339420F0087E004BB6F5 /* Resources */, @@ -439,7 +381,6 @@ files = ( F40D9A6A20EFF74F0030525E /* LaunchScreen.storyboard in Resources */, F40D9A6720EFF74F0030525E /* Assets.xcassets in Resources */, - F494BFB620FFDD5900025A4C /* Podfile in Resources */, F40D9A6520EFF74F0030525E /* Main.storyboard in Resources */, AA7473DE224956A000C75436 /* ParselyAnalytics.podspec in Resources */, ); @@ -462,63 +403,6 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - AAF24F042465B46CC0D7A05C /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ParselyTrackerTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - 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"; - showEnvVarsInLog = 0; - }; - B2D8136DDB40E2E07902E28F /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Parsely-ParselyDemo-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - 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"; - showEnvVarsInLog = 0; - }; - DE28483D27F1BA2AA36E2A05 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Parsely-ParselyTracker-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - 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"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ F40D9A5620EFF74F0030525E /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -580,11 +464,6 @@ target = F433338D20F0087E004BB6F5 /* ParselyTracker */; targetProxy = F433339820F0087E004BB6F5 /* PBXContainerItemProxy */; }; - F433339B20F0087E004BB6F5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = F40D9A5920EFF74F0030525E /* ParselyDemo */; - targetProxy = F433339A20F0087E004BB6F5 /* PBXContainerItemProxy */; - }; F43333A220F0087E004BB6F5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = F433338D20F0087E004BB6F5 /* ParselyTracker */; @@ -728,7 +607,6 @@ }; F40D9A7A20EFF7500030525E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 57664AA65429314270E473DB /* Pods-Parsely-ParselyDemo.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -749,7 +627,6 @@ }; F40D9A7B20EFF7500030525E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 491B2BC988D8B0335724A102 /* Pods-Parsely-ParselyDemo.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -770,7 +647,6 @@ }; F43333A520F0087E004BB6F5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 446CD722898871FC8DB4DE4D /* Pods-Parsely-ParselyTracker.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; @@ -800,7 +676,6 @@ }; F43333A620F0087E004BB6F5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 51F998D6A6A125B4106BDE73 /* Pods-Parsely-ParselyTracker.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; @@ -830,7 +705,6 @@ }; F43333A720F0087E004BB6F5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A07DD8B365F9DFAC828E58C2 /* Pods-ParselyTrackerTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; @@ -853,7 +727,6 @@ }; F43333A820F0087E004BB6F5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F641C3C76F714CE598D03837 /* Pods-ParselyTrackerTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; diff --git a/ParselyDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ParselyDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata index f005fa78..919434a6 100644 --- a/ParselyDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/ParselyDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:"> diff --git a/ParselyDemo.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ParselyDemo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved similarity index 100% rename from ParselyDemo.xcworkspace/xcshareddata/swiftpm/Package.resolved rename to ParselyDemo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/ParselyDemo.xcworkspace/contents.xcworkspacedata b/ParselyDemo.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 05c2eaf5..00000000 --- a/ParselyDemo.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/ParselyDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ParselyDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/ParselyDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/Podfile b/Podfile deleted file mode 100644 index 9cd7afde..00000000 --- a/Podfile +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -APP_IOS_DEPLOYMENT_TARGET = Gem::Version.new('13.0') - -platform :ios, APP_IOS_DEPLOYMENT_TARGET - -abstract_target 'Parsely' do - use_frameworks! - - target 'ParselyDemo' - - target 'ParselyTracker' do - target 'ParselyTrackerTests' do - inherit! :search_paths - end - end -end - -def make_pods_adopt_app_deployment_target(installer:, app_deployment_target:) - installer.pods_project.targets.each do |target| - target.build_configurations.each do |configuration| - delopyment_key = 'IPHONEOS_DEPLOYMENT_TARGET' - pod_deployment_target = Gem::Version.new(configuration.build_settings[delopyment_key]) - configuration.build_settings.delete(delopyment_key) if pod_deployment_target <= app_deployment_target - end - end -end - -post_install do |installer| - make_pods_adopt_app_deployment_target(installer: installer, app_deployment_target: APP_IOS_DEPLOYMENT_TARGET) -end diff --git a/Podfile.lock b/Podfile.lock deleted file mode 100644 index 8a59fe10..00000000 --- a/Podfile.lock +++ /dev/null @@ -1,3 +0,0 @@ -PODFILE CHECKSUM: 27eb074e00d33484ec6389a88002bad2a74360a6 - -COCOAPODS: 1.12.0 From ed8665cdcefd058ad0bfeef740ac82d9922370f0 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 19 Apr 2023 13:03:46 +1000 Subject: [PATCH 05/12] Rename ParselyTrackerTests folder to Tests This is to be inline with the standard Swift Package setup --- Package.swift | 2 +- ParselyDemo.xcodeproj/project.pbxproj | 10 +++++----- {ParselyTrackerTests => Tests}/EngagedTimeTests.swift | 0 {ParselyTrackerTests => Tests}/EventQueueTests.swift | 0 {ParselyTrackerTests => Tests}/EventTests.swift | 0 {ParselyTrackerTests => Tests}/Info.plist | 0 {ParselyTrackerTests => Tests}/MetadataTests.swift | 0 {ParselyTrackerTests => Tests}/ParselyTestCase.swift | 0 .../ParselyTrackerTests.swift | 0 {ParselyTrackerTests => Tests}/PixelTests.swift | 0 .../RequestBuilderTests.swift | 0 {ParselyTrackerTests => Tests}/SamplerTests.swift | 0 {ParselyTrackerTests => Tests}/SessionTests.swift | 0 {ParselyTrackerTests => Tests}/StorageTests.swift | 0 {ParselyTrackerTests => Tests}/TrackTests.swift | 0 {ParselyTrackerTests => Tests}/UnitTests.xctestplan | 0 {ParselyTrackerTests => Tests}/VideoTests.swift | 0 {ParselyTrackerTests => Tests}/VisitorTests.swift | 0 18 files changed, 6 insertions(+), 6 deletions(-) rename {ParselyTrackerTests => Tests}/EngagedTimeTests.swift (100%) rename {ParselyTrackerTests => Tests}/EventQueueTests.swift (100%) rename {ParselyTrackerTests => Tests}/EventTests.swift (100%) rename {ParselyTrackerTests => Tests}/Info.plist (100%) rename {ParselyTrackerTests => Tests}/MetadataTests.swift (100%) rename {ParselyTrackerTests => Tests}/ParselyTestCase.swift (100%) rename {ParselyTrackerTests => Tests}/ParselyTrackerTests.swift (100%) rename {ParselyTrackerTests => Tests}/PixelTests.swift (100%) rename {ParselyTrackerTests => Tests}/RequestBuilderTests.swift (100%) rename {ParselyTrackerTests => Tests}/SamplerTests.swift (100%) rename {ParselyTrackerTests => Tests}/SessionTests.swift (100%) rename {ParselyTrackerTests => Tests}/StorageTests.swift (100%) rename {ParselyTrackerTests => Tests}/TrackTests.swift (100%) rename {ParselyTrackerTests => Tests}/UnitTests.xctestplan (100%) rename {ParselyTrackerTests => Tests}/VideoTests.swift (100%) rename {ParselyTrackerTests => Tests}/VisitorTests.swift (100%) diff --git a/Package.swift b/Package.swift index a32a13a9..e483f953 100644 --- a/Package.swift +++ b/Package.swift @@ -27,7 +27,7 @@ let package = Package( .testTarget( name: "ParselyTrackerTests", dependencies: ["ParselyAnalytics", "Nimble"], - path: "ParselyTrackerTests", + path: "Tests", exclude: ["Info.plist", "UnitTests.xctestplan"] ) ] diff --git a/ParselyDemo.xcodeproj/project.pbxproj b/ParselyDemo.xcodeproj/project.pbxproj index 9607c1b2..ab469f21 100644 --- a/ParselyDemo.xcodeproj/project.pbxproj +++ b/ParselyDemo.xcodeproj/project.pbxproj @@ -171,7 +171,7 @@ AAEDC32822123DD300769350 /* README.md */, F40D9A5C20EFF74F0030525E /* ParselyDemo */, F433338F20F0087E004BB6F5 /* ParselyTracker */, - F433339C20F0087E004BB6F5 /* ParselyTrackerTests */, + F433339C20F0087E004BB6F5 /* Tests */, F40D9A5B20EFF74F0030525E /* Products */, E6EFA5F61B38FE34B3DF5AD2 /* Frameworks */, ); @@ -224,7 +224,7 @@ path = ParselyTracker; sourceTree = ""; }; - F433339C20F0087E004BB6F5 /* ParselyTrackerTests */ = { + F433339C20F0087E004BB6F5 /* Tests */ = { isa = PBXGroup; children = ( F433339D20F0087E004BB6F5 /* ParselyTrackerTests.swift */, @@ -244,7 +244,7 @@ AA73AAAE2242C1F10089BF1D /* ParselyTestCase.swift */, 3FCAFC8B29E9775A00BC9360 /* UnitTests.xctestplan */, ); - path = ParselyTrackerTests; + path = Tests; sourceTree = ""; }; /* End PBXGroup section */ @@ -709,7 +709,7 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = N3Z6SG5Z94; - INFOPLIST_FILE = ParselyTrackerTests/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -731,7 +731,7 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = N3Z6SG5Z94; - INFOPLIST_FILE = ParselyTrackerTests/Info.plist; + INFOPLIST_FILE = Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", diff --git a/ParselyTrackerTests/EngagedTimeTests.swift b/Tests/EngagedTimeTests.swift similarity index 100% rename from ParselyTrackerTests/EngagedTimeTests.swift rename to Tests/EngagedTimeTests.swift diff --git a/ParselyTrackerTests/EventQueueTests.swift b/Tests/EventQueueTests.swift similarity index 100% rename from ParselyTrackerTests/EventQueueTests.swift rename to Tests/EventQueueTests.swift diff --git a/ParselyTrackerTests/EventTests.swift b/Tests/EventTests.swift similarity index 100% rename from ParselyTrackerTests/EventTests.swift rename to Tests/EventTests.swift diff --git a/ParselyTrackerTests/Info.plist b/Tests/Info.plist similarity index 100% rename from ParselyTrackerTests/Info.plist rename to Tests/Info.plist diff --git a/ParselyTrackerTests/MetadataTests.swift b/Tests/MetadataTests.swift similarity index 100% rename from ParselyTrackerTests/MetadataTests.swift rename to Tests/MetadataTests.swift diff --git a/ParselyTrackerTests/ParselyTestCase.swift b/Tests/ParselyTestCase.swift similarity index 100% rename from ParselyTrackerTests/ParselyTestCase.swift rename to Tests/ParselyTestCase.swift diff --git a/ParselyTrackerTests/ParselyTrackerTests.swift b/Tests/ParselyTrackerTests.swift similarity index 100% rename from ParselyTrackerTests/ParselyTrackerTests.swift rename to Tests/ParselyTrackerTests.swift diff --git a/ParselyTrackerTests/PixelTests.swift b/Tests/PixelTests.swift similarity index 100% rename from ParselyTrackerTests/PixelTests.swift rename to Tests/PixelTests.swift diff --git a/ParselyTrackerTests/RequestBuilderTests.swift b/Tests/RequestBuilderTests.swift similarity index 100% rename from ParselyTrackerTests/RequestBuilderTests.swift rename to Tests/RequestBuilderTests.swift diff --git a/ParselyTrackerTests/SamplerTests.swift b/Tests/SamplerTests.swift similarity index 100% rename from ParselyTrackerTests/SamplerTests.swift rename to Tests/SamplerTests.swift diff --git a/ParselyTrackerTests/SessionTests.swift b/Tests/SessionTests.swift similarity index 100% rename from ParselyTrackerTests/SessionTests.swift rename to Tests/SessionTests.swift diff --git a/ParselyTrackerTests/StorageTests.swift b/Tests/StorageTests.swift similarity index 100% rename from ParselyTrackerTests/StorageTests.swift rename to Tests/StorageTests.swift diff --git a/ParselyTrackerTests/TrackTests.swift b/Tests/TrackTests.swift similarity index 100% rename from ParselyTrackerTests/TrackTests.swift rename to Tests/TrackTests.swift diff --git a/ParselyTrackerTests/UnitTests.xctestplan b/Tests/UnitTests.xctestplan similarity index 100% rename from ParselyTrackerTests/UnitTests.xctestplan rename to Tests/UnitTests.xctestplan diff --git a/ParselyTrackerTests/VideoTests.swift b/Tests/VideoTests.swift similarity index 100% rename from ParselyTrackerTests/VideoTests.swift rename to Tests/VideoTests.swift diff --git a/ParselyTrackerTests/VisitorTests.swift b/Tests/VisitorTests.swift similarity index 100% rename from ParselyTrackerTests/VisitorTests.swift rename to Tests/VisitorTests.swift From e148597fefffc8423870192eac31a7ad98ec64eb Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 19 Apr 2023 13:05:16 +1000 Subject: [PATCH 06/12] Rename ParselyTracker folder to Sources This is to be inline with the standard Swift Package setup --- Package.swift | 2 +- ParselyAnalytics.podspec | 2 +- ParselyDemo.xcodeproj/project.pbxproj | 10 +++++----- {ParselyTracker => Sources}/EngagedTime.swift | 0 {ParselyTracker => Sources}/Event.swift | 0 {ParselyTracker => Sources}/EventQueue.swift | 0 {ParselyTracker => Sources}/HttpClient.swift | 0 {ParselyTracker => Sources}/Info.plist | 0 {ParselyTracker => Sources}/Metadata.swift | 0 {ParselyTracker => Sources}/ParselyTracker.swift | 0 {ParselyTracker => Sources}/Pixel.swift | 0 {ParselyTracker => Sources}/RequestBuilder.swift | 0 {ParselyTracker => Sources}/Sampler.swift | 0 {ParselyTracker => Sources}/Session.swift | 0 {ParselyTracker => Sources}/Storage.swift | 0 {ParselyTracker => Sources}/Track.swift | 0 {ParselyTracker => Sources}/Video.swift | 0 {ParselyTracker => Sources}/Visitor.swift | 0 18 files changed, 7 insertions(+), 7 deletions(-) rename {ParselyTracker => Sources}/EngagedTime.swift (100%) rename {ParselyTracker => Sources}/Event.swift (100%) rename {ParselyTracker => Sources}/EventQueue.swift (100%) rename {ParselyTracker => Sources}/HttpClient.swift (100%) rename {ParselyTracker => Sources}/Info.plist (100%) rename {ParselyTracker => Sources}/Metadata.swift (100%) rename {ParselyTracker => Sources}/ParselyTracker.swift (100%) rename {ParselyTracker => Sources}/Pixel.swift (100%) rename {ParselyTracker => Sources}/RequestBuilder.swift (100%) rename {ParselyTracker => Sources}/Sampler.swift (100%) rename {ParselyTracker => Sources}/Session.swift (100%) rename {ParselyTracker => Sources}/Storage.swift (100%) rename {ParselyTracker => Sources}/Track.swift (100%) rename {ParselyTracker => Sources}/Video.swift (100%) rename {ParselyTracker => Sources}/Visitor.swift (100%) diff --git a/Package.swift b/Package.swift index e483f953..8f849af3 100644 --- a/Package.swift +++ b/Package.swift @@ -20,7 +20,7 @@ let package = Package( .target( name: "ParselyAnalytics", dependencies: [], - path: "ParselyTracker", + path: "Sources", exclude: ["Info.plist"], resources: [] ), diff --git a/ParselyAnalytics.podspec b/ParselyAnalytics.podspec index fa35c5f1..3b224a65 100644 --- a/ParselyAnalytics.podspec +++ b/ParselyAnalytics.podspec @@ -11,6 +11,6 @@ Pod::Spec.new do |s| s.ios.deployment_target = '13.0' s.tvos.deployment_target = '13.0' s.source = { git: 'https://github.com/Parsely/AnalyticsSDK-iOS.git', tag: s.version.to_s } - s.source_files = 'ParselyTracker' + s.source_files = 'Sources' s.framework = 'Foundation' end diff --git a/ParselyDemo.xcodeproj/project.pbxproj b/ParselyDemo.xcodeproj/project.pbxproj index ab469f21..eba24b13 100644 --- a/ParselyDemo.xcodeproj/project.pbxproj +++ b/ParselyDemo.xcodeproj/project.pbxproj @@ -170,7 +170,7 @@ AA7473DD224956A000C75436 /* ParselyAnalytics.podspec */, AAEDC32822123DD300769350 /* README.md */, F40D9A5C20EFF74F0030525E /* ParselyDemo */, - F433338F20F0087E004BB6F5 /* ParselyTracker */, + F433338F20F0087E004BB6F5 /* Sources */, F433339C20F0087E004BB6F5 /* Tests */, F40D9A5B20EFF74F0030525E /* Products */, E6EFA5F61B38FE34B3DF5AD2 /* Frameworks */, @@ -202,7 +202,7 @@ path = ParselyDemo; sourceTree = ""; }; - F433338F20F0087E004BB6F5 /* ParselyTracker */ = { + F433338F20F0087E004BB6F5 /* Sources */ = { isa = PBXGroup; children = ( AAEDC3262212161F00769350 /* HttpClient.swift */, @@ -221,7 +221,7 @@ B205889C220CB67500476E27 /* RequestBuilder.swift */, B2FC40BD221CC42300C70806 /* Metadata.swift */, ); - path = ParselyTracker; + path = Sources; sourceTree = ""; }; F433339C20F0087E004BB6F5 /* Tests */ = { @@ -656,7 +656,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = ParselyTracker/Info.plist; + INFOPLIST_FILE = Sources/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -685,7 +685,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = ParselyTracker/Info.plist; + INFOPLIST_FILE = Sources/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/ParselyTracker/EngagedTime.swift b/Sources/EngagedTime.swift similarity index 100% rename from ParselyTracker/EngagedTime.swift rename to Sources/EngagedTime.swift diff --git a/ParselyTracker/Event.swift b/Sources/Event.swift similarity index 100% rename from ParselyTracker/Event.swift rename to Sources/Event.swift diff --git a/ParselyTracker/EventQueue.swift b/Sources/EventQueue.swift similarity index 100% rename from ParselyTracker/EventQueue.swift rename to Sources/EventQueue.swift diff --git a/ParselyTracker/HttpClient.swift b/Sources/HttpClient.swift similarity index 100% rename from ParselyTracker/HttpClient.swift rename to Sources/HttpClient.swift diff --git a/ParselyTracker/Info.plist b/Sources/Info.plist similarity index 100% rename from ParselyTracker/Info.plist rename to Sources/Info.plist diff --git a/ParselyTracker/Metadata.swift b/Sources/Metadata.swift similarity index 100% rename from ParselyTracker/Metadata.swift rename to Sources/Metadata.swift diff --git a/ParselyTracker/ParselyTracker.swift b/Sources/ParselyTracker.swift similarity index 100% rename from ParselyTracker/ParselyTracker.swift rename to Sources/ParselyTracker.swift diff --git a/ParselyTracker/Pixel.swift b/Sources/Pixel.swift similarity index 100% rename from ParselyTracker/Pixel.swift rename to Sources/Pixel.swift diff --git a/ParselyTracker/RequestBuilder.swift b/Sources/RequestBuilder.swift similarity index 100% rename from ParselyTracker/RequestBuilder.swift rename to Sources/RequestBuilder.swift diff --git a/ParselyTracker/Sampler.swift b/Sources/Sampler.swift similarity index 100% rename from ParselyTracker/Sampler.swift rename to Sources/Sampler.swift diff --git a/ParselyTracker/Session.swift b/Sources/Session.swift similarity index 100% rename from ParselyTracker/Session.swift rename to Sources/Session.swift diff --git a/ParselyTracker/Storage.swift b/Sources/Storage.swift similarity index 100% rename from ParselyTracker/Storage.swift rename to Sources/Storage.swift diff --git a/ParselyTracker/Track.swift b/Sources/Track.swift similarity index 100% rename from ParselyTracker/Track.swift rename to Sources/Track.swift diff --git a/ParselyTracker/Video.swift b/Sources/Video.swift similarity index 100% rename from ParselyTracker/Video.swift rename to Sources/Video.swift diff --git a/ParselyTracker/Visitor.swift b/Sources/Visitor.swift similarity index 100% rename from ParselyTracker/Visitor.swift rename to Sources/Visitor.swift From 67712597b5abbc9d41b0b7fa84d4918ec458bbe1 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 19 Apr 2023 13:22:11 +1000 Subject: [PATCH 07/12] Move ParselyDemo project into dedicated Demo folder --- .github/workflows/ios.yml | 2 +- .../ParselyDemo.xcodeproj}/project.pbxproj | 22 +++++++----------- .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../xcshareddata/swiftpm/Package.resolved | 0 .../xcschemes/ParselyDemo.xcscheme | 2 +- .../xcschemes/ParselyTracker.xcscheme | 0 .../ParselyDemo}/AnalyticsSDK.entitlements | 0 .../ParselyDemo}/AppDelegate.swift | 0 .../AppIcon.appiconset/Contents.json | 0 .../first.imageset/Contents.json | 0 .../Assets.xcassets/first.imageset/first.pdf | Bin .../second.imageset/Contents.json | 0 .../second.imageset/second.pdf | Bin .../Base.lproj/LaunchScreen.storyboard | 0 .../ParselyDemo}/Base.lproj/Main.storyboard | 0 .../ParselyDemo}/FirstViewController.swift | 0 {ParselyDemo => Demo/ParselyDemo}/Info.plist | 0 .../ParselyDemo}/SecondViewController.swift | 0 19 files changed, 10 insertions(+), 16 deletions(-) rename {ParselyDemo.xcodeproj => Demo/ParselyDemo.xcodeproj}/project.pbxproj (97%) rename {ParselyDemo.xcodeproj => Demo/ParselyDemo.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (100%) rename {ParselyDemo.xcodeproj => Demo/ParselyDemo.xcodeproj}/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) rename {ParselyDemo.xcodeproj => Demo/ParselyDemo.xcodeproj}/project.xcworkspace/xcshareddata/swiftpm/Package.resolved (100%) rename {ParselyDemo.xcodeproj => Demo/ParselyDemo.xcodeproj}/xcshareddata/xcschemes/ParselyDemo.xcscheme (98%) rename {ParselyDemo.xcodeproj => Demo/ParselyDemo.xcodeproj}/xcshareddata/xcschemes/ParselyTracker.xcscheme (100%) rename {ParselyDemo => Demo/ParselyDemo}/AnalyticsSDK.entitlements (100%) rename {ParselyDemo => Demo/ParselyDemo}/AppDelegate.swift (100%) rename {ParselyDemo => Demo/ParselyDemo}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {ParselyDemo => Demo/ParselyDemo}/Assets.xcassets/first.imageset/Contents.json (100%) rename {ParselyDemo => Demo/ParselyDemo}/Assets.xcassets/first.imageset/first.pdf (100%) rename {ParselyDemo => Demo/ParselyDemo}/Assets.xcassets/second.imageset/Contents.json (100%) rename {ParselyDemo => Demo/ParselyDemo}/Assets.xcassets/second.imageset/second.pdf (100%) rename {ParselyDemo => Demo/ParselyDemo}/Base.lproj/LaunchScreen.storyboard (100%) rename {ParselyDemo => Demo/ParselyDemo}/Base.lproj/Main.storyboard (100%) rename {ParselyDemo => Demo/ParselyDemo}/FirstViewController.swift (100%) rename {ParselyDemo => Demo/ParselyDemo}/Info.plist (100%) rename {ParselyDemo => Demo/ParselyDemo}/SecondViewController.swift (100%) diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 01b5a1a1..456ca01d 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -44,7 +44,7 @@ jobs: - name: Build and Test run: | xcodebuild test \ - -project ParselyDemo.xcodeproj \ + -project Demo/ParselyDemo.xcodeproj \ -scheme ParselyDemo \ -sdk iphonesimulator \ -destination 'platform=iOS Simulator,name=iPhone 14,OS=latest' \ diff --git a/ParselyDemo.xcodeproj/project.pbxproj b/Demo/ParselyDemo.xcodeproj/project.pbxproj similarity index 97% rename from ParselyDemo.xcodeproj/project.pbxproj rename to Demo/ParselyDemo.xcodeproj/project.pbxproj index eba24b13..88754f72 100644 --- a/ParselyDemo.xcodeproj/project.pbxproj +++ b/Demo/ParselyDemo.xcodeproj/project.pbxproj @@ -11,9 +11,7 @@ 2A1F0DF37B68B0886A0E6848 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1F0F92460A849C17B26338 /* Storage.swift */; }; 3F147F8F29EF8CA100752DFB /* Nimble in Frameworks */ = {isa = PBXBuildFile; productRef = 3F147F8E29EF8CA100752DFB /* Nimble */; }; AA73AAAF2242C1F10089BF1D /* ParselyTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA73AAAE2242C1F10089BF1D /* ParselyTestCase.swift */; }; - AA7473DE224956A000C75436 /* ParselyAnalytics.podspec in Resources */ = {isa = PBXBuildFile; fileRef = AA7473DD224956A000C75436 /* ParselyAnalytics.podspec */; }; AAEDC3272212161F00769350 /* HttpClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAEDC3262212161F00769350 /* HttpClient.swift */; }; - AAEDC32922123DD300769350 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = AAEDC32822123DD300769350 /* README.md */; }; AAF629792216382800F59789 /* ParselyTracker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAEDC32A2212407700769350 /* ParselyTracker.framework */; }; B205889D220CB67500476E27 /* RequestBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = B205889C220CB67500476E27 /* RequestBuilder.swift */; }; B205889F220CB72A00476E27 /* RequestBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B205889E220CB72A00476E27 /* RequestBuilderTests.swift */; }; @@ -85,9 +83,7 @@ 2A1F0F92460A849C17B26338 /* Storage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Storage.swift; sourceTree = ""; }; 3FCAFC8B29E9775A00BC9360 /* UnitTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = UnitTests.xctestplan; sourceTree = ""; }; AA73AAAE2242C1F10089BF1D /* ParselyTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParselyTestCase.swift; sourceTree = ""; }; - AA7473DD224956A000C75436 /* ParselyAnalytics.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ParselyAnalytics.podspec; sourceTree = ""; }; AAEDC3262212161F00769350 /* HttpClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpClient.swift; sourceTree = ""; }; - AAEDC32822123DD300769350 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; AAEDC32A2212407700769350 /* ParselyTracker.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParselyTracker.framework; path = ../../../Downloads/ParselyTracker.framework; sourceTree = ""; }; B205889C220CB67500476E27 /* RequestBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestBuilder.swift; sourceTree = ""; }; B205889E220CB72A00476E27 /* RequestBuilderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestBuilderTests.swift; sourceTree = ""; }; @@ -167,8 +163,6 @@ F40D9A5120EFF74F0030525E = { isa = PBXGroup; children = ( - AA7473DD224956A000C75436 /* ParselyAnalytics.podspec */, - AAEDC32822123DD300769350 /* README.md */, F40D9A5C20EFF74F0030525E /* ParselyDemo */, F433338F20F0087E004BB6F5 /* Sources */, F433339C20F0087E004BB6F5 /* Tests */, @@ -221,7 +215,8 @@ B205889C220CB67500476E27 /* RequestBuilder.swift */, B2FC40BD221CC42300C70806 /* Metadata.swift */, ); - path = Sources; + name = Sources; + path = ../Sources; sourceTree = ""; }; F433339C20F0087E004BB6F5 /* Tests */ = { @@ -244,7 +239,8 @@ AA73AAAE2242C1F10089BF1D /* ParselyTestCase.swift */, 3FCAFC8B29E9775A00BC9360 /* UnitTests.xctestplan */, ); - path = Tests; + name = Tests; + path = ../Tests; sourceTree = ""; }; /* End PBXGroup section */ @@ -382,7 +378,6 @@ F40D9A6A20EFF74F0030525E /* LaunchScreen.storyboard in Resources */, F40D9A6720EFF74F0030525E /* Assets.xcassets in Resources */, F40D9A6520EFF74F0030525E /* Main.storyboard in Resources */, - AA7473DE224956A000C75436 /* ParselyAnalytics.podspec in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -390,7 +385,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - AAEDC32922123DD300769350 /* README.md in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -656,7 +650,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Sources/Info.plist; + INFOPLIST_FILE = ../Sources/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -685,7 +679,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Sources/Info.plist; + INFOPLIST_FILE = ../Sources/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -709,7 +703,7 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = N3Z6SG5Z94; - INFOPLIST_FILE = Tests/Info.plist; + INFOPLIST_FILE = ../Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -731,7 +725,7 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = N3Z6SG5Z94; - INFOPLIST_FILE = Tests/Info.plist; + INFOPLIST_FILE = ../Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", diff --git a/ParselyDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Demo/ParselyDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from ParselyDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Demo/ParselyDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/ParselyDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Demo/ParselyDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from ParselyDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Demo/ParselyDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/ParselyDemo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Demo/ParselyDemo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved similarity index 100% rename from ParselyDemo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved rename to Demo/ParselyDemo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/ParselyDemo.xcodeproj/xcshareddata/xcschemes/ParselyDemo.xcscheme b/Demo/ParselyDemo.xcodeproj/xcshareddata/xcschemes/ParselyDemo.xcscheme similarity index 98% rename from ParselyDemo.xcodeproj/xcshareddata/xcschemes/ParselyDemo.xcscheme rename to Demo/ParselyDemo.xcodeproj/xcshareddata/xcschemes/ParselyDemo.xcscheme index 613db042..b4b2fa0f 100644 --- a/ParselyDemo.xcodeproj/xcshareddata/xcschemes/ParselyDemo.xcscheme +++ b/Demo/ParselyDemo.xcodeproj/xcshareddata/xcschemes/ParselyDemo.xcscheme @@ -38,7 +38,7 @@ diff --git a/ParselyDemo.xcodeproj/xcshareddata/xcschemes/ParselyTracker.xcscheme b/Demo/ParselyDemo.xcodeproj/xcshareddata/xcschemes/ParselyTracker.xcscheme similarity index 100% rename from ParselyDemo.xcodeproj/xcshareddata/xcschemes/ParselyTracker.xcscheme rename to Demo/ParselyDemo.xcodeproj/xcshareddata/xcschemes/ParselyTracker.xcscheme diff --git a/ParselyDemo/AnalyticsSDK.entitlements b/Demo/ParselyDemo/AnalyticsSDK.entitlements similarity index 100% rename from ParselyDemo/AnalyticsSDK.entitlements rename to Demo/ParselyDemo/AnalyticsSDK.entitlements diff --git a/ParselyDemo/AppDelegate.swift b/Demo/ParselyDemo/AppDelegate.swift similarity index 100% rename from ParselyDemo/AppDelegate.swift rename to Demo/ParselyDemo/AppDelegate.swift diff --git a/ParselyDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demo/ParselyDemo/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from ParselyDemo/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Demo/ParselyDemo/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/ParselyDemo/Assets.xcassets/first.imageset/Contents.json b/Demo/ParselyDemo/Assets.xcassets/first.imageset/Contents.json similarity index 100% rename from ParselyDemo/Assets.xcassets/first.imageset/Contents.json rename to Demo/ParselyDemo/Assets.xcassets/first.imageset/Contents.json diff --git a/ParselyDemo/Assets.xcassets/first.imageset/first.pdf b/Demo/ParselyDemo/Assets.xcassets/first.imageset/first.pdf similarity index 100% rename from ParselyDemo/Assets.xcassets/first.imageset/first.pdf rename to Demo/ParselyDemo/Assets.xcassets/first.imageset/first.pdf diff --git a/ParselyDemo/Assets.xcassets/second.imageset/Contents.json b/Demo/ParselyDemo/Assets.xcassets/second.imageset/Contents.json similarity index 100% rename from ParselyDemo/Assets.xcassets/second.imageset/Contents.json rename to Demo/ParselyDemo/Assets.xcassets/second.imageset/Contents.json diff --git a/ParselyDemo/Assets.xcassets/second.imageset/second.pdf b/Demo/ParselyDemo/Assets.xcassets/second.imageset/second.pdf similarity index 100% rename from ParselyDemo/Assets.xcassets/second.imageset/second.pdf rename to Demo/ParselyDemo/Assets.xcassets/second.imageset/second.pdf diff --git a/ParselyDemo/Base.lproj/LaunchScreen.storyboard b/Demo/ParselyDemo/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from ParselyDemo/Base.lproj/LaunchScreen.storyboard rename to Demo/ParselyDemo/Base.lproj/LaunchScreen.storyboard diff --git a/ParselyDemo/Base.lproj/Main.storyboard b/Demo/ParselyDemo/Base.lproj/Main.storyboard similarity index 100% rename from ParselyDemo/Base.lproj/Main.storyboard rename to Demo/ParselyDemo/Base.lproj/Main.storyboard diff --git a/ParselyDemo/FirstViewController.swift b/Demo/ParselyDemo/FirstViewController.swift similarity index 100% rename from ParselyDemo/FirstViewController.swift rename to Demo/ParselyDemo/FirstViewController.swift diff --git a/ParselyDemo/Info.plist b/Demo/ParselyDemo/Info.plist similarity index 100% rename from ParselyDemo/Info.plist rename to Demo/ParselyDemo/Info.plist diff --git a/ParselyDemo/SecondViewController.swift b/Demo/ParselyDemo/SecondViewController.swift similarity index 100% rename from ParselyDemo/SecondViewController.swift rename to Demo/ParselyDemo/SecondViewController.swift From 156b76c1135bfe1b1b8569851201e9add8c59bc6 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 19 Apr 2023 15:51:04 +1000 Subject: [PATCH 08/12] Add tests to the `podspec` to improve validation --- ParselyAnalytics.podspec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ParselyAnalytics.podspec b/ParselyAnalytics.podspec index 3b224a65..a9f3d472 100644 --- a/ParselyAnalytics.podspec +++ b/ParselyAnalytics.podspec @@ -13,4 +13,8 @@ Pod::Spec.new do |s| s.source = { git: 'https://github.com/Parsely/AnalyticsSDK-iOS.git', tag: s.version.to_s } s.source_files = 'Sources' s.framework = 'Foundation' + s.test_spec 'Tests' do |test_spec| + test_spec.source_files = 'Tests' + test_spec.dependency 'Nimble' + end end From b51a65d6953e42e888b076417dc1536d01cbd5b0 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 19 Apr 2023 13:40:10 +1000 Subject: [PATCH 09/12] Refer to the local package instead of an ad hoc framework target Notice all the `import ParselyTracker` are now `import ParselyAnalytics`, which is consistent with what our users would be doing. --- Demo/ParselyDemo.xcodeproj/project.pbxproj | 254 +++------------------ Demo/ParselyDemo/AppDelegate.swift | 2 +- Demo/ParselyDemo/FirstViewController.swift | 2 +- Tests/EngagedTimeTests.swift | 2 +- Tests/EventQueueTests.swift | 4 +- Tests/EventTests.swift | 2 +- Tests/MetadataTests.swift | 2 +- Tests/ParselyTestCase.swift | 2 +- Tests/ParselyTrackerTests.swift | 2 +- Tests/PixelTests.swift | 2 +- Tests/RequestBuilderTests.swift | 2 +- Tests/SamplerTests.swift | 2 +- Tests/SessionTests.swift | 2 +- Tests/StorageTests.swift | 2 +- Tests/TrackTests.swift | 2 +- Tests/VideoTests.swift | 2 +- Tests/VisitorTests.swift | 2 +- 17 files changed, 52 insertions(+), 236 deletions(-) diff --git a/Demo/ParselyDemo.xcodeproj/project.pbxproj b/Demo/ParselyDemo.xcodeproj/project.pbxproj index 88754f72..fcac4edf 100644 --- a/Demo/ParselyDemo.xcodeproj/project.pbxproj +++ b/Demo/ParselyDemo.xcodeproj/project.pbxproj @@ -8,16 +8,12 @@ /* Begin PBXBuildFile section */ 2A1F02DDE91E502E3B49AFAB /* StorageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1F03819E4FAF1F979D5926 /* StorageTests.swift */; }; - 2A1F0DF37B68B0886A0E6848 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1F0F92460A849C17B26338 /* Storage.swift */; }; 3F147F8F29EF8CA100752DFB /* Nimble in Frameworks */ = {isa = PBXBuildFile; productRef = 3F147F8E29EF8CA100752DFB /* Nimble */; }; + 3F147F9529EF965500752DFB /* ParselyAnalytics in Frameworks */ = {isa = PBXBuildFile; productRef = 3F147F9429EF965500752DFB /* ParselyAnalytics */; }; + 3F147F9729EF96EE00752DFB /* ParselyAnalytics in Frameworks */ = {isa = PBXBuildFile; productRef = 3F147F9629EF96EE00752DFB /* ParselyAnalytics */; }; AA73AAAF2242C1F10089BF1D /* ParselyTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA73AAAE2242C1F10089BF1D /* ParselyTestCase.swift */; }; - AAEDC3272212161F00769350 /* HttpClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAEDC3262212161F00769350 /* HttpClient.swift */; }; - AAF629792216382800F59789 /* ParselyTracker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAEDC32A2212407700769350 /* ParselyTracker.framework */; }; - B205889D220CB67500476E27 /* RequestBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = B205889C220CB67500476E27 /* RequestBuilder.swift */; }; B205889F220CB72A00476E27 /* RequestBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B205889E220CB72A00476E27 /* RequestBuilderTests.swift */; }; - B2BC46FB2208D60A000B937A /* Track.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2BC46FA2208D60A000B937A /* Track.swift */; }; B2C84B66220A03610018BC7B /* SamplerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2C84B65220A03610018BC7B /* SamplerTests.swift */; }; - B2FC40BE221CC42300C70806 /* Metadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FC40BD221CC42300C70806 /* Metadata.swift */; }; B2FC40C0221CC43200C70806 /* MetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FC40BF221CC43200C70806 /* MetadataTests.swift */; }; F40D9A5E20EFF74F0030525E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F40D9A5D20EFF74F0030525E /* AppDelegate.swift */; }; F40D9A6020EFF74F0030525E /* FirstViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F40D9A5F20EFF74F0030525E /* FirstViewController.swift */; }; @@ -26,18 +22,7 @@ F40D9A6720EFF74F0030525E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F40D9A6620EFF74F0030525E /* Assets.xcassets */; }; F40D9A6A20EFF74F0030525E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F40D9A6820EFF74F0030525E /* LaunchScreen.storyboard */; }; F410D63121061D7800DB3EBE /* PixelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F410D63021061D7800DB3EBE /* PixelTests.swift */; }; - F433339720F0087E004BB6F5 /* ParselyTracker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F433338E20F0087E004BB6F5 /* ParselyTracker.framework */; }; F433339E20F0087E004BB6F5 /* ParselyTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F433339D20F0087E004BB6F5 /* ParselyTrackerTests.swift */; }; - F43333A420F0087E004BB6F5 /* ParselyTracker.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F433338E20F0087E004BB6F5 /* ParselyTracker.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - F43333AC20F008B7004BB6F5 /* ParselyTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F40D9A8020EFFADD0030525E /* ParselyTracker.swift */; }; - F43333B620F008EF004BB6F5 /* Session.swift in Sources */ = {isa = PBXBuildFile; fileRef = F43333AD20F008EE004BB6F5 /* Session.swift */; }; - F43333B720F008EF004BB6F5 /* Video.swift in Sources */ = {isa = PBXBuildFile; fileRef = F43333AE20F008EE004BB6F5 /* Video.swift */; }; - F43333B920F008EF004BB6F5 /* Sampler.swift in Sources */ = {isa = PBXBuildFile; fileRef = F43333B020F008EE004BB6F5 /* Sampler.swift */; }; - F43333BA20F008EF004BB6F5 /* EventQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = F43333B120F008EE004BB6F5 /* EventQueue.swift */; }; - F43333BB20F008EF004BB6F5 /* EngagedTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = F43333B220F008EF004BB6F5 /* EngagedTime.swift */; }; - F43333BC20F008EF004BB6F5 /* Pixel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F43333B320F008EF004BB6F5 /* Pixel.swift */; }; - F43333BD20F008EF004BB6F5 /* Visitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F43333B420F008EF004BB6F5 /* Visitor.swift */; }; - F43333BE20F008EF004BB6F5 /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = F43333B520F008EF004BB6F5 /* Event.swift */; }; F441A55C20F3B8BF009B556E /* EventQueueTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F441A55B20F3B8BF009B556E /* EventQueueTests.swift */; }; F441A55E20F53A56009B556E /* EventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F441A55D20F53A56009B556E /* EventTests.swift */; }; F4BF86682190DAFC00BD3867 /* EngagedTimeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4BF86672190DAFC00BD3867 /* EngagedTimeTests.swift */; }; @@ -48,19 +33,12 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - F433339820F0087E004BB6F5 /* PBXContainerItemProxy */ = { + 3FE2171829EF98AC00E34325 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = F40D9A5220EFF74F0030525E /* Project object */; proxyType = 1; - remoteGlobalIDString = F433338D20F0087E004BB6F5; - remoteInfo = ParselyTracker; - }; - F43333A120F0087E004BB6F5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F40D9A5220EFF74F0030525E /* Project object */; - proxyType = 1; - remoteGlobalIDString = F433338D20F0087E004BB6F5; - remoteInfo = ParselyTracker; + remoteGlobalIDString = F40D9A5920EFF74F0030525E; + remoteInfo = ParselyDemo; }; /* End PBXContainerItemProxy section */ @@ -71,7 +49,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - F43333A420F0087E004BB6F5 /* ParselyTracker.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -80,16 +57,12 @@ /* Begin PBXFileReference section */ 2A1F03819E4FAF1F979D5926 /* StorageTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StorageTests.swift; sourceTree = ""; }; - 2A1F0F92460A849C17B26338 /* Storage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Storage.swift; sourceTree = ""; }; + 3F147F9129EF962200752DFB /* AnalyticsSDK-iOS */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "AnalyticsSDK-iOS"; path = ..; sourceTree = ""; }; 3FCAFC8B29E9775A00BC9360 /* UnitTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = UnitTests.xctestplan; sourceTree = ""; }; AA73AAAE2242C1F10089BF1D /* ParselyTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParselyTestCase.swift; sourceTree = ""; }; - AAEDC3262212161F00769350 /* HttpClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpClient.swift; sourceTree = ""; }; AAEDC32A2212407700769350 /* ParselyTracker.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ParselyTracker.framework; path = ../../../Downloads/ParselyTracker.framework; sourceTree = ""; }; - B205889C220CB67500476E27 /* RequestBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestBuilder.swift; sourceTree = ""; }; B205889E220CB72A00476E27 /* RequestBuilderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestBuilderTests.swift; sourceTree = ""; }; - B2BC46FA2208D60A000B937A /* Track.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Track.swift; sourceTree = ""; }; B2C84B65220A03610018BC7B /* SamplerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SamplerTests.swift; sourceTree = ""; }; - B2FC40BD221CC42300C70806 /* Metadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Metadata.swift; sourceTree = ""; }; B2FC40BF221CC43200C70806 /* MetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetadataTests.swift; sourceTree = ""; }; F40D9A5A20EFF74F0030525E /* ParselyDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ParselyDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; F40D9A5D20EFF74F0030525E /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -100,21 +73,10 @@ F40D9A6920EFF74F0030525E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; F40D9A6B20EFF7500030525E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; F40D9A7F20EFF7D70030525E /* AnalyticsSDK.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = AnalyticsSDK.entitlements; sourceTree = ""; }; - F40D9A8020EFFADD0030525E /* ParselyTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParselyTracker.swift; sourceTree = ""; }; F410D63021061D7800DB3EBE /* PixelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PixelTests.swift; sourceTree = ""; }; - F433338E20F0087E004BB6F5 /* ParselyTracker.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ParselyTracker.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F433339120F0087E004BB6F5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; F433339620F0087E004BB6F5 /* ParselyTrackerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ParselyTrackerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; F433339D20F0087E004BB6F5 /* ParselyTrackerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParselyTrackerTests.swift; sourceTree = ""; }; F433339F20F0087E004BB6F5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F43333AD20F008EE004BB6F5 /* Session.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Session.swift; sourceTree = ""; }; - F43333AE20F008EE004BB6F5 /* Video.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Video.swift; sourceTree = ""; }; - F43333B020F008EE004BB6F5 /* Sampler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sampler.swift; sourceTree = ""; }; - F43333B120F008EE004BB6F5 /* EventQueue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventQueue.swift; sourceTree = ""; }; - F43333B220F008EF004BB6F5 /* EngagedTime.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EngagedTime.swift; sourceTree = ""; }; - F43333B320F008EF004BB6F5 /* Pixel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Pixel.swift; sourceTree = ""; }; - F43333B420F008EF004BB6F5 /* Visitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Visitor.swift; sourceTree = ""; }; - F43333B520F008EF004BB6F5 /* Event.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Event.swift; sourceTree = ""; }; F441A55B20F3B8BF009B556E /* EventQueueTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventQueueTests.swift; sourceTree = ""; }; F441A55D20F53A56009B556E /* EventTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventTests.swift; sourceTree = ""; }; F4BF86672190DAFC00BD3867 /* EngagedTimeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EngagedTimeTests.swift; sourceTree = ""; }; @@ -129,14 +91,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AAF629792216382800F59789 /* ParselyTracker.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F433338A20F0087E004BB6F5 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( + 3F147F9729EF96EE00752DFB /* ParselyAnalytics in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -145,13 +100,21 @@ buildActionMask = 2147483647; files = ( 3F147F8F29EF8CA100752DFB /* Nimble in Frameworks */, - F433339720F0087E004BB6F5 /* ParselyTracker.framework in Frameworks */, + 3F147F9529EF965500752DFB /* ParselyAnalytics in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 3F147F9029EF962200752DFB /* Packages */ = { + isa = PBXGroup; + children = ( + 3F147F9129EF962200752DFB /* AnalyticsSDK-iOS */, + ); + name = Packages; + sourceTree = ""; + }; E6EFA5F61B38FE34B3DF5AD2 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -163,8 +126,8 @@ F40D9A5120EFF74F0030525E = { isa = PBXGroup; children = ( + 3F147F9029EF962200752DFB /* Packages */, F40D9A5C20EFF74F0030525E /* ParselyDemo */, - F433338F20F0087E004BB6F5 /* Sources */, F433339C20F0087E004BB6F5 /* Tests */, F40D9A5B20EFF74F0030525E /* Products */, E6EFA5F61B38FE34B3DF5AD2 /* Frameworks */, @@ -175,7 +138,6 @@ isa = PBXGroup; children = ( F40D9A5A20EFF74F0030525E /* ParselyDemo.app */, - F433338E20F0087E004BB6F5 /* ParselyTracker.framework */, F433339620F0087E004BB6F5 /* ParselyTrackerTests.xctest */, ); name = Products; @@ -196,29 +158,6 @@ path = ParselyDemo; sourceTree = ""; }; - F433338F20F0087E004BB6F5 /* Sources */ = { - isa = PBXGroup; - children = ( - AAEDC3262212161F00769350 /* HttpClient.swift */, - F43333B220F008EF004BB6F5 /* EngagedTime.swift */, - F43333B120F008EE004BB6F5 /* EventQueue.swift */, - F43333B520F008EF004BB6F5 /* Event.swift */, - F43333B320F008EF004BB6F5 /* Pixel.swift */, - F43333B020F008EE004BB6F5 /* Sampler.swift */, - F43333AD20F008EE004BB6F5 /* Session.swift */, - F43333AE20F008EE004BB6F5 /* Video.swift */, - F43333B420F008EF004BB6F5 /* Visitor.swift */, - F40D9A8020EFFADD0030525E /* ParselyTracker.swift */, - F433339120F0087E004BB6F5 /* Info.plist */, - 2A1F0F92460A849C17B26338 /* Storage.swift */, - B2BC46FA2208D60A000B937A /* Track.swift */, - B205889C220CB67500476E27 /* RequestBuilder.swift */, - B2FC40BD221CC42300C70806 /* Metadata.swift */, - ); - name = Sources; - path = ../Sources; - sourceTree = ""; - }; F433339C20F0087E004BB6F5 /* Tests */ = { isa = PBXGroup; children = ( @@ -245,16 +184,6 @@ }; /* End PBXGroup section */ -/* Begin PBXHeadersBuildPhase section */ - F433338B20F0087E004BB6F5 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - /* Begin PBXNativeTarget section */ F40D9A5920EFF74F0030525E /* ParselyDemo */ = { isa = PBXNativeTarget; @@ -268,31 +197,15 @@ buildRules = ( ); dependencies = ( - F43333A220F0087E004BB6F5 /* PBXTargetDependency */, ); name = ParselyDemo; + packageProductDependencies = ( + 3F147F9629EF96EE00752DFB /* ParselyAnalytics */, + ); productName = AnalyticsSDK; productReference = F40D9A5A20EFF74F0030525E /* ParselyDemo.app */; productType = "com.apple.product-type.application"; }; - F433338D20F0087E004BB6F5 /* ParselyTracker */ = { - isa = PBXNativeTarget; - buildConfigurationList = F43333A920F0087E004BB6F5 /* Build configuration list for PBXNativeTarget "ParselyTracker" */; - buildPhases = ( - F433338920F0087E004BB6F5 /* Sources */, - F433338A20F0087E004BB6F5 /* Frameworks */, - F433338B20F0087E004BB6F5 /* Headers */, - F433338C20F0087E004BB6F5 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ParselyTracker; - productName = ParselyTracker; - productReference = F433338E20F0087E004BB6F5 /* ParselyTracker.framework */; - productType = "com.apple.product-type.framework"; - }; F433339520F0087E004BB6F5 /* ParselyTrackerTests */ = { isa = PBXNativeTarget; buildConfigurationList = F43333AB20F0087E004BB6F5 /* Build configuration list for PBXNativeTarget "ParselyTrackerTests" */; @@ -304,11 +217,12 @@ buildRules = ( ); dependencies = ( - F433339920F0087E004BB6F5 /* PBXTargetDependency */, + 3FE2171929EF98AC00E34325 /* PBXTargetDependency */, ); name = ParselyTrackerTests; packageProductDependencies = ( 3F147F8E29EF8CA100752DFB /* Nimble */, + 3F147F9429EF965500752DFB /* ParselyAnalytics */, ); productName = ParselyTrackerTests; productReference = F433339620F0087E004BB6F5 /* ParselyTrackerTests.xctest */; @@ -334,11 +248,6 @@ }; }; }; - F433338D20F0087E004BB6F5 = { - CreatedOnToolsVersion = 9.0; - LastSwiftMigration = ""; - ProvisioningStyle = Automatic; - }; F433339520F0087E004BB6F5 = { CreatedOnToolsVersion = 9.0; LastSwiftMigration = ""; @@ -364,7 +273,6 @@ projectRoot = ""; targets = ( F40D9A5920EFF74F0030525E /* ParselyDemo */, - F433338D20F0087E004BB6F5 /* ParselyTracker */, F433339520F0087E004BB6F5 /* ParselyTrackerTests */, ); }; @@ -381,13 +289,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - F433338C20F0087E004BB6F5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; F433339420F0087E004BB6F5 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -408,27 +309,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - F433338920F0087E004BB6F5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B2FC40BE221CC42300C70806 /* Metadata.swift in Sources */, - F43333BD20F008EF004BB6F5 /* Visitor.swift in Sources */, - F43333BC20F008EF004BB6F5 /* Pixel.swift in Sources */, - F43333B620F008EF004BB6F5 /* Session.swift in Sources */, - B205889D220CB67500476E27 /* RequestBuilder.swift in Sources */, - F43333AC20F008B7004BB6F5 /* ParselyTracker.swift in Sources */, - F43333BE20F008EF004BB6F5 /* Event.swift in Sources */, - F43333B720F008EF004BB6F5 /* Video.swift in Sources */, - AAEDC3272212161F00769350 /* HttpClient.swift in Sources */, - F43333BA20F008EF004BB6F5 /* EventQueue.swift in Sources */, - F43333BB20F008EF004BB6F5 /* EngagedTime.swift in Sources */, - F43333B920F008EF004BB6F5 /* Sampler.swift in Sources */, - 2A1F0DF37B68B0886A0E6848 /* Storage.swift in Sources */, - B2BC46FB2208D60A000B937A /* Track.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; F433339220F0087E004BB6F5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -453,15 +333,10 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - F433339920F0087E004BB6F5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = F433338D20F0087E004BB6F5 /* ParselyTracker */; - targetProxy = F433339820F0087E004BB6F5 /* PBXContainerItemProxy */; - }; - F43333A220F0087E004BB6F5 /* PBXTargetDependency */ = { + 3FE2171929EF98AC00E34325 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = F433338D20F0087E004BB6F5 /* ParselyTracker */; - targetProxy = F43333A120F0087E004BB6F5 /* PBXContainerItemProxy */; + target = F40D9A5920EFF74F0030525E /* ParselyDemo */; + targetProxy = 3FE2171829EF98AC00E34325 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -639,64 +514,6 @@ }; name = Release; }; - F43333A520F0087E004BB6F5 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = N3Z6SG5Z94; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = ../Sources/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.parsely.ParselyTracker; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - F43333A620F0087E004BB6F5 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = N3Z6SG5Z94; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = ../Sources/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.parsely.ParselyTracker; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; F43333A720F0087E004BB6F5 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -715,7 +532,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ParselyDemo.app/ParselyDemo"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ParselyDemo.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ParselyDemo"; }; name = Debug; }; @@ -737,7 +554,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ParselyDemo.app/ParselyDemo"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ParselyDemo.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ParselyDemo"; }; name = Release; }; @@ -762,15 +579,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F43333A920F0087E004BB6F5 /* Build configuration list for PBXNativeTarget "ParselyTracker" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F43333A520F0087E004BB6F5 /* Debug */, - F43333A620F0087E004BB6F5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; F43333AB20F0087E004BB6F5 /* Build configuration list for PBXNativeTarget "ParselyTrackerTests" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -799,6 +607,14 @@ package = 3F147F8B29EF8C9800752DFB /* XCRemoteSwiftPackageReference "Nimble" */; productName = Nimble; }; + 3F147F9429EF965500752DFB /* ParselyAnalytics */ = { + isa = XCSwiftPackageProductDependency; + productName = ParselyAnalytics; + }; + 3F147F9629EF96EE00752DFB /* ParselyAnalytics */ = { + isa = XCSwiftPackageProductDependency; + productName = ParselyAnalytics; + }; /* End XCSwiftPackageProductDependency section */ }; rootObject = F40D9A5220EFF74F0030525E /* Project object */; diff --git a/Demo/ParselyDemo/AppDelegate.swift b/Demo/ParselyDemo/AppDelegate.swift index bda8bdc5..40465730 100644 --- a/Demo/ParselyDemo/AppDelegate.swift +++ b/Demo/ParselyDemo/AppDelegate.swift @@ -1,5 +1,5 @@ import UIKit -import ParselyTracker +import ParselyAnalytics @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { diff --git a/Demo/ParselyDemo/FirstViewController.swift b/Demo/ParselyDemo/FirstViewController.swift index 9859e121..ef520bc4 100644 --- a/Demo/ParselyDemo/FirstViewController.swift +++ b/Demo/ParselyDemo/FirstViewController.swift @@ -1,6 +1,6 @@ import UIKit import os.log -import ParselyTracker +import ParselyAnalytics class FirstViewController: UIViewController { let delegate = UIApplication.shared.delegate as! AppDelegate diff --git a/Tests/EngagedTimeTests.swift b/Tests/EngagedTimeTests.swift index a28f9946..f981be1e 100644 --- a/Tests/EngagedTimeTests.swift +++ b/Tests/EngagedTimeTests.swift @@ -1,6 +1,6 @@ import XCTest import os.log -@testable import ParselyTracker +@testable import ParselyAnalytics class EngagedTimeTests: ParselyTestCase { var engagedTime: EngagedTime? diff --git a/Tests/EventQueueTests.swift b/Tests/EventQueueTests.swift index 62f7bfe5..aec8d563 100644 --- a/Tests/EventQueueTests.swift +++ b/Tests/EventQueueTests.swift @@ -1,8 +1,8 @@ import XCTest -@testable import ParselyTracker +@testable import ParselyAnalytics class EventQueueTests: ParselyTestCase { - var queue = ParselyTracker.EventQueue() + var queue = ParselyAnalytics.EventQueue() override func setUp() { super.setUp() diff --git a/Tests/EventTests.swift b/Tests/EventTests.swift index 4fafcf05..01a70968 100644 --- a/Tests/EventTests.swift +++ b/Tests/EventTests.swift @@ -1,5 +1,5 @@ import XCTest -@testable import ParselyTracker +@testable import ParselyAnalytics class EventTests: ParselyTestCase { let testInc: Int = 5 diff --git a/Tests/MetadataTests.swift b/Tests/MetadataTests.swift index 60f30643..83992363 100644 --- a/Tests/MetadataTests.swift +++ b/Tests/MetadataTests.swift @@ -1,4 +1,4 @@ -@testable import ParselyTracker +@testable import ParselyAnalytics import XCTest class MetadataTests: ParselyTestCase { diff --git a/Tests/ParselyTestCase.swift b/Tests/ParselyTestCase.swift index 0f60a811..9e569584 100644 --- a/Tests/ParselyTestCase.swift +++ b/Tests/ParselyTestCase.swift @@ -1,5 +1,5 @@ import XCTest -@testable import ParselyTracker +@testable import ParselyAnalytics class ParselyTestCase: XCTestCase { internal var parselyTestTracker: Parsely! diff --git a/Tests/ParselyTrackerTests.swift b/Tests/ParselyTrackerTests.swift index 4285b714..a689a968 100644 --- a/Tests/ParselyTrackerTests.swift +++ b/Tests/ParselyTrackerTests.swift @@ -1,7 +1,7 @@ import XCTest import Nimble -@testable import ParselyTracker +@testable import ParselyAnalytics class ParselyTrackerTests: ParselyTestCase { let testUrl = "http://example.com/testurl" diff --git a/Tests/PixelTests.swift b/Tests/PixelTests.swift index 7394260e..503c9744 100644 --- a/Tests/PixelTests.swift +++ b/Tests/PixelTests.swift @@ -1,5 +1,5 @@ import XCTest -@testable import ParselyTracker +@testable import ParselyAnalytics class PixelTests: ParselyTestCase { func testBeacon() { diff --git a/Tests/RequestBuilderTests.swift b/Tests/RequestBuilderTests.swift index f7d8973d..1f4270c7 100644 --- a/Tests/RequestBuilderTests.swift +++ b/Tests/RequestBuilderTests.swift @@ -1,4 +1,4 @@ -@testable import ParselyTracker +@testable import ParselyAnalytics import XCTest class RequestBuilderTests: ParselyTestCase { diff --git a/Tests/SamplerTests.swift b/Tests/SamplerTests.swift index 5c1e1b78..9f4d940a 100644 --- a/Tests/SamplerTests.swift +++ b/Tests/SamplerTests.swift @@ -1,5 +1,5 @@ import XCTest -@testable import ParselyTracker +@testable import ParselyAnalytics class SamplerTests: ParselyTestCase { var samplerUnderTest: Sampler? diff --git a/Tests/SessionTests.swift b/Tests/SessionTests.swift index fbabafd3..7e342d45 100644 --- a/Tests/SessionTests.swift +++ b/Tests/SessionTests.swift @@ -1,5 +1,5 @@ import XCTest -@testable import ParselyTracker +@testable import ParselyAnalytics class SessionTests: ParselyTestCase { var sessions: SessionManager! diff --git a/Tests/StorageTests.swift b/Tests/StorageTests.swift index 16773daa..170da0b8 100644 --- a/Tests/StorageTests.swift +++ b/Tests/StorageTests.swift @@ -1,5 +1,5 @@ import XCTest -@testable import ParselyTracker +@testable import ParselyAnalytics class StorageTests: ParselyTestCase { var storage = Storage() diff --git a/Tests/TrackTests.swift b/Tests/TrackTests.swift index 32203f88..360a347a 100644 --- a/Tests/TrackTests.swift +++ b/Tests/TrackTests.swift @@ -1,5 +1,5 @@ import XCTest -@testable import ParselyTracker +@testable import ParselyAnalytics class TrackTests: ParselyTestCase { var track: Track? diff --git a/Tests/VideoTests.swift b/Tests/VideoTests.swift index e196e81c..bde0e468 100644 --- a/Tests/VideoTests.swift +++ b/Tests/VideoTests.swift @@ -1,5 +1,5 @@ import XCTest -@testable import ParselyTracker +@testable import ParselyAnalytics class VideoTests: ParselyTestCase { let testVideoId: String = "videoId" diff --git a/Tests/VisitorTests.swift b/Tests/VisitorTests.swift index 66c195dd..8e2714fd 100644 --- a/Tests/VisitorTests.swift +++ b/Tests/VisitorTests.swift @@ -1,5 +1,5 @@ import XCTest -@testable import ParselyTracker +@testable import ParselyAnalytics class VisitorTests: ParselyTestCase { let visitors: VisitorManager = VisitorManager() From 9b589b4ad42f5b26110ce7dfbefda30eef4d759c Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 19 Apr 2023 16:14:18 +1000 Subject: [PATCH 10/12] Add call to `configure(siteId:)` to test fail in new setup I think the reason the tests started to fail with this setup is that the path to the host app for the unit tests changed and that, for some reason still unknown to me, seem to clash with the configure call execution. --- Tests/EngagedTimeTests.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Tests/EngagedTimeTests.swift b/Tests/EngagedTimeTests.swift index f981be1e..5316af80 100644 --- a/Tests/EngagedTimeTests.swift +++ b/Tests/EngagedTimeTests.swift @@ -68,6 +68,9 @@ class EngagedTimeTests: ParselyTestCase { func testGlobalPause() { + // This is call to configure required for the start-stop mechanism to work + sharedInstance?.configure(siteId: ParselyTestCase.testApikey) + let assertionTimeout:TimeInterval = TimeInterval(3) let acceptableDifference:TimeInterval = TimeInterval(0.2) From 64fa94fb052f79fdb214727032d862b755752e30 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 19 Apr 2023 16:26:25 +1000 Subject: [PATCH 11/12] Remove host app setting for unit tests Notice this also required updating the test for the generated user agent because the generation logic uses the app name. --- Demo/ParselyDemo.xcodeproj/project.pbxproj | 3 --- Tests/RequestBuilderTests.swift | 11 ++++++----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/Demo/ParselyDemo.xcodeproj/project.pbxproj b/Demo/ParselyDemo.xcodeproj/project.pbxproj index fcac4edf..96b50e5a 100644 --- a/Demo/ParselyDemo.xcodeproj/project.pbxproj +++ b/Demo/ParselyDemo.xcodeproj/project.pbxproj @@ -252,7 +252,6 @@ CreatedOnToolsVersion = 9.0; LastSwiftMigration = ""; ProvisioningStyle = Automatic; - TestTargetID = F40D9A5920EFF74F0030525E; }; }; }; @@ -532,7 +531,6 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ParselyDemo.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ParselyDemo"; }; name = Debug; }; @@ -554,7 +552,6 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ParselyDemo.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ParselyDemo"; }; name = Release; }; diff --git a/Tests/RequestBuilderTests.swift b/Tests/RequestBuilderTests.swift index 1f4270c7..4f85883f 100644 --- a/Tests/RequestBuilderTests.swift +++ b/Tests/RequestBuilderTests.swift @@ -1,3 +1,4 @@ +import Nimble @testable import ParselyAnalytics import XCTest @@ -80,10 +81,10 @@ class RequestBuilderTests: ParselyTestCase { } func testGetUserAgent() { - let result = RequestBuilder.getUserAgent() - let expectedSubstring = "ParselyDemo/1.0 iOS" - XCTAssert(result.contains(expectedSubstring), - "The result of RequestBuilder.getUserAgent should accurately represent the simulator agent" - ) + // When the tests run without a host app, like in our setup, the generated User Agent will + // be in the format + // + // xctest/ iOS/ () + expect(RequestBuilder.getUserAgent()).to(match("xctest\\/\\d+\\.\\d+ iOS\\/\\d+\\.\\d+ (.*)")) } } From dedd2c4b6fd2432c58772d1590ca11ea21e6b2ab Mon Sep 17 00:00:00 2001 From: Tony Li Date: Mon, 24 Apr 2023 11:26:47 +1200 Subject: [PATCH 12/12] Remove CocoaPods related steps from the PR GitHub Action --- .github/workflows/ios.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 456ca01d..e715ef57 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -30,17 +30,9 @@ jobs: runs-on: ${{ matrix.macos }} steps: - uses: actions/checkout@v3 - - uses: actions/cache@v2 - with: - path: Pods - key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} - restore-keys: | - ${{ runner.os }}-pods- - uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: ${{ matrix.xcode }} - - name: CocoaPod Install - run: pod install - name: Build and Test run: | xcodebuild test \