diff --git a/.github/workflows/pre-release-qa.yml b/.github/workflows/pre-release-qa.yml index 0a2d30548..34b0bffa1 100644 --- a/.github/workflows/pre-release-qa.yml +++ b/.github/workflows/pre-release-qa.yml @@ -4,7 +4,7 @@ on: [push] jobs: verify-cocoapods-iOS: - runs-on: macos-latest + runs-on: macos-15 steps: - name: Check out code uses: actions/checkout@v4 @@ -33,7 +33,7 @@ jobs: carthage update --use-xcframeworks xcodebuild test -scheme iOSReleaseTest -project iOSReleaseTest.xcodeproj -destination "$DESTINATION" | xcpretty && exit ${PIPESTATUS[0]} verify-SPM-iOS: - runs-on: macos-latest + runs-on: macos-15 steps: - name: Check out code uses: actions/checkout@v4 @@ -44,7 +44,7 @@ jobs: cd SDKIntegrationTestApps/iOSReleaseTest-SPM/ xcodebuild test -scheme iOSReleaseTest -project iOSReleaseTest.xcodeproj -destination "$DESTINATION" | xcpretty && exit ${PIPESTATUS[0]} verify-manually-with-xcframework-iOS: - runs-on: macos-latest + runs-on: macos-15 steps: - name: Check out code uses: actions/checkout@v4 @@ -56,7 +56,7 @@ jobs: cd SDKIntegrationTestApps/iOSReleaseTest-Manual/ xcodebuild test -scheme iOSReleaseTest -project iOSReleaseTest.xcodeproj -destination "$DESTINATION" | xcpretty && exit ${PIPESTATUS[0]} verify-manually-with-StaticFramework-iOS: - runs-on: macos-latest + runs-on: macos-15 steps: - name: Check out code uses: actions/checkout@v4 @@ -68,7 +68,7 @@ jobs: cd SDKIntegrationTestApps/iOSReleaseTest-Manual-Static/ xcodebuild test -scheme iOSReleaseTest -project iOSReleaseTest.xcodeproj -destination "$DESTINATION" | xcpretty && exit ${PIPESTATUS[0]} verify-cocoapods-tvOS: - runs-on: macos-latest + runs-on: macos-15 steps: - name: Check out code uses: actions/checkout@v4 @@ -80,7 +80,7 @@ jobs: pod install xcodebuild test -scheme tvOSReleaseTest -workspace tvOSReleaseTest.xcworkspace -destination "$DESTINATION" | xcpretty && exit ${PIPESTATUS[0]} verify-carthage-tvOS: - runs-on: macos-latest + runs-on: macos-15 steps: - name: Check out code uses: actions/checkout@v4 @@ -91,7 +91,7 @@ jobs: cd SDKIntegrationTestApps/tvOSReleaseTest-Carthage/ echo "Skipping it ... its broken" verify-manually-with-xcframework-tvOS: - runs-on: macos-latest + runs-on: macos-15 steps: - name: Check out code uses: actions/checkout@v4 diff --git a/Branch-TestBed/Branch-TestBed.xcodeproj/project.pbxproj b/Branch-TestBed/Branch-TestBed.xcodeproj/project.pbxproj index c55c7fb00..dd3e784eb 100644 --- a/Branch-TestBed/Branch-TestBed.xcodeproj/project.pbxproj +++ b/Branch-TestBed/Branch-TestBed.xcodeproj/project.pbxproj @@ -151,7 +151,6 @@ 5F644C242B7AA811000DCD78 /* BranchSpotlightUrlRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F644B932B7AA811000DCD78 /* BranchSpotlightUrlRequest.h */; }; 5F644C252B7AA811000DCD78 /* BranchContentDiscoveryManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F644B942B7AA811000DCD78 /* BranchContentDiscoveryManifest.h */; }; 5F644C262B7AA811000DCD78 /* BNCConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F644B952B7AA811000DCD78 /* BNCConfig.h */; }; - 5F644C272B7AA811000DCD78 /* BranchConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F644B962B7AA811000DCD78 /* BranchConstants.h */; }; 5F644C282B7AA811000DCD78 /* BNCPartnerParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F644B972B7AA811000DCD78 /* BNCPartnerParameters.h */; }; 5F644C292B7AA811000DCD78 /* BranchJsonConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F644B982B7AA811000DCD78 /* BranchJsonConfig.h */; }; 5F644C2A2B7AA811000DCD78 /* BranchLATDRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F644B992B7AA811000DCD78 /* BranchLATDRequest.h */; }; @@ -247,9 +246,9 @@ E7AC747B2DB0700D002D8C40 /* BranchSDK in Frameworks */ = {isa = PBXBuildFile; productRef = E7AC747A2DB0700D002D8C40 /* BranchSDK */; }; E7AC747E2DB0714B002D8C40 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = E7AC747D2DB07145002D8C40 /* libc++.tbd */; }; E7AE4A092DFB2C4400696805 /* BranchConfigurationControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E7AE4A082DFB2C4400696805 /* BranchConfigurationControllerTests.m */; }; - E7AE4A0C2DFB2D0100696805 /* BranchConfigurationController.h in Headers */ = {isa = PBXBuildFile; fileRef = E7AE4A0B2DFB2D0100696805 /* BranchConfigurationController.h */; }; + E7CA74B22E1B4890002EFB40 /* BranchConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = E7CA74B12E1B4890002EFB40 /* BranchConstants.h */; }; + E7CA74B42E1B4944002EFB40 /* ConfigurationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7CA74B32E1B4944002EFB40 /* ConfigurationController.swift */; }; E7E28ECA2DD2424C00F75D0D /* BNCInAppBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = E7E28EC82DD2424C00F75D0D /* BNCInAppBrowser.m */; }; - E7FC47732DFC7B020072B3ED /* BranchConfigurationController.m in Sources */ = {isa = PBXBuildFile; fileRef = E7FC47722DFC7B020072B3ED /* BranchConfigurationController.m */; }; F1CF14111F4CC79F00BB2694 /* CoreSpotlight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 67F270881BA9FCFF002546A7 /* CoreSpotlight.framework */; settings = {ATTRIBUTES = (Required, ); }; }; /* End PBXBuildFile section */ @@ -379,7 +378,7 @@ 5F644B3B2B7AA810000DCD78 /* BNCNetworkInterface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BNCNetworkInterface.m; sourceTree = ""; }; 5F644B3C2B7AA810000DCD78 /* BNCPreferenceHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BNCPreferenceHelper.m; sourceTree = ""; }; 5F644B3D2B7AA810000DCD78 /* BNCConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BNCConfig.m; sourceTree = ""; }; - 5F644B3E2B7AA810000DCD78 /* BranchConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BranchConstants.m; sourceTree = ""; }; + 5F644B3E2B7AA810000DCD78 /* BranchConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BranchConstants.m; path = ../BranchSDK_ObjC/BranchConstants.m; sourceTree = ""; }; 5F644B3F2B7AA810000DCD78 /* BranchContentDiscoveryManifest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BranchContentDiscoveryManifest.m; sourceTree = ""; }; 5F644B402B7AA810000DCD78 /* BranchSpotlightUrlRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BranchSpotlightUrlRequest.m; sourceTree = ""; }; 5F644B422B7AA810000DCD78 /* BranchContentDiscoverer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BranchContentDiscoverer.m; sourceTree = ""; }; @@ -461,7 +460,6 @@ 5F644B932B7AA811000DCD78 /* BranchSpotlightUrlRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BranchSpotlightUrlRequest.h; sourceTree = ""; }; 5F644B942B7AA811000DCD78 /* BranchContentDiscoveryManifest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BranchContentDiscoveryManifest.h; sourceTree = ""; }; 5F644B952B7AA811000DCD78 /* BNCConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BNCConfig.h; sourceTree = ""; }; - 5F644B962B7AA811000DCD78 /* BranchConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BranchConstants.h; sourceTree = ""; }; 5F644B972B7AA811000DCD78 /* BNCPartnerParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BNCPartnerParameters.h; sourceTree = ""; }; 5F644B982B7AA811000DCD78 /* BranchJsonConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BranchJsonConfig.h; sourceTree = ""; }; 5F644B992B7AA811000DCD78 /* BranchLATDRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BranchLATDRequest.h; sourceTree = ""; }; @@ -573,9 +571,9 @@ E7AC74782DB06D47002D8C40 /* NSError+Branch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSError+Branch.h"; sourceTree = ""; }; E7AC747D2DB07145002D8C40 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk/usr/lib/libc++.tbd"; sourceTree = DEVELOPER_DIR; }; E7AE4A082DFB2C4400696805 /* BranchConfigurationControllerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BranchConfigurationControllerTests.m; sourceTree = ""; }; - E7AE4A0B2DFB2D0100696805 /* BranchConfigurationController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BranchConfigurationController.h; sourceTree = ""; }; + E7CA74B12E1B4890002EFB40 /* BranchConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BranchConstants.h; path = ../Sources/BranchSDK_ObjC/Public/BranchConstants.h; sourceTree = SOURCE_ROOT; }; + E7CA74B32E1B4944002EFB40 /* ConfigurationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ConfigurationController.swift; path = ../Sources/BranchSDK_Swift/ConfigurationController.swift; sourceTree = SOURCE_ROOT; }; E7E28EC82DD2424C00F75D0D /* BNCInAppBrowser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BNCInAppBrowser.m; sourceTree = ""; }; - E7FC47722DFC7B020072B3ED /* BranchConfigurationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = BranchConfigurationController.m; path = ../Sources/BranchSDK/BranchConfigurationController.m; sourceTree = ""; }; F1D4F9AC1F323F01002D13FF /* Branch-TestBed-UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Branch-TestBed-UITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -727,6 +725,7 @@ 5F644B252B7AA810000DCD78 /* BranchSDK */ = { isa = PBXGroup; children = ( + E7CA74B32E1B4944002EFB40 /* ConfigurationController.swift */, E563942F2CC7AC9500E18E65 /* BranchFileLogger.m */, 5F644BB02B7AA811000DCD78 /* BNCAppGroupsData.m */, 5F644BA82B7AA811000DCD78 /* BNCAppleReceipt.m */, @@ -810,6 +809,7 @@ 5F644B522B7AA810000DCD78 /* Public */ = { isa = PBXGroup; children = ( + E7CA74B12E1B4890002EFB40 /* BranchConstants.h */, 5F644B5E2B7AA810000DCD78 /* BNCCallbacks.h */, 5F644B5A2B7AA810000DCD78 /* BNCCurrency.h */, 5F644B612B7AA810000DCD78 /* BNCInitSessionResponse.h */, @@ -845,7 +845,6 @@ 5F644B6E2B7AA810000DCD78 /* Private */ = { isa = PBXGroup; children = ( - E7AE4A0B2DFB2D0100696805 /* BranchConfigurationController.h */, E71E397A2DD3C14800110F59 /* BNCInAppBrowser.h */, 5F644B762B7AA810000DCD78 /* BNCAppGroupsData.h */, 5F644B702B7AA810000DCD78 /* BNCAppleReceipt.h */, @@ -878,7 +877,6 @@ 5F644B842B7AA811000DCD78 /* BNCUserAgentCollector.h */, E7AC74562DB0639E002D8C40 /* BNCODMInfoCollector.h */, 5F644B8D2B7AA811000DCD78 /* Branch+Validator.h */, - 5F644B962B7AA811000DCD78 /* BranchConstants.h */, 5F644B922B7AA811000DCD78 /* BranchContentDiscoverer.h */, 5F644B942B7AA811000DCD78 /* BranchContentDiscoveryManifest.h */, 5F644B722B7AA810000DCD78 /* BranchContentPathProperties.h */, @@ -924,7 +922,6 @@ 670016571940F51400A9E103 = { isa = PBXGroup; children = ( - E7FC47722DFC7B020072B3ED /* BranchConfigurationController.m */, E7AC74762DB06B42002D8C40 /* Reflection_ODM_Tests.xctestplan */, 6589EBA52674270100F2E28B /* Branch-TestBed-CI.xctestplan */, 033FC71025AC1E5800D8319E /* Branch-TestBed.xctestplan */, @@ -1062,6 +1059,7 @@ 5F644C032B7AA811000DCD78 /* BranchContentPathProperties.h in Headers */, 5F644C042B7AA811000DCD78 /* BNCSKAdNetwork.h in Headers */, 5F644C0E2B7AA811000DCD78 /* BNCQRCodeCache.h in Headers */, + E7CA74B22E1B4890002EFB40 /* BranchConstants.h in Headers */, 5F644C2E2B7AA811000DCD78 /* BNCNetworkService.h in Headers */, 5F644C1B2B7AA811000DCD78 /* BNCSystemObserver.h in Headers */, 5F644C292B7AA811000DCD78 /* BranchJsonConfig.h in Headers */, @@ -1074,7 +1072,6 @@ 5F644C052B7AA811000DCD78 /* BNCJSONUtility.h in Headers */, 5F644C2D2B7AA811000DCD78 /* BNCReferringURLUtility.h in Headers */, 5F644C0B2B7AA811000DCD78 /* BNCEventUtils.h in Headers */, - 5F644C272B7AA811000DCD78 /* BranchConstants.h in Headers */, 5F644C002B7AA811000DCD78 /* BNCKeyChain.h in Headers */, 5F644C1D2B7AA811000DCD78 /* BranchInstallRequest.h in Headers */, 5F644C0D2B7AA811000DCD78 /* BranchShortUrlSyncRequest.h in Headers */, @@ -1097,7 +1094,6 @@ 5F644C062B7AA811000DCD78 /* UIViewController+Branch.h in Headers */, 5F644C022B7AA811000DCD78 /* BNCPasteboard.h in Headers */, 5F644C0F2B7AA811000DCD78 /* BranchOpenRequest.h in Headers */, - E7AE4A0C2DFB2D0100696805 /* BranchConfigurationController.h in Headers */, 5F644C2C2B7AA811000DCD78 /* BNCRequestFactory.h in Headers */, 5F644C142B7AA811000DCD78 /* BNCDeviceSystem.h in Headers */, ); @@ -1238,6 +1234,7 @@ TargetAttributes = { 466B58371B17773000A69EDE = { CreatedOnToolsVersion = 6.3.2; + LastSwiftMigration = 1640; }; 5F8B7B3A21B5F5CD009CE0A6 = { CreatedOnToolsVersion = 10.1; @@ -1374,7 +1371,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E7FC47732DFC7B020072B3ED /* BranchConfigurationController.m in Sources */, + E7CA74B42E1B4944002EFB40 /* ConfigurationController.swift in Sources */, 5F644BB92B7AA811000DCD78 /* NSError+Branch.m in Sources */, 5F644C482B7AA811000DCD78 /* BNCCallbackMap.m in Sources */, 5F644BBE2B7AA811000DCD78 /* BNCApplication.m in Sources */, diff --git a/BranchSDK.podspec b/BranchSDK.podspec index 35ff4cca3..31c9e28fd 100644 --- a/BranchSDK.podspec +++ b/BranchSDK.podspec @@ -18,10 +18,12 @@ Use the Branch SDK (branch.io) to create and power the links that point back to s.ios.deployment_target = '12.0' s.tvos.deployment_target = '12.0' + s.swift_versions = ['5.0', '5.1', '5.2', '5.3', '5.4', '5.5', '5.6', '5.7', '5.8', '5.9', '6.0'] + s.resource_bundles = { 'BranchSDK' => 'Sources/Resources/*.xcprivacy' } - s.ios.source_files = "Sources/BranchSDK/**/*.{h,m}" + s.ios.source_files = "Sources/BranchSDK/**/*.{h,m}", "Sources/BranchSDK_Swift/**/*.swift", "Sources/BranchSDK_ObjC/**/*.{h,m}" - s.tvos.source_files = "Sources/BranchSDK/**/*.{h,m}" + s.tvos.source_files = "Sources/BranchSDK/**/*.{h,m}", "Sources/BranchSDK_Swift/**/*.swift", "Sources/BranchSDK_ObjC/**/*.{h,m}" s.tvos.exclude_files = "Sources/BranchSDK/**/BNCContentDiscoveryManager.{h,m}", "Sources/BranchSDK/**/BNCUserAgentCollector.{h,m}", "Sources/BranchSDK/**/BNCSpotlightService.{h,m}", diff --git a/BranchSDK.xcodeproj/project.pbxproj b/BranchSDK.xcodeproj/project.pbxproj index 74de0d1d8..02d51e7fa 100644 --- a/BranchSDK.xcodeproj/project.pbxproj +++ b/BranchSDK.xcodeproj/project.pbxproj @@ -383,9 +383,6 @@ 5FCDD5462B7AC6A300EAF29F /* BNCConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FCDD3DB2B7AC6A100EAF29F /* BNCConfig.h */; }; 5FCDD5472B7AC6A300EAF29F /* BNCConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FCDD3DB2B7AC6A100EAF29F /* BNCConfig.h */; }; 5FCDD5482B7AC6A300EAF29F /* BNCConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FCDD3DB2B7AC6A100EAF29F /* BNCConfig.h */; }; - 5FCDD5492B7AC6A300EAF29F /* BranchConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FCDD3DC2B7AC6A100EAF29F /* BranchConstants.h */; }; - 5FCDD54A2B7AC6A300EAF29F /* BranchConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FCDD3DC2B7AC6A100EAF29F /* BranchConstants.h */; }; - 5FCDD54B2B7AC6A300EAF29F /* BranchConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FCDD3DC2B7AC6A100EAF29F /* BranchConstants.h */; }; 5FCDD54C2B7AC6A300EAF29F /* BNCPartnerParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FCDD3DD2B7AC6A100EAF29F /* BNCPartnerParameters.h */; }; 5FCDD54D2B7AC6A300EAF29F /* BNCPartnerParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FCDD3DD2B7AC6A100EAF29F /* BNCPartnerParameters.h */; }; 5FCDD54E2B7AC6A300EAF29F /* BNCPartnerParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FCDD3DD2B7AC6A100EAF29F /* BNCPartnerParameters.h */; }; @@ -499,17 +496,17 @@ E71E39722DD3A92900110F59 /* BNCInAppBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = E71E396D2DD3A92900110F59 /* BNCInAppBrowser.h */; }; E71E39732DD3A92900110F59 /* BNCInAppBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = E71E396E2DD3A92900110F59 /* BNCInAppBrowser.m */; }; E71E39742DD3A92900110F59 /* BNCInAppBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = E71E396D2DD3A92900110F59 /* BNCInAppBrowser.h */; }; - E73D02812DEE8AE90076C3F1 /* BranchConfigurationController.m in Sources */ = {isa = PBXBuildFile; fileRef = E73D02802DEE8AE90076C3F1 /* BranchConfigurationController.m */; }; - E73D02822DEE8AE90076C3F1 /* BranchConfigurationController.h in Headers */ = {isa = PBXBuildFile; fileRef = E73D027F2DEE8AE90076C3F1 /* BranchConfigurationController.h */; }; - E73D02832DEE8AE90076C3F1 /* BranchConfigurationController.h in Headers */ = {isa = PBXBuildFile; fileRef = E73D027F2DEE8AE90076C3F1 /* BranchConfigurationController.h */; }; - E73D02842DEE8AE90076C3F1 /* BranchConfigurationController.m in Sources */ = {isa = PBXBuildFile; fileRef = E73D02802DEE8AE90076C3F1 /* BranchConfigurationController.m */; }; - E73D02852DEE8AE90076C3F1 /* BranchConfigurationController.m in Sources */ = {isa = PBXBuildFile; fileRef = E73D02802DEE8AE90076C3F1 /* BranchConfigurationController.m */; }; - E73D02862DEE8AE90076C3F1 /* BranchConfigurationController.h in Headers */ = {isa = PBXBuildFile; fileRef = E73D027F2DEE8AE90076C3F1 /* BranchConfigurationController.h */; }; + E7931D842E01C8AE0007A374 /* ConfigurationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7931D832E01C8AE0007A374 /* ConfigurationController.swift */; }; + E7931D852E01C8AE0007A374 /* ConfigurationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7931D832E01C8AE0007A374 /* ConfigurationController.swift */; }; + E7931D862E01C8AE0007A374 /* ConfigurationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7931D832E01C8AE0007A374 /* ConfigurationController.swift */; }; E7F311AE2DACB4D400F824A7 /* BNCODMInfoCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = E7F311AD2DACB4D400F824A7 /* BNCODMInfoCollector.m */; }; E7F311AF2DACB4D400F824A7 /* BNCODMInfoCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = E7F311AD2DACB4D400F824A7 /* BNCODMInfoCollector.m */; }; E7F311B12DACB54100F824A7 /* BNCODMInfoCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = E7F311B02DACB54100F824A7 /* BNCODMInfoCollector.h */; }; E7F311B22DACB54100F824A7 /* BNCODMInfoCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = E7F311B02DACB54100F824A7 /* BNCODMInfoCollector.h */; }; E7F311B32DACB54100F824A7 /* BNCODMInfoCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = E7F311B02DACB54100F824A7 /* BNCODMInfoCollector.h */; }; + E7FBA85F2E14492700E7AAD9 /* BranchConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = E7FBA85E2E14492600E7AAD9 /* BranchConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E7FBA8602E1449D100E7AAD9 /* BranchConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = E7FBA85E2E14492600E7AAD9 /* BranchConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E7FBA8612E1449D100E7AAD9 /* BranchConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = E7FBA85E2E14492600E7AAD9 /* BranchConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -599,7 +596,7 @@ 5FCDD3812B7AC6A100EAF29F /* BNCNetworkInterface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BNCNetworkInterface.m; sourceTree = ""; }; 5FCDD3822B7AC6A100EAF29F /* BNCPreferenceHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BNCPreferenceHelper.m; sourceTree = ""; }; 5FCDD3832B7AC6A100EAF29F /* BNCConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BNCConfig.m; sourceTree = ""; }; - 5FCDD3842B7AC6A100EAF29F /* BranchConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BranchConstants.m; sourceTree = ""; }; + 5FCDD3842B7AC6A100EAF29F /* BranchConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BranchConstants.m; path = ../BranchSDK_ObjC/BranchConstants.m; sourceTree = ""; }; 5FCDD3852B7AC6A100EAF29F /* BranchContentDiscoveryManifest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BranchContentDiscoveryManifest.m; sourceTree = ""; }; 5FCDD3862B7AC6A100EAF29F /* BranchSpotlightUrlRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BranchSpotlightUrlRequest.m; sourceTree = ""; }; 5FCDD3882B7AC6A100EAF29F /* BranchContentDiscoverer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BranchContentDiscoverer.m; sourceTree = ""; }; @@ -681,7 +678,6 @@ 5FCDD3D92B7AC6A100EAF29F /* BranchSpotlightUrlRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BranchSpotlightUrlRequest.h; sourceTree = ""; }; 5FCDD3DA2B7AC6A100EAF29F /* BranchContentDiscoveryManifest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BranchContentDiscoveryManifest.h; sourceTree = ""; }; 5FCDD3DB2B7AC6A100EAF29F /* BNCConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BNCConfig.h; sourceTree = ""; }; - 5FCDD3DC2B7AC6A100EAF29F /* BranchConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BranchConstants.h; sourceTree = ""; }; 5FCDD3DD2B7AC6A100EAF29F /* BNCPartnerParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BNCPartnerParameters.h; sourceTree = ""; }; 5FCDD3DE2B7AC6A100EAF29F /* BranchJsonConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BranchJsonConfig.h; sourceTree = ""; }; 5FCDD3DF2B7AC6A100EAF29F /* BranchLATDRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BranchLATDRequest.h; sourceTree = ""; }; @@ -723,10 +719,10 @@ E52E5B092CC79E5C00F553EE /* BranchFileLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BranchFileLogger.m; sourceTree = ""; }; E71E396D2DD3A92900110F59 /* BNCInAppBrowser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BNCInAppBrowser.h; sourceTree = ""; }; E71E396E2DD3A92900110F59 /* BNCInAppBrowser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BNCInAppBrowser.m; sourceTree = ""; }; - E73D027F2DEE8AE90076C3F1 /* BranchConfigurationController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BranchConfigurationController.h; sourceTree = ""; }; - E73D02802DEE8AE90076C3F1 /* BranchConfigurationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BranchConfigurationController.m; sourceTree = ""; }; + E7931D832E01C8AE0007A374 /* ConfigurationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ConfigurationController.swift; path = ../BranchSDK_Swift/ConfigurationController.swift; sourceTree = ""; }; E7F311AD2DACB4D400F824A7 /* BNCODMInfoCollector.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BNCODMInfoCollector.m; sourceTree = ""; }; E7F311B02DACB54100F824A7 /* BNCODMInfoCollector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BNCODMInfoCollector.h; sourceTree = ""; }; + E7FBA85E2E14492600E7AAD9 /* BranchConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BranchConstants.h; path = ../../BranchSDK_ObjC/Public/BranchConstants.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -840,6 +836,7 @@ 5FCDD36B2B7AC6A100EAF29F /* BranchSDK */ = { isa = PBXGroup; children = ( + E7931D832E01C8AE0007A374 /* ConfigurationController.swift */, E71E396E2DD3A92900110F59 /* BNCInAppBrowser.m */, E52E5B092CC79E5C00F553EE /* BranchFileLogger.m */, 5FCDD3F62B7AC6A100EAF29F /* BNCAppGroupsData.m */, @@ -912,7 +909,6 @@ 5FCDD3732B7AC6A100EAF29F /* NSMutableDictionary+Branch.m */, 5FCDD37C2B7AC6A100EAF29F /* NSString+Branch.m */, 5FCDD3F52B7AC6A100EAF29F /* UIViewController+Branch.m */, - E73D02802DEE8AE90076C3F1 /* BranchConfigurationController.m */, 5FCDD3B42B7AC6A100EAF29F /* Private */, 5FCDD3982B7AC6A100EAF29F /* Public */, ); @@ -951,6 +947,7 @@ 5FCDD39F2B7AC6A100EAF29F /* BranchSDK.h */, 5FCDD3A52B7AC6A100EAF29F /* BranchShareLink.h */, 5FCDD3AC2B7AC6A100EAF29F /* BranchUniversalObject.h */, + E7FBA85E2E14492600E7AAD9 /* BranchConstants.h */, ); path = Public; sourceTree = ""; @@ -989,7 +986,6 @@ 5FCDD3CA2B7AC6A100EAF29F /* BNCUserAgentCollector.h */, E7F311B02DACB54100F824A7 /* BNCODMInfoCollector.h */, 5FCDD3D32B7AC6A100EAF29F /* Branch+Validator.h */, - 5FCDD3DC2B7AC6A100EAF29F /* BranchConstants.h */, 5FCDD3D82B7AC6A100EAF29F /* BranchContentDiscoverer.h */, 5FCDD3DA2B7AC6A100EAF29F /* BranchContentDiscoveryManifest.h */, 5FCDD3B82B7AC6A100EAF29F /* BranchContentPathProperties.h */, @@ -1006,7 +1002,6 @@ E52E5B052CC79E4E00F553EE /* BranchFileLogger.h */, 5FCDD3BB2B7AC6A100EAF29F /* UIViewController+Branch.h */, E71E396D2DD3A92900110F59 /* BNCInAppBrowser.h */, - E73D027F2DEE8AE90076C3F1 /* BranchConfigurationController.h */, ); path = Private; sourceTree = ""; @@ -1039,6 +1034,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + E7FBA85F2E14492700E7AAD9 /* BranchConstants.h in Headers */, 5FCDD52E2B7AC6A300EAF29F /* Branch+Validator.h in Headers */, 5FCDD4A42B7AC6A200EAF29F /* BNCCallbacks.h in Headers */, 5FCDD4922B7AC6A100EAF29F /* BranchLinkProperties.h in Headers */, @@ -1071,7 +1067,6 @@ 5FCDD5462B7AC6A300EAF29F /* BNCConfig.h in Headers */, 5FCDD4E62B7AC6A200EAF29F /* UIViewController+Branch.h in Headers */, 5F5FDA1A2B7DE31E00F14A43 /* BranchLogger.h in Headers */, - 5FCDD5492B7AC6A300EAF29F /* BranchConstants.h in Headers */, E7F311B22DACB54100F824A7 /* BNCODMInfoCollector.h in Headers */, 5FCDD5402B7AC6A300EAF29F /* BranchSpotlightUrlRequest.h in Headers */, 5FCDD5552B7AC6A300EAF29F /* BNCCrashlyticsWrapper.h in Headers */, @@ -1113,7 +1108,6 @@ 5FCDD54F2B7AC6A300EAF29F /* BranchJsonConfig.h in Headers */, 5FCDD4E02B7AC6A200EAF29F /* BNCSKAdNetwork.h in Headers */, 5FCDD5102B7AC6A300EAF29F /* BNCDeviceSystem.h in Headers */, - E73D02832DEE8AE90076C3F1 /* BranchConfigurationController.h in Headers */, 5FCDD51F2B7AC6A300EAF29F /* BNCNetworkInterface.h in Headers */, 5FA71BA82B7AE6B2008009CA /* Branch.h in Headers */, ); @@ -1123,6 +1117,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + E7FBA8602E1449D100E7AAD9 /* BranchConstants.h in Headers */, 5FCDD52F2B7AC6A300EAF29F /* Branch+Validator.h in Headers */, 5FCDD4A52B7AC6A200EAF29F /* BNCCallbacks.h in Headers */, 5FCDD4932B7AC6A100EAF29F /* BranchLinkProperties.h in Headers */, @@ -1157,7 +1152,6 @@ 5F5FDA1B2B7DE31E00F14A43 /* BranchLogger.h in Headers */, 5FCDD4E72B7AC6A200EAF29F /* UIViewController+Branch.h in Headers */, E7F311B12DACB54100F824A7 /* BNCODMInfoCollector.h in Headers */, - 5FCDD54A2B7AC6A300EAF29F /* BranchConstants.h in Headers */, 5FCDD5412B7AC6A300EAF29F /* BranchSpotlightUrlRequest.h in Headers */, 5FCDD5562B7AC6A300EAF29F /* BNCCrashlyticsWrapper.h in Headers */, 5FCDD52C2B7AC6A300EAF29F /* BranchInstallRequest.h in Headers */, @@ -1197,7 +1191,6 @@ 5FCDD4D82B7AC6A200EAF29F /* BNCAppleReceipt.h in Headers */, 5FCDD5502B7AC6A300EAF29F /* BranchJsonConfig.h in Headers */, 5FCDD4E12B7AC6A200EAF29F /* BNCSKAdNetwork.h in Headers */, - E73D02822DEE8AE90076C3F1 /* BranchConfigurationController.h in Headers */, 5FCDD5112B7AC6A300EAF29F /* BNCDeviceSystem.h in Headers */, 5FCDD5202B7AC6A300EAF29F /* BNCNetworkInterface.h in Headers */, ); @@ -1207,6 +1200,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + E7FBA8612E1449D100E7AAD9 /* BranchConstants.h in Headers */, 5FCDD4BB2B7AC6A200EAF29F /* BranchPasteControl.h in Headers */, 5FCDD5302B7AC6A300EAF29F /* Branch+Validator.h in Headers */, 5FCDD4A62B7AC6A200EAF29F /* BNCCallbacks.h in Headers */, @@ -1238,7 +1232,6 @@ 5FCDD5482B7AC6A300EAF29F /* BNCConfig.h in Headers */, E563942E2CC7A8E600E18E65 /* BranchFileLogger.h in Headers */, 5FCDD4E82B7AC6A200EAF29F /* UIViewController+Branch.h in Headers */, - 5FCDD54B2B7AC6A300EAF29F /* BranchConstants.h in Headers */, 5F5FDA1C2B7DE31E00F14A43 /* BranchLogger.h in Headers */, E7F311B32DACB54100F824A7 /* BNCODMInfoCollector.h in Headers */, 5FCDD5422B7AC6A300EAF29F /* BranchSpotlightUrlRequest.h in Headers */, @@ -1281,7 +1274,6 @@ 5FCDD4D92B7AC6A200EAF29F /* BNCAppleReceipt.h in Headers */, 5FCDD5512B7AC6A300EAF29F /* BranchJsonConfig.h in Headers */, 5FCDD4E22B7AC6A200EAF29F /* BNCSKAdNetwork.h in Headers */, - E73D02862DEE8AE90076C3F1 /* BranchConfigurationController.h in Headers */, 5FCDD5122B7AC6A300EAF29F /* BNCDeviceSystem.h in Headers */, 5FCDD5212B7AC6A300EAF29F /* BNCNetworkInterface.h in Headers */, ); @@ -1411,6 +1403,7 @@ TargetAttributes = { 5F22101C2894A0DB00C5B190 = { CreatedOnToolsVersion = 13.4.1; + LastSwiftMigration = 1640; }; 5F2211672894A90500C5B190 = { CreatedOnToolsVersion = 13.4.1; @@ -1429,9 +1422,11 @@ }; 5F73EBF328ECE65400608601 = { CreatedOnToolsVersion = 14.0; + LastSwiftMigration = 1640; }; 5F79038B28B5765D003144CD = { CreatedOnToolsVersion = 13.4.1; + LastSwiftMigration = 1640; }; 5FF9DEEC28EE7C0D00D62DE1 = { CreatedOnToolsVersion = 14.0; @@ -1624,6 +1619,7 @@ 5FCDD4652B7AC6A100EAF29F /* BNCProductCategory.m in Sources */, 5FCDD56A2B7AC6A400EAF29F /* Branch.m in Sources */, 5FCDD4292B7AC6A100EAF29F /* BranchInstallRequest.m in Sources */, + E7931D862E01C8AE0007A374 /* ConfigurationController.swift in Sources */, 5FCDD4262B7AC6A100EAF29F /* Branch+Validator.m in Sources */, 5FCDD4022B7AC6A100EAF29F /* BNCUserAgentCollector.m in Sources */, 5FCDD5762B7AC6A400EAF29F /* BNCSKAdNetwork.m in Sources */, @@ -1640,7 +1636,6 @@ 5FCDD42C2B7AC6A100EAF29F /* BranchPluginSupport.m in Sources */, 5FCDD5A62B7AC6A400EAF29F /* BNCQRCodeCache.m in Sources */, 5FCDD45C2B7AC6A100EAF29F /* BNCReachability.m in Sources */, - E73D02842DEE8AE90076C3F1 /* BranchConfigurationController.m in Sources */, 5FCDD42F2B7AC6A100EAF29F /* NSString+Branch.m in Sources */, 5FCDD5A02B7AC6A400EAF29F /* BranchShortUrlRequest.m in Sources */, 5FCDD46B2B7AC6A100EAF29F /* BNCServerInterface.m in Sources */, @@ -1732,6 +1727,7 @@ 5FCDD4662B7AC6A100EAF29F /* BNCProductCategory.m in Sources */, 5FCDD56B2B7AC6A400EAF29F /* Branch.m in Sources */, 5FCDD42A2B7AC6A100EAF29F /* BranchInstallRequest.m in Sources */, + E7931D852E01C8AE0007A374 /* ConfigurationController.swift in Sources */, 5FCDD4272B7AC6A100EAF29F /* Branch+Validator.m in Sources */, 5FCDD4032B7AC6A100EAF29F /* BNCUserAgentCollector.m in Sources */, 5FCDD5772B7AC6A400EAF29F /* BNCSKAdNetwork.m in Sources */, @@ -1748,7 +1744,6 @@ 5FCDD42D2B7AC6A100EAF29F /* BranchPluginSupport.m in Sources */, 5FCDD5A72B7AC6A400EAF29F /* BNCQRCodeCache.m in Sources */, 5FCDD45D2B7AC6A100EAF29F /* BNCReachability.m in Sources */, - E73D02812DEE8AE90076C3F1 /* BranchConfigurationController.m in Sources */, 5FCDD4302B7AC6A100EAF29F /* NSString+Branch.m in Sources */, 5FCDD5A12B7AC6A400EAF29F /* BranchShortUrlRequest.m in Sources */, 5FCDD46C2B7AC6A100EAF29F /* BNCServerInterface.m in Sources */, @@ -1842,9 +1837,9 @@ 5FCDD5A52B7AC6A400EAF29F /* BranchOpenRequest.m in Sources */, 5FCDD5692B7AC6A400EAF29F /* BNCLinkData.m in Sources */, 5FCDD44C2B7AC6A100EAF29F /* BranchContentDiscoveryManifest.m in Sources */, + E7931D842E01C8AE0007A374 /* ConfigurationController.swift in Sources */, 5FCDD46A2B7AC6A100EAF29F /* BNCCrashlyticsWrapper.m in Sources */, 5FCDD43D2B7AC6A100EAF29F /* BNCServerRequest.m in Sources */, - E73D02852DEE8AE90076C3F1 /* BranchConfigurationController.m in Sources */, 5FCDD5842B7AC6A400EAF29F /* BranchLinkProperties.m in Sources */, 5FCDD59F2B7AC6A400EAF29F /* BranchEvent.m in Sources */, 5FCDD5812B7AC6A400EAF29F /* BNCAppleReceipt.m in Sources */, @@ -2016,6 +2011,8 @@ isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = "$(MARKETING_VERSION)"; DEFINES_MODULE = YES; @@ -2043,6 +2040,9 @@ "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -2051,6 +2051,8 @@ isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = "$(MARKETING_VERSION)"; DEFINES_MODULE = YES; @@ -2078,6 +2080,8 @@ "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = ""; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; @@ -2255,7 +2259,9 @@ 5F73EBFD28ECE65400608601 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = "$(MARKETING_VERSION)"; DEFINES_MODULE = YES; @@ -2285,6 +2291,7 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -2294,7 +2301,9 @@ 5F73EBFE28ECE65400608601 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = "$(MARKETING_VERSION)"; DEFINES_MODULE = YES; @@ -2324,6 +2333,7 @@ SKIP_INSTALL = YES; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -2333,6 +2343,8 @@ 5F79039128B5765D003144CD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = "$(MARKETING_VERSION)"; DEFINES_MODULE = YES; @@ -2360,6 +2372,9 @@ SDKROOT = appletvos; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 12.0; }; @@ -2368,6 +2383,8 @@ 5F79039228B5765D003144CD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = "$(MARKETING_VERSION)"; DEFINES_MODULE = YES; @@ -2395,6 +2412,8 @@ SDKROOT = appletvos; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = ""; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 12.0; }; diff --git a/Framework/BranchSDK.h b/Framework/BranchSDK.h index f28711897..6f0f795e9 100644 --- a/Framework/BranchSDK.h +++ b/Framework/BranchSDK.h @@ -58,3 +58,4 @@ FOUNDATION_EXPORT const unsigned char BranchSDKVersionString[]; // BNCLinkCache.h uses BNCLinkData.h #import +#import diff --git a/Package.swift b/Package.swift index 0ae916e32..2b6b6bb70 100644 --- a/Package.swift +++ b/Package.swift @@ -1,9 +1,9 @@ -// swift-tools-version:5.3 +// swift-tools-version:5.9 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let package = Package( - name: "BranchSDK", + name: "ios-branch-deep-linking-attribution", platforms: [ .iOS(.v12), .tvOS(.v12), @@ -11,23 +11,29 @@ let package = Package( products: [ .library( name: "BranchSDK", - targets: ["BranchSDK"]), + targets: ["BranchSDK", "BranchSwiftSDK", "BranchObjCSDK"]), ], dependencies: [ ], targets: [ + .target( + name: "BranchObjCSDK", + path: "Sources/BranchSDK_ObjC", + publicHeadersPath: "Public" + ), + .target( + name: "BranchSwiftSDK", + dependencies: ["BranchObjCSDK"], // Swift code depends on Objective-C Constants + path: "Sources/BranchSDK_Swift" + + ), .target( name: "BranchSDK", - path: "Sources", - sources: [ - "BranchSDK/" - ], - resources: [ - .copy("Resources/PrivacyInfo.xcprivacy"), - ], - publicHeadersPath: "BranchSDK/Public/", + dependencies: ["BranchSwiftSDK"], + path: "Sources/BranchSDK", + publicHeadersPath: "Public", cSettings: [ - .headerSearchPath("BranchSDK/Private"), + .headerSearchPath("Private") ], linkerSettings: [ .linkedFramework("CoreServices"), @@ -36,6 +42,6 @@ let package = Package( .linkedFramework("CoreSpotlight", .when(platforms: [.iOS])), .linkedFramework("AdServices", .when(platforms: [.iOS])) ] - ), + ) ] ) diff --git a/Sources/BranchSDK/BNCRequestFactory.m b/Sources/BranchSDK/BNCRequestFactory.m index 226d77f07..4027e0015 100644 --- a/Sources/BranchSDK/BNCRequestFactory.m +++ b/Sources/BranchSDK/BNCRequestFactory.m @@ -32,10 +32,17 @@ #import "BNCAppleReceipt.h" #import "BNCAppGroupsData.h" #import "BNCSKAdNetwork.h" + +#if SWIFT_PACKAGE +@import BranchSwiftSDK; +#else +#import "BranchSDK/BranchSDK-Swift.h" +#endif + + #import "BNCReferringURLUtility.h" #import "BNCPasteboard.h" #import "BNCODMInfoCollector.h" -#import "BranchConfigurationController.h" @interface BNCRequestFactory() @@ -431,7 +438,7 @@ - (void)addLocalURLToOpenJSON:(NSMutableDictionary *)json { // If the client uses a UIPasteControl, force a new open to fetch the payload - (void)addOperationalMetrics:(NSMutableDictionary *)json { - [self safeSetValue:[[BranchConfigurationController sharedInstance] getConfiguration] forKey:BRANCH_REQUEST_KEY_OPERATIONAL_METRICS onDict:json]; + [self safeSetValue:[[ConfigurationController shared] getConfiguration] forKey:BRANCH_REQUEST_KEY_OPERATIONAL_METRICS onDict:json]; } diff --git a/Sources/BranchSDK/Branch.m b/Sources/BranchSDK/Branch.m index e0977f8df..ed72dd9fa 100644 --- a/Sources/BranchSDK/Branch.m +++ b/Sources/BranchSDK/Branch.m @@ -45,7 +45,13 @@ #import "BNCServerAPI.h" #import "BranchPluginSupport.h" #import "BranchLogger.h" -#import "BranchConfigurationController.h" + + +#if SWIFT_PACKAGE +@import BranchSwiftSDK; +#else +#import "BranchSDK/BranchSDK-Swift.h" +#endif #if !TARGET_OS_TV #import "BNCUserAgentCollector.h" @@ -188,7 +194,7 @@ + (Branch *)getInstance { + (Branch *)getInstance:(NSString *)branchKey { self.branchKey = branchKey; - [BranchConfigurationController sharedInstance].branchKeySource = BRANCH_KEY_SOURCE_GET_INSTANCE_API; + [ConfigurationController shared].branchKeySource = BRANCH_KEY_SOURCE_GET_INSTANCE_API; return [Branch getInstanceInternal:self.branchKey]; } @@ -248,7 +254,7 @@ - (id)initWithInterface:(BNCServerInterface *)interface BranchJsonConfig *config = BranchJsonConfig.instance; self.deferInitForPluginRuntime = config.deferInitForPluginRuntime; - [BranchConfigurationController sharedInstance].deferInitForPluginRuntime = self.deferInitForPluginRuntime; + [ConfigurationController shared].deferInitForPluginRuntime = self.deferInitForPluginRuntime; if (config.apiUrl) { [Branch setAPIUrl:config.apiUrl]; @@ -410,7 +416,7 @@ + (void)setBranchKey:(NSString*)branchKey error:(NSError **)error { [[BranchLogger shared] logError:[NSString stringWithFormat:@"Invalid Branch key format. Did you add your Branch key to your Info.plist? Passed key is '%@'.", branchKey] error:*error]; return; } - [BranchConfigurationController sharedInstance].branchKeySource = BRANCH_KEY_SOURCE_SET_BRANCH_KEY_API; + [ConfigurationController shared].branchKeySource = BRANCH_KEY_SOURCE_SET_BRANCH_KEY_API; bnc_branchKey = branchKey; } } @@ -446,7 +452,7 @@ + (NSString *)branchKey { if (!bnc_branchKey) { [[BranchLogger shared] logError:@"Your Branch key is not set in your Info.plist file. See https://dev.branch.io/getting-started/sdk-integration-guide/guide/ios/#configure-xcode-project for configuration instructions." error:nil]; } - [BranchConfigurationController sharedInstance].branchKeySource = branchKeySource; + [ConfigurationController shared].branchKeySource = branchKeySource; return bnc_branchKey; } } @@ -1008,7 +1014,7 @@ - (void)startLoadingOfODMInfo { - (void)checkPasteboardOnInstall { [BNCPasteboard sharedInstance].checkOnInstall = YES; - [BranchConfigurationController sharedInstance].checkPasteboardOnInstall = YES; + [ConfigurationController shared].checkPasteboardOnInstall = YES; } - (BOOL)willShowPasteboardToast { diff --git a/Sources/BranchSDK/Public/BranchSDK.h b/Sources/BranchSDK/Public/BranchSDK.h index e4914c80a..bd9d758cd 100644 --- a/Sources/BranchSDK/Public/BranchSDK.h +++ b/Sources/BranchSDK/Public/BranchSDK.h @@ -58,3 +58,5 @@ FOUNDATION_EXPORT const unsigned char BranchSDKVersionString[]; // BNCLinkCache.h uses BNCLinkData.h #import "BNCLinkData.h" + +#import "BranchConstants.h" diff --git a/Sources/BranchSDK/BranchConstants.m b/Sources/BranchSDK_ObjC/BranchConstants.m similarity index 100% rename from Sources/BranchSDK/BranchConstants.m rename to Sources/BranchSDK_ObjC/BranchConstants.m diff --git a/Sources/BranchSDK/Private/BranchConstants.h b/Sources/BranchSDK_ObjC/Public/BranchConstants.h similarity index 100% rename from Sources/BranchSDK/Private/BranchConstants.h rename to Sources/BranchSDK_ObjC/Public/BranchConstants.h diff --git a/Sources/BranchSDK_Swift/ConfigurationController.swift b/Sources/BranchSDK_Swift/ConfigurationController.swift new file mode 100644 index 000000000..9b468a048 --- /dev/null +++ b/Sources/BranchSDK_Swift/ConfigurationController.swift @@ -0,0 +1,74 @@ +// +// ConfigurationController.swift +// BranchSDK +// +// Created by Nidhi Dixit on 6/17/25. +// + + +import Foundation + +#if SWIFT_PACKAGE +import BranchObjCSDK +#endif + +@objcMembers +public class ConfigurationController: NSObject { + + // MARK: - Properties + public var branchKeySource: String? + public var deferInitForPluginRuntime: Bool = false + public var checkPasteboardOnInstall: Bool = false + + // MARK: - Singleton + @MainActor public static let shared = ConfigurationController() + + private override init() { + // Private initializer to enforce singleton usage. + super.init() + } + + public func getConfiguration() -> [String: Any] { + var config: [String: Any] = [:] + + config.merge(branchKeyInfo()) { (_, new) in new } + config.merge(featureFlagsInfo()) { (_, new) in new } + config.merge(frameworkIntegrationInfo()) { (_, new) in new } + + return config + } + + // MARK: - Private Helper Methods + private func branchKeyInfo() -> [String: String] { + return [ + BRANCH_REQUEST_KEY_BRANCH_KEY_SOURCE: self.branchKeySource ?? "Unknown" + ] + } + + private func featureFlagsInfo() -> [String: Bool] { + return [ + BRANCH_REQUEST_KEY_CHECK_PASTEBOARD_ON_INSTALL: self.checkPasteboardOnInstall, + BRANCH_REQUEST_KEY_DEFER_INIT_FOR_PLUGIN_RUNTIME: self.deferInitForPluginRuntime + ] + } + + private func frameworkIntegrationInfo() -> [String: Any] { + var info: [String: Any] = [:] + + let linkedFrameworks: [String: Bool] = [ + FRAMEWORK_AD_SUPPORT: isClassAvailable(className: "ASIdentifierManager"), + FRAMEWORK_ATT_TRACKING_MANAGER: isClassAvailable(className: "ATTrackingManager"), + FRAMEWORK_AD_FIREBASE_CRASHLYTICS: isClassAvailable(className: "FIRCrashlytics"), + FRAMEWORK_AD_SAFARI_SERVICES: isClassAvailable(className: "SFSafariViewController"), + FRAMEWORK_AD_APP_ADS_ONDEVICE_CONVERSION: isClassAvailable(className: "ODCConversionManager") + ] + + info[BRANCH_REQUEST_KEY_LINKED_FRAMEORKS] = linkedFrameworks + + return info + } + + private func isClassAvailable(className: String) -> Bool { + return NSClassFromString(className) != nil + } +}