├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.yml │ ├── config.yml │ └── feature-request.yml ├── PULL_REQUEST_TEMPLATE.md ├── custom-scripts │ ├── create-release.js │ └── upload-asset.js ├── dependabot.yml └── workflows │ ├── automation-trigger-test.yml │ ├── dependabot-merger.yml │ ├── integration-tests.yml │ ├── post-release-qa.yml │ ├── pre-release-qa.yml │ ├── release.yml │ ├── stale.yml │ ├── sync-readme-changelog.yml │ ├── verify.yml │ └── version-bump.yml ├── .gitignore ├── .swiftpm └── xcode │ └── package.xcworkspace │ └── contents.xcworkspacedata ├── Branch-TestBed ├── Branch-SDK-Tests │ ├── BNCAPIServerTest.m │ ├── BNCAppleReceiptTests.m │ ├── BNCApplicationTests.m │ ├── BNCCallbackMapTests.m │ ├── BNCClassSerializationTests.m │ ├── BNCCrashlyticsWrapperTests.m │ ├── BNCCurrencyTests.m │ ├── BNCDeviceInfoTests.m │ ├── BNCDeviceSystemTests.m │ ├── BNCDisableAdNetworkCalloutsTests.m │ ├── BNCEncodingUtilsTests.m │ ├── BNCJSONUtilityTests.m │ ├── BNCJsonLoader.h │ ├── BNCJsonLoader.m │ ├── BNCKeyChainTests.m │ ├── BNCLinkDataTests.m │ ├── BNCNetworkInterfaceTests.m │ ├── BNCODMTests.m │ ├── BNCPartnerParametersTests.m │ ├── BNCPasteboardTests.m │ ├── BNCPreferenceHelperTests.m │ ├── BNCReachabilityTests.m │ ├── BNCReferringURLUtilityTests.m │ ├── BNCRequestFactoryTests.m │ ├── BNCSKAdNetworkTests.m │ ├── BNCSystemObserverTests.m │ ├── BNCURLFilterSkiplistUpgradeTests.m │ ├── BNCURLFilterTests.m │ ├── BNCUserAgentCollectorTests.m │ ├── Branch-SDK-Tests-Bridging-Header.h │ ├── BranchActivityItemTests.m │ ├── BranchClassTests.m │ ├── BranchEvent.Test.m │ ├── BranchEvent.Test.swift │ ├── BranchLastAttributedTouchDataTests.m │ ├── BranchLoggerTests.m │ ├── BranchPluginSupportTests.m │ ├── BranchQRCodeTests.m │ ├── BranchShareLinkTests.m │ ├── BranchUniversalObjectTests.m │ ├── DispatchToIsolationQueueTests.m │ ├── Info.plist │ ├── NSErrorBranchTests.m │ ├── NSMutableDictionaryBranchTests.m │ └── NSStringBranchTests.m ├── Branch-SDK-Unhosted-Tests │ ├── BNCEncodingUtilsTests.m │ ├── BNCKeyChainTests.m │ ├── Branch_setBranchKeyTests.m │ └── Info.plist ├── Branch-TestBed-CI.xctestplan ├── Branch-TestBed-UITests │ ├── Info.plist │ ├── UITestCase0OpenNInstall.m │ ├── UITestCaseMisc.m │ ├── UITestCaseSafari.m │ ├── UITestCaseTestBed.h │ ├── UITestCaseTestBed.m │ ├── UITestCaseTracking.m │ ├── UITestSafari.m │ ├── UITestSendV2Event.m │ └── UITestSetIdentity.m ├── Branch-TestBed.xcodeproj │ ├── Branch-TestBed.xctestplan │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── Branch-TestBed.xccheckout │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── swiftpm │ │ │ └── Package.resolved │ └── xcshareddata │ │ └── xcschemes │ │ ├── Branch-SDK-Tests.xcscheme │ │ ├── Branch-SDK-Unhosted-Tests.xcscheme │ │ ├── Branch-TestBed-CI.xcscheme │ │ ├── Branch-TestBed.xcscheme │ │ ├── Branch.xcscheme │ │ └── Reflection_ODM_Tests.xcscheme ├── Branch-TestBed │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── ArrayPickerView.h │ ├── ArrayPickerView.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Branch@1024.png │ │ │ ├── Contents.json │ │ │ ├── icon100x100.png │ │ │ ├── icon114x114.png │ │ │ ├── icon120x120-1.png │ │ │ ├── icon120x120.png │ │ │ ├── icon144x144.png │ │ │ ├── icon152x152-1.png │ │ │ ├── icon167x167.png │ │ │ ├── icon180x180.png │ │ │ ├── icon29x29-1.png │ │ │ ├── icon29x29.png │ │ │ ├── icon40x40.png │ │ │ ├── icon50x50.png │ │ │ ├── icon57x57.png │ │ │ ├── icon58x58-1.png │ │ │ ├── icon58x58.png │ │ │ ├── icon72x72.png │ │ │ ├── icon76x76.png │ │ │ ├── icon80x80-1.png │ │ │ ├── icon80x80.png │ │ │ └── icon87x87.png │ │ ├── Brand Assets.launchimage │ │ │ ├── Contents.json │ │ │ ├── launchimage1024x768.png │ │ │ ├── launchimage1536x2048.png │ │ │ ├── launchimage2048x1536.png │ │ │ ├── launchimage640x1136.png │ │ │ ├── launchimage640x960.png │ │ │ └── launchimage768x1024.png │ │ └── Contents.json │ ├── Branch-TestBed-Info.plist │ ├── Branch-TestBed-Prefix.pch │ ├── Branch-TestBed.entitlements │ ├── LaunchScreen.storyboard │ ├── LogOutputViewController.h │ ├── LogOutputViewController.m │ ├── Main.storyboard │ ├── NavigationController.h │ ├── NavigationController.m │ ├── PasteControlViewController.h │ ├── PasteControlViewController.m │ ├── StoreKitTestCertificate.cer │ ├── TestStoreKitConfig.storekit │ ├── ViewController.h │ ├── ViewController.m │ ├── en.lproj │ │ └── InfoPlist.strings │ └── main.m ├── README.md ├── Reflection_ODM_Tests.xctestplan ├── Reflection_ODM_Tests │ ├── Framework │ │ └── AppAdsOnDeviceConversion.xcframework │ │ │ ├── Info.plist │ │ │ ├── ios-arm64 │ │ │ └── AppAdsOnDeviceConversion.framework │ │ │ │ ├── AppAdsOnDeviceConversion │ │ │ │ ├── Headers │ │ │ │ ├── AppAdsOnDeviceConversion.h │ │ │ │ ├── ODCConversionManager.h │ │ │ │ └── ODCConversionTypes.h │ │ │ │ ├── Info.plist │ │ │ │ └── Modules │ │ │ │ └── module.modulemap │ │ │ └── ios-arm64_x86_64-simulator │ │ │ └── AppAdsOnDeviceConversion.framework │ │ │ ├── AppAdsOnDeviceConversion │ │ │ ├── Headers │ │ │ ├── AppAdsOnDeviceConversion.h │ │ │ ├── ODCConversionManager.h │ │ │ └── ODCConversionTypes.h │ │ │ ├── Info.plist │ │ │ └── Modules │ │ │ └── module.modulemap │ └── Reflection_ODM_Tests.m ├── cannedData │ ├── example.json │ ├── latd.json │ ├── latd_empty_data.json │ ├── latd_missing_data.json │ └── latd_missing_window.json └── module.modulemap ├── BranchSDK.podspec ├── BranchSDK.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcshareddata │ └── xcschemes │ ├── BranchSDK-static.xcscheme │ ├── BranchSDK-tvOS.xcscheme │ ├── BranchSDK.xcscheme │ ├── TestHost.xcscheme │ ├── static-xcframework.xcscheme │ ├── xcframework-noidfa.xcscheme │ └── xcframework.xcscheme ├── ChangeLog.md ├── DeepLinkDemo ├── DeepLinkDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── DeepLinkDemo.xcscheme ├── DeepLinkDemo.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── DeepLinkDemo │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── back_img.imageset │ │ │ ├── Contents.json │ │ │ └── icons8-left-100.png │ │ └── qentelli_logo.imageset │ │ │ ├── Contents.json │ │ │ └── img.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Constants │ │ ├── CommonAlert.swift │ │ ├── CommonMethod.swift │ │ └── Utils.swift │ ├── Controllers │ │ ├── AddMetaDataVC.swift │ │ ├── CreateObjectReferenceObject.swift │ │ ├── DispalyVC.swift │ │ ├── GenerateURLVC.swift │ │ ├── HomeViewController.swift │ │ ├── LogFileListViewController.swift │ │ ├── MetaDataTableViewCell.swift │ │ ├── NavigateContentVC.swift │ │ ├── ParentViewController.swift │ │ ├── ReadDeeplinkingVC.swift │ │ ├── ReadLogViewController.swift │ │ ├── ReadVC.swift │ │ ├── ShareDynamicallyVC.swift │ │ ├── TextViewController.swift │ │ ├── TrackContentVC.swift │ │ ├── ViewController.swift │ │ └── WebViewVC.swift │ ├── DeepLinkDemo-Bridging-Header.h │ ├── DeepLinkDemo.entitlements │ ├── Header.h │ ├── Info.plist │ ├── NSURLSessionBranch.h │ ├── NSURLSessionBranch.m │ ├── Reachability │ │ ├── Reachability.h │ │ └── Reachability.swift │ ├── SIAlertView │ │ ├── SIAlertView.bundle │ │ │ ├── button-cancel-d.png │ │ │ ├── button-cancel-d@2x.png │ │ │ ├── button-cancel.png │ │ │ ├── button-cancel@2x.png │ │ │ ├── button-default-d.png │ │ │ ├── button-default-d@2x.png │ │ │ ├── button-default.png │ │ │ ├── button-default@2x.png │ │ │ ├── button-destructive-d.png │ │ │ ├── button-destructive-d@2x.png │ │ │ ├── button-destructive.png │ │ │ └── button-destructive@2x.png │ │ ├── SIAlertView.h │ │ ├── SIAlertView.m │ │ ├── UIWindow+SIUtils.h │ │ └── UIWindow+SIUtils.m │ ├── StartupOptionsData.swift │ └── img.png ├── IPA │ └── Info.plist ├── Podfile ├── Podfile.lock └── README.md ├── Framework ├── BranchSDK.h ├── PrivacyInfo.xcprivacy └── module.modulemap ├── Gemfile ├── LICENSE.txt ├── Package.swift ├── README.md ├── SDKIntegrationTestApps ├── PostRelease-iOSReleaseTest-Carthage │ ├── cartfile │ ├── iOSReleaseTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── iOSReleaseTest │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── SceneDelegate.swift │ │ ├── ViewController.swift │ │ └── iOSReleaseTest.entitlements │ └── iOSReleaseTestTests │ │ └── iOSReleaseTestTests.swift ├── PostRelease-iOSReleaseTest-Cocoapods │ ├── Podfile │ ├── iOSReleaseTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── iOSReleaseTest.xcworkspace │ │ └── contents.xcworkspacedata │ ├── iOSReleaseTest │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── SceneDelegate.swift │ │ ├── ViewController.swift │ │ └── iOSReleaseTest.entitlements │ └── iOSReleaseTestTests │ │ └── iOSReleaseTestTests.swift ├── PostRelease-iOSReleaseTest-SPM │ ├── iOSReleaseTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── swiftpm │ │ │ └── Package.resolved │ ├── iOSReleaseTest │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── BranchSDKTest.swift │ │ ├── Info.plist │ │ ├── SceneDelegate.swift │ │ ├── ViewController.swift │ │ └── iOSReleaseTest.entitlements │ └── iOSReleaseTestTests │ │ └── iOSReleaseTestTests.swift ├── PostRelease-tvOSReleaseTest-Cocoapods │ ├── Podfile │ ├── Podfile.lock │ ├── tvOSReleaseTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── tvOSReleaseTest.xcworkspace │ │ └── contents.xcworkspacedata │ ├── tvOSReleaseTest │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── App Icon & Top Shelf Image.brandassets │ │ │ │ ├── App Icon - App Store.imagestack │ │ │ │ │ ├── Back.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Front.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Middle.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── App Icon.imagestack │ │ │ │ │ ├── Back.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Front.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Middle.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ ├── Top Shelf Image Wide.imageset │ │ │ │ │ └── Contents.json │ │ │ │ └── Top Shelf Image.imageset │ │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ └── ViewController.swift │ └── tvOSReleaseTestTests │ │ └── tvOSReleaseTestTests.swift ├── iOSReleaseTest-Carthage │ ├── iOSReleaseTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── iOSReleaseTest │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── SceneDelegate.swift │ │ ├── ViewController.swift │ │ └── iOSReleaseTest.entitlements │ └── iOSReleaseTestTests │ │ └── iOSReleaseTestTests.swift ├── iOSReleaseTest-Cocoapods │ ├── Podfile │ ├── Podfile.lock │ ├── iOSReleaseTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── iOSReleaseTest.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── iOSReleaseTest │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── SceneDelegate.swift │ │ ├── ViewController.swift │ │ └── iOSReleaseTest.entitlements │ └── iOSReleaseTestTests │ │ └── iOSReleaseTestTests.swift ├── iOSReleaseTest-Manual-Static │ ├── iOSReleaseTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── iOSReleaseTest │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── BranchSDKTest.swift │ │ ├── Info.plist │ │ ├── SceneDelegate.swift │ │ ├── ViewController.swift │ │ └── iOSReleaseTest.entitlements │ └── iOSReleaseTestTests │ │ └── iOSReleaseTestTests.swift ├── iOSReleaseTest-Manual │ ├── iOSReleaseTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── iOSReleaseTest │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── BranchSDKTest.swift │ │ ├── Info.plist │ │ ├── SceneDelegate.swift │ │ ├── ViewController.swift │ │ └── iOSReleaseTest.entitlements │ └── iOSReleaseTestTests │ │ └── iOSReleaseTestTests.swift ├── iOSReleaseTest-SPM │ ├── iOSReleaseTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── iOSReleaseTest │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── BranchSDKTest.swift │ │ ├── Info.plist │ │ ├── SceneDelegate.swift │ │ ├── ViewController.swift │ │ └── iOSReleaseTest.entitlements │ └── iOSReleaseTestTests │ │ └── iOSReleaseTestTests.swift ├── tvOSReleaseTest-Carthage │ ├── tvOSReleaseTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── tvOSReleaseTest │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── App Icon & Top Shelf Image.brandassets │ │ │ │ ├── App Icon - App Store.imagestack │ │ │ │ │ ├── Back.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Front.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Middle.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── App Icon.imagestack │ │ │ │ │ ├── Back.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Front.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Middle.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ ├── Top Shelf Image Wide.imageset │ │ │ │ │ └── Contents.json │ │ │ │ └── Top Shelf Image.imageset │ │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ └── ViewController.swift │ └── tvOSReleaseTestTests │ │ └── tvOSReleaseTestTests.swift ├── tvOSReleaseTest-Cocoapods │ ├── Podfile │ ├── Podfile.lock │ ├── tvOSReleaseTest.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── tvOSReleaseTest.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── tvOSReleaseTest │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── App Icon & Top Shelf Image.brandassets │ │ │ │ ├── App Icon - App Store.imagestack │ │ │ │ │ ├── Back.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Front.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Middle.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── App Icon.imagestack │ │ │ │ │ ├── Back.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Front.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Middle.imagestacklayer │ │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ ├── Top Shelf Image Wide.imageset │ │ │ │ │ └── Contents.json │ │ │ │ └── Top Shelf Image.imageset │ │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ └── ViewController.swift │ └── tvOSReleaseTestTests │ │ └── tvOSReleaseTestTests.swift └── tvOSReleaseTest-Manual │ ├── tvOSReleaseTest.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ ├── tvOSReleaseTest │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── App Icon & Top Shelf Image.brandassets │ │ │ ├── App Icon - App Store.imagestack │ │ │ │ ├── Back.imagestacklayer │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ ├── Front.imagestacklayer │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ └── Middle.imagestacklayer │ │ │ │ │ ├── Content.imageset │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ ├── App Icon.imagestack │ │ │ │ ├── Back.imagestacklayer │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ ├── Front.imagestacklayer │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ └── Middle.imagestacklayer │ │ │ │ │ ├── Content.imageset │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ ├── Top Shelf Image Wide.imageset │ │ │ │ └── Contents.json │ │ │ └── Top Shelf Image.imageset │ │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── BranchSDKTest.swift │ └── ViewController.swift │ └── tvOSReleaseTestTests │ └── tvOSReleaseTestTests.swift ├── SECURITY.md ├── Sources ├── BranchSDK │ ├── BNCAppGroupsData.m │ ├── BNCAppleReceipt.m │ ├── BNCApplication.m │ ├── BNCCallbackMap.m │ ├── BNCConfig.m │ ├── BNCContentDiscoveryManager.m │ ├── BNCCrashlyticsWrapper.m │ ├── BNCCurrency.m │ ├── BNCDeepLinkViewControllerInstance.m │ ├── BNCDeviceInfo.m │ ├── BNCDeviceSystem.m │ ├── BNCEncodingUtils.m │ ├── BNCEventUtils.m │ ├── BNCInAppBrowser.m │ ├── BNCInitSessionResponse.m │ ├── BNCJSONUtility.m │ ├── BNCKeyChain.m │ ├── BNCLinkCache.m │ ├── BNCLinkData.m │ ├── BNCNetworkInterface.m │ ├── BNCNetworkService.m │ ├── BNCODMInfoCollector.m │ ├── BNCPartnerParameters.m │ ├── BNCPasteboard.m │ ├── BNCPreferenceHelper.m │ ├── BNCProductCategory.m │ ├── BNCQRCodeCache.m │ ├── BNCReachability.m │ ├── BNCReferringURLUtility.m │ ├── BNCRequestFactory.m │ ├── BNCSKAdNetwork.m │ ├── BNCServerAPI.m │ ├── BNCServerInterface.m │ ├── BNCServerRequest.m │ ├── BNCServerRequestQueue.m │ ├── BNCServerResponse.m │ ├── BNCSpotlightService.m │ ├── BNCSystemObserver.m │ ├── BNCURLFilter.m │ ├── BNCUrlQueryParameter.m │ ├── BNCUserAgentCollector.m │ ├── Branch+Validator.m │ ├── Branch.m │ ├── BranchActivityItemProvider.m │ ├── BranchCSSearchableItemAttributeSet.m │ ├── BranchConstants.m │ ├── BranchContentDiscoverer.m │ ├── BranchContentDiscoveryManifest.m │ ├── BranchContentPathProperties.m │ ├── BranchDelegate.m │ ├── BranchEvent.m │ ├── BranchFileLogger.m │ ├── BranchInstallRequest.m │ ├── BranchJsonConfig.m │ ├── BranchLATDRequest.m │ ├── BranchLastAttributedTouchData.m │ ├── BranchLinkProperties.m │ ├── BranchLogger.m │ ├── BranchOpenRequest.m │ ├── BranchPasteControl.m │ ├── BranchPluginSupport.m │ ├── BranchQRCode.m │ ├── BranchScene.m │ ├── BranchShareLink.m │ ├── BranchShortUrlRequest.m │ ├── BranchShortUrlSyncRequest.m │ ├── BranchSpotlightUrlRequest.m │ ├── BranchUniversalObject.m │ ├── NSError+Branch.m │ ├── NSMutableDictionary+Branch.m │ ├── NSString+Branch.m │ ├── Private │ │ ├── BNCAppGroupsData.h │ │ ├── BNCAppleReceipt.h │ │ ├── BNCApplication.h │ │ ├── BNCCallbackMap.h │ │ ├── BNCConfig.h │ │ ├── BNCContentDiscoveryManager.h │ │ ├── BNCCrashlyticsWrapper.h │ │ ├── BNCDeepLinkViewControllerInstance.h │ │ ├── BNCDeviceInfo.h │ │ ├── BNCDeviceSystem.h │ │ ├── BNCEncodingUtils.h │ │ ├── BNCEventUtils.h │ │ ├── BNCInAppBrowser.h │ │ ├── BNCJSONUtility.h │ │ ├── BNCKeyChain.h │ │ ├── BNCNetworkInterface.h │ │ ├── BNCNetworkService.h │ │ ├── BNCODMInfoCollector.h │ │ ├── BNCPartnerParameters.h │ │ ├── BNCPasteboard.h │ │ ├── BNCQRCodeCache.h │ │ ├── BNCReachability.h │ │ ├── BNCReferringURLUtility.h │ │ ├── BNCRequestFactory.h │ │ ├── BNCSKAdNetwork.h │ │ ├── BNCServerAPI.h │ │ ├── BNCSpotlightService.h │ │ ├── BNCSystemObserver.h │ │ ├── BNCURLFilter.h │ │ ├── BNCUrlQueryParameter.h │ │ ├── BNCUserAgentCollector.h │ │ ├── Branch+Validator.h │ │ ├── BranchConstants.h │ │ ├── BranchContentDiscoverer.h │ │ ├── BranchContentDiscoveryManifest.h │ │ ├── BranchContentPathProperties.h │ │ ├── BranchFileLogger.h │ │ ├── BranchInstallRequest.h │ │ ├── BranchJsonConfig.h │ │ ├── BranchLATDRequest.h │ │ ├── BranchOpenRequest.h │ │ ├── BranchShortUrlRequest.h │ │ ├── BranchShortUrlSyncRequest.h │ │ ├── BranchSpotlightUrlRequest.h │ │ ├── NSError+Branch.h │ │ ├── NSMutableDictionary+Branch.h │ │ ├── NSString+Branch.h │ │ └── UIViewController+Branch.h │ ├── Public │ │ ├── BNCCallbacks.h │ │ ├── BNCCurrency.h │ │ ├── BNCInitSessionResponse.h │ │ ├── BNCLinkCache.h │ │ ├── BNCLinkData.h │ │ ├── BNCNetworkServiceProtocol.h │ │ ├── BNCPreferenceHelper.h │ │ ├── BNCProductCategory.h │ │ ├── BNCServerInterface.h │ │ ├── BNCServerRequest.h │ │ ├── BNCServerRequestQueue.h │ │ ├── BNCServerResponse.h │ │ ├── Branch.h │ │ ├── BranchActivityItemProvider.h │ │ ├── BranchCSSearchableItemAttributeSet.h │ │ ├── BranchDeepLinkingController.h │ │ ├── BranchDelegate.h │ │ ├── BranchEvent.h │ │ ├── BranchLastAttributedTouchData.h │ │ ├── BranchLinkProperties.h │ │ ├── BranchLogger.h │ │ ├── BranchPasteControl.h │ │ ├── BranchPluginSupport.h │ │ ├── BranchQRCode.h │ │ ├── BranchSDK.h │ │ ├── BranchScene.h │ │ ├── BranchShareLink.h │ │ └── BranchUniversalObject.h │ └── UIViewController+Branch.m └── Resources │ ├── BranchSDK.h │ ├── BranchSDK.modulemap │ └── PrivacyInfo.xcprivacy ├── TestDeepLinking ├── Podfile ├── TestDeepLinking.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── TestDeepLinking.xcscheme ├── TestDeepLinking.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── TestDeepLinking │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── SceneDelegate.swift │ ├── TestDeepLinking.entitlements │ ├── TestDeepLinking.xctestplan │ └── ViewController.swift ├── TestDeepLinkingUITests │ ├── Info.plist │ └── TestDeepLinkWithoutApp.m └── TestDeepLinkingUITestsWithHostApp │ ├── Info.plist │ └── TestDeepLinkingUITestsWithHostApp.m ├── TestHost ├── AppDelegate.swift ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Info.plist ├── NSURLSession+Branch.h ├── NSURLSession+Branch.m ├── SceneDelegate.swift ├── TestHost-Bridging-Header.h └── ViewController.swift ├── TestHostTests └── TestHostTests.swift ├── TestHostUITests ├── TestHostUITests.swift └── TestHostUITestsLaunchTests.swift ├── fastlane ├── .gitignore ├── Appfile ├── Fastfile ├── Matchfile ├── Pluginfile ├── Scanfile └── lib │ └── helper │ ├── cocoapods_helper.rb │ └── version_helper.rb └── scripts ├── askYN.sh ├── build_static_xcframework.sh ├── build_static_xcframework_noidfa.sh ├── build_xcframework.sh ├── build_xcframework_noidfa.sh ├── check_build_environment.sh ├── getSimulator ├── prep_release.sh ├── prep_static_xcframework.sh ├── prep_static_xcframework_noidfa.sh ├── prep_xcframework.sh ├── prep_xcframework_noidfa.sh ├── test_sdkIntegration ├── version.sh └── whichapp.sh /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | blank_issues_enabled: false 3 | contact_links: 4 | - name: "📕 Documentation Issue" 5 | url: https://help.branch.io/developers-hub/docs/ios-sdk-overview 6 | about: Report an issue in the Branch iOS SDK Reference documentation by clicking "Suggest edits" button on the documentation page. 7 | - name: "Branch Support" 8 | url: https://help.branch.io/using-branch/page/submit-a-ticket 9 | about: If you are having general trouble with Branch iOS SDK integration, please submit a ticket to Branch Support. 10 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🚀 Feature Request 3 | description: Suggest an idea for this project 4 | title: "(short issue description)" 5 | labels: [feature-request, needs-triage] 6 | assignees: [] 7 | body: 8 | - type: textarea 9 | id: description 10 | attributes: 11 | label: Describe the feature 12 | description: A clear and concise description of the feature you are proposing. 13 | validations: 14 | required: true 15 | -------------------------------------------------------------------------------- /.github/custom-scripts/create-release.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Create Github Release given the version (provided by a tag) 3 | */ 4 | async function createRelease({ context, core, github, sha, version }) { 5 | const title = `### Release Note (${version})`; 6 | const body = '[Insert ChangeLog update]'; 7 | const releaseBody = `${title}\n\n${body}`; 8 | 9 | const release = { 10 | owner: context.repo.owner, 11 | repo: context.repo.repo, 12 | tag_name: version, 13 | target_commitish: sha, 14 | name: version, 15 | body: releaseBody, 16 | draft: false, 17 | prelease: false, 18 | }; 19 | 20 | await github.rest.repos.createRelease(release); 21 | } 22 | 23 | module.exports = createRelease; 24 | -------------------------------------------------------------------------------- /.github/custom-scripts/upload-asset.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | 3 | async function uploadAsset({ github, context, releaseId, assetName, path }) { 4 | const contents = fs.readFileSync(path); 5 | 6 | console.log(`Uploading asset ${assetName}...`); 7 | 8 | const { data } = await github.rest.repos.uploadReleaseAsset({ 9 | owner: context.repo.owner, 10 | repo: context.repo.repo, 11 | release_id: releaseId, 12 | name: assetName, 13 | data: contents, 14 | }); 15 | 16 | console.log('Done ✅.'); 17 | 18 | return data; 19 | } 20 | 21 | module.exports = uploadAsset; 22 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "github-actions" # Maintain dependencies for GitHub Actions 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "weekly" 12 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | # This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time. 2 | # 3 | # You can adjust the behavior by modifying this file. 4 | # For more information, see: 5 | # https://github.com/actions/stale 6 | name: Mark stale issues 7 | 8 | on: 9 | schedule: 10 | - cron: '0 0 * * *' 11 | 12 | jobs: 13 | stale: 14 | 15 | runs-on: ubuntu-latest 16 | permissions: 17 | issues: write 18 | 19 | steps: 20 | - uses: actions/stale@v9 21 | with: 22 | repo-token: ${{ github.token }} 23 | days-before-issue-stale: 60 24 | days-before-close: 7 25 | stale-issue-message: 'This issue has been automatically marked as stale due to inactivity for 60 days. If this issue is still relevant, please respond with any updates or this issue will be closed in 7 days. If you believe this is a mistake, please comment to let us know. Thank you for your contributions.' 26 | stale-issue-label: 'no-issue-activity' 27 | close-issue-message: 'This issue has been closed due to inactivity. If this issue is still relevant, please reopen it or create a new one. Thank you for your contributions.' 28 | start-date: '2023-05-22' 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Mac 2 | .DS_Store 3 | .LSOverride 4 | 5 | # Xcode 6 | [Bb]uild 7 | *.xcuserstate 8 | *.xcuserdatad 9 | # *.xcscmblueprint # We should probably check this in. 10 | *.o 11 | DerivedData 12 | 13 | # merge-repo commit/discard file 14 | merge-repo-commit 15 | 16 | # Pods 17 | Pods/ 18 | 19 | # Carthage 20 | carthage-files/*.zip 21 | carthage-files/Carthage 22 | 23 | # Fastlane 24 | fastlane/report.xml 25 | fastlane/Preview.html 26 | fastlane/screenshots 27 | fastlane/test_output 28 | 29 | # Ruby stuff 30 | vendor 31 | .bundle 32 | DeepLinkDemo/DeepLinkDemo.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings 33 | -------------------------------------------------------------------------------- /.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-SDK-Tests/BNCAppleReceiptTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // BNCAppleReceiptTests.m 3 | // Branch-SDK-Tests 4 | // 5 | // Created by Ernest Cho on 7/15/19. 6 | // Copyright © 2019 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BNCAppleReceipt.h" 11 | 12 | @interface BNCAppleReceiptTests : XCTestCase 13 | 14 | @end 15 | 16 | @implementation BNCAppleReceiptTests 17 | 18 | - (void)setUp { 19 | 20 | } 21 | 22 | - (void)tearDown { 23 | 24 | } 25 | 26 | - (void)testReceiptOnSimulator { 27 | BNCAppleReceipt *receipt = [[BNCAppleReceipt alloc] init]; 28 | // Appears the simulator can have a receipt 29 | //XCTAssertNil([receipt installReceipt]); 30 | XCTAssertFalse([receipt isTestFlight]); 31 | } 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-SDK-Tests/BNCJsonLoader.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCJsonLoader.h 3 | // Branch-TestBed 4 | // 5 | // Created by Ernest Cho on 9/16/19. 6 | // Copyright © 2019 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface BNCJsonLoader : NSObject 14 | 15 | // test utility that loads json files from the Test Bundle. only works on hosted tests 16 | + (NSDictionary *)dictionaryFromJSONFileNamed:(NSString *)fileName; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-SDK-Tests/BNCJsonLoader.m: -------------------------------------------------------------------------------- 1 | // 2 | // BNCJsonLoader.m 3 | // Branch-TestBed 4 | // 5 | // Created by Ernest Cho on 9/16/19. 6 | // Copyright © 2019 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import "BNCJsonLoader.h" 10 | 11 | @implementation BNCJsonLoader 12 | 13 | + (NSDictionary *)dictionaryFromJSONFileNamed:(NSString *)fileName { 14 | 15 | // Since this class is part of the Test target, [self class] returns the Test Bundle 16 | NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:fileName ofType:@"json"]; 17 | 18 | NSString *jsonString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL]; 19 | 20 | id dict = [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil]; 21 | if ([dict isKindOfClass:NSDictionary.class]) { 22 | return dict; 23 | } 24 | return nil; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-SDK-Tests/Branch-SDK-Tests-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Module headers for Branch SDK unit testing. 3 | // 4 | 5 | #import "Branch.h" 6 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-SDK-Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-SDK-Unhosted-Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed-CI.xctestplan: -------------------------------------------------------------------------------- 1 | { 2 | "configurations" : [ 3 | { 4 | "id" : "B66E37E7-E9DB-4364-A758-69493EBB84FA", 5 | "name" : "Configuration 1", 6 | "options" : { 7 | 8 | } 9 | } 10 | ], 11 | "defaultOptions" : { 12 | 13 | }, 14 | "testTargets" : [ 15 | { 16 | "target" : { 17 | "containerPath" : "container:Branch-TestBed.xcodeproj", 18 | "identifier" : "E7AC745F2DB064BC002D8C40", 19 | "name" : "Reflection_ODM_Tests" 20 | } 21 | }, 22 | { 23 | "target" : { 24 | "containerPath" : "container:Branch-TestBed.xcodeproj", 25 | "identifier" : "7E6B3B501AA42D0E005F45BF", 26 | "name" : "Branch-SDK-Tests" 27 | } 28 | } 29 | ], 30 | "version" : 1 31 | } 32 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed-UITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed-UITests/UITestCaseTestBed.h: -------------------------------------------------------------------------------- 1 | // 2 | // UITestCaseTestBed.h 3 | // Branch-TestBed-UITests 4 | // 5 | // Created by Nidhi on 3/7/21. 6 | // Copyright © 2021 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #ifndef UITestCaseTestBed_h 10 | #define UITestCaseTestBed_h 11 | 12 | #import 13 | 14 | extern BOOL setIdentity; 15 | extern BOOL checkIdentity; 16 | extern BOOL setFBParams; 17 | extern BOOL checkFBParams; 18 | 19 | @interface UITestCaseTestBed : XCTestCase 20 | 21 | @property NSString *deeplinkDataToCheck; 22 | 23 | - (void)sendEvent:(NSString*)eventName; 24 | -(void)parseURL:(NSString **)url andJSON:(NSDictionary **)json FromLogs:(NSString*)logs; 25 | -(void)parseURL:(NSString **)url andJSON:(NSDictionary **)json andStatus:(NSString**)status andDataJSON:(NSDictionary **)dataJson FromLogs:(NSString*)logs; 26 | - (void)clickLinkInWebPage:(NSString*)webPage; 27 | - (void)OpenLinkInNewTab:(NSString*)webPage; 28 | - (void) OpenLinkWithMenuToEnableUniversalLink:(NSString*)webPage; 29 | - (XCUIApplication *) launchSafariNOpenLink:(NSString*)webPage; 30 | - (void)disableTracking:(BOOL)disable; 31 | @end 32 | 33 | #endif /* UITestCaseTestBed_h */ 34 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "originHash" : "d56bc7728e41c97a44136d6183fac55f67109eb4ddd481e77850df5331f07c38", 3 | "pins" : [ 4 | { 5 | "identity" : "googleutilities", 6 | "kind" : "remoteSourceControl", 7 | "location" : "https://github.com/google/GoogleUtilities", 8 | "state" : { 9 | "revision" : "53156c7ec267db846e6b64c9f4c4e31ba4cf75eb", 10 | "version" : "8.0.2" 11 | } 12 | }, 13 | { 14 | "identity" : "nanopb", 15 | "kind" : "remoteSourceControl", 16 | "location" : "https://github.com/nanopb/nanopb", 17 | "state" : { 18 | "revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1" 19 | } 20 | } 21 | ], 22 | "version" : 3 23 | } 24 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Branch-TestBed 4 | // 5 | // Created by Alex Austin on 6/5/14. 6 | // Copyright (c) 2014 Branch Metrics. All rights reserved. 7 | // 8 | 9 | @interface AppDelegate : UIResponder 10 | @property (strong, nonatomic) UIWindow *window; 11 | @property NSString* logFileName; 12 | @property NSString* PrevCommandLogFileName; 13 | - (void) processLogMessage:(NSString*)message; 14 | - (void) setLogFile:(NSString*)fileName; 15 | @end 16 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/ArrayPickerView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ArrayPickerView.h 3 | // Branch-TestBed 4 | // 5 | // Created by edward on 11/6/17. 6 | // Copyright © 2017 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ArrayPickerView : UIPickerView 12 | 13 | @property (nonatomic, strong) NSString*_Nullable doneButtonTitle; 14 | 15 | - (instancetype _Nonnull) initWithArray:(NSArray *_Nonnull)array; 16 | 17 | - (void) presentFromViewController:(UIViewController*_Nonnull)viewController 18 | withCompletion:(void (^_Nullable)(NSString*_Nullable result))completion; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/Branch@1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/Branch@1024.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon100x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon100x100.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon114x114.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon120x120-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon120x120-1.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon120x120.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon144x144.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon152x152-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon152x152-1.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon167x167.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon180x180.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon29x29-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon29x29-1.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon29x29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon29x29.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon40x40.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon50x50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon50x50.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon57x57.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon58x58-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon58x58-1.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon58x58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon58x58.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon72x72.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon76x76.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon80x80-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon80x80-1.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon80x80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon80x80.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon87x87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon87x87.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage1024x768.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage1024x768.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage1536x2048.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage1536x2048.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage2048x1536.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage2048x1536.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage640x1136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage640x1136.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage640x960.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage640x960.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage768x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage768x1024.png -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Branch-TestBed-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifdef __OBJC__ 10 | #if __has_feature(modules) 11 | @import Foundation; 12 | @import UIKit; 13 | #else 14 | #import 15 | #import 16 | #endif 17 | #endif 18 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/Branch-TestBed.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | com.apple.developer.associated-domains 8 | 9 | applinks:bnc.lt 10 | applinks:bnctestbed.app.link 11 | applinks:bnctestbed.test-app.link 12 | applinks:bnctestbed-alternate.app.link 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/LogOutputViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LogOutputViewController.h 3 | // Branch-TestBed 4 | // 5 | // Created by David Westgate on 5/11/16. 6 | // Copyright © 2016 Branch Metrics. All rights reserved. 7 | // 8 | 9 | @interface LogOutputViewController : UIViewController // 10 | @property (nonatomic, strong) NSString *logOutput; 11 | @end 12 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/NavigationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // NavigationController.h 3 | // Branch-TestBed 4 | // 5 | // Created by David Westgate on 5/22/16. 6 | // Copyright © 2016 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "Branch.h" 10 | 11 | @interface NavigationController : UINavigationController 12 | @end 13 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/PasteControlViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PasteControlViewController.h 3 | // Branch-TestBed 4 | // 5 | // Created by Nidhi Dixit on 9/27/22. 6 | // Copyright © 2022 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface PasteControlViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/StoreKitTestCertificate.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Branch-TestBed/StoreKitTestCertificate.cer -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // Branch-TestBed 4 | // 5 | // Created by Alex Austin on 6/5/14. 6 | // Copyright (c) 2014 Branch Metrics. All rights reserved. 7 | // 8 | 9 | @interface ViewController : UITableViewController 10 | @end 11 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Branch-TestBed/Branch-TestBed/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Branch-TestBed 4 | // 5 | // Created by Alex Austin on 6/5/14. 6 | // Copyright (c) 2014 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | int main(int argc, char * argv[]) { 12 | @autoreleasepool { 13 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Branch-TestBed/README.md: -------------------------------------------------------------------------------- 1 | Legacy Branch TestBed - used to run older unit tests 2 | 3 | -------------------------------------------------------------------------------- /Branch-TestBed/Reflection_ODM_Tests.xctestplan: -------------------------------------------------------------------------------- 1 | { 2 | "configurations" : [ 3 | { 4 | "id" : "A6502679-11C9-4A48-B913-4DDAEC18EBD9", 5 | "name" : "Test Scheme Action", 6 | "options" : { 7 | 8 | } 9 | } 10 | ], 11 | "defaultOptions" : { 12 | 13 | }, 14 | "testTargets" : [ 15 | { 16 | "parallelizable" : true, 17 | "target" : { 18 | "containerPath" : "container:Branch-TestBed.xcodeproj", 19 | "identifier" : "E7AC745F2DB064BC002D8C40", 20 | "name" : "Reflection_ODM_Tests" 21 | } 22 | } 23 | ], 24 | "version" : 1 25 | } 26 | -------------------------------------------------------------------------------- /Branch-TestBed/Reflection_ODM_Tests/Framework/AppAdsOnDeviceConversion.xcframework/ios-arm64/AppAdsOnDeviceConversion.framework/AppAdsOnDeviceConversion: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Reflection_ODM_Tests/Framework/AppAdsOnDeviceConversion.xcframework/ios-arm64/AppAdsOnDeviceConversion.framework/AppAdsOnDeviceConversion -------------------------------------------------------------------------------- /Branch-TestBed/Reflection_ODM_Tests/Framework/AppAdsOnDeviceConversion.xcframework/ios-arm64/AppAdsOnDeviceConversion.framework/Headers/AppAdsOnDeviceConversion.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | -------------------------------------------------------------------------------- /Branch-TestBed/Reflection_ODM_Tests/Framework/AppAdsOnDeviceConversion.xcframework/ios-arm64/AppAdsOnDeviceConversion.framework/Headers/ODCConversionTypes.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /// The type of interaction for fetching conversion info. 4 | typedef NS_ENUM(NSInteger, ODCInteractionType) { 5 | ODCInteractionTypeInstallation, 6 | } NS_SWIFT_NAME(InteractionType); 7 | -------------------------------------------------------------------------------- /Branch-TestBed/Reflection_ODM_Tests/Framework/AppAdsOnDeviceConversion.xcframework/ios-arm64/AppAdsOnDeviceConversion.framework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleExecutable 6 | AppAdsOnDeviceConversion 7 | CFBundleIdentifier 8 | com.google.ads.AppAdsOnDeviceConversion 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | AppAdsOnDeviceConversion 13 | CFBundlePackageType 14 | FMWK 15 | CFBundleVersion 16 | 0.8.21 17 | CFBundleShortVersionString 18 | 0.8.21 19 | DTSDKName 20 | iphonesimulator11.2 21 | MinimumOSVersion 22 | 100.0 23 | 24 | 25 | -------------------------------------------------------------------------------- /Branch-TestBed/Reflection_ODM_Tests/Framework/AppAdsOnDeviceConversion.xcframework/ios-arm64/AppAdsOnDeviceConversion.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module AppAdsOnDeviceConversion { 2 | umbrella header "AppAdsOnDeviceConversion.h" 3 | export * 4 | module * { export * } 5 | link framework "Foundation" 6 | link "c++" 7 | } 8 | -------------------------------------------------------------------------------- /Branch-TestBed/Reflection_ODM_Tests/Framework/AppAdsOnDeviceConversion.xcframework/ios-arm64_x86_64-simulator/AppAdsOnDeviceConversion.framework/AppAdsOnDeviceConversion: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/Branch-TestBed/Reflection_ODM_Tests/Framework/AppAdsOnDeviceConversion.xcframework/ios-arm64_x86_64-simulator/AppAdsOnDeviceConversion.framework/AppAdsOnDeviceConversion -------------------------------------------------------------------------------- /Branch-TestBed/Reflection_ODM_Tests/Framework/AppAdsOnDeviceConversion.xcframework/ios-arm64_x86_64-simulator/AppAdsOnDeviceConversion.framework/Headers/AppAdsOnDeviceConversion.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | -------------------------------------------------------------------------------- /Branch-TestBed/Reflection_ODM_Tests/Framework/AppAdsOnDeviceConversion.xcframework/ios-arm64_x86_64-simulator/AppAdsOnDeviceConversion.framework/Headers/ODCConversionTypes.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /// The type of interaction for fetching conversion info. 4 | typedef NS_ENUM(NSInteger, ODCInteractionType) { 5 | ODCInteractionTypeInstallation, 6 | } NS_SWIFT_NAME(InteractionType); 7 | -------------------------------------------------------------------------------- /Branch-TestBed/Reflection_ODM_Tests/Framework/AppAdsOnDeviceConversion.xcframework/ios-arm64_x86_64-simulator/AppAdsOnDeviceConversion.framework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleExecutable 6 | AppAdsOnDeviceConversion 7 | CFBundleIdentifier 8 | com.google.ads.AppAdsOnDeviceConversion 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | AppAdsOnDeviceConversion 13 | CFBundlePackageType 14 | FMWK 15 | CFBundleVersion 16 | 0.8.21 17 | CFBundleShortVersionString 18 | 0.8.21 19 | DTSDKName 20 | iphonesimulator11.2 21 | MinimumOSVersion 22 | 100.0 23 | 24 | 25 | -------------------------------------------------------------------------------- /Branch-TestBed/Reflection_ODM_Tests/Framework/AppAdsOnDeviceConversion.xcframework/ios-arm64_x86_64-simulator/AppAdsOnDeviceConversion.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module AppAdsOnDeviceConversion { 2 | umbrella header "AppAdsOnDeviceConversion.h" 3 | export * 4 | module * { export * } 5 | link framework "Foundation" 6 | link "c++" 7 | } 8 | -------------------------------------------------------------------------------- /Branch-TestBed/cannedData/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "user_string": "test user", 3 | "user_number": 3.14, 4 | "user_dict": { 5 | "id": "273e4c5da13b978ee2f78f8997abd972959c184aaffb8cad716721a00a08d32b", 6 | "name": "hello@branch.io" 7 | }, 8 | "user_dict_mixed": { 9 | "id": 123, 10 | "name": "hello@branch.io" 11 | }, 12 | "user_dict_numbers": { 13 | "id": 123, 14 | "name": 42 15 | }, 16 | "user_array": [ 17 | "123", 18 | "abc", 19 | "xyz" 20 | ], 21 | "user_array_mixed": [ 22 | "abc", 23 | 123, 24 | "xyz" 25 | ], 26 | "user_array_numbers": [ 27 | 1, 28 | 2, 29 | 3 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /Branch-TestBed/cannedData/latd.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_attributed_touch_data": { 3 | "$3p": "hello", 4 | "~campaign": "world" 5 | }, 6 | "attribution_window": 30 7 | } 8 | -------------------------------------------------------------------------------- /Branch-TestBed/cannedData/latd_empty_data.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_attributed_touch_data": { }, 3 | "attribution_window": 30 4 | } 5 | -------------------------------------------------------------------------------- /Branch-TestBed/cannedData/latd_missing_data.json: -------------------------------------------------------------------------------- 1 | { 2 | "attribution_window": 30 3 | } 4 | -------------------------------------------------------------------------------- /Branch-TestBed/cannedData/latd_missing_window.json: -------------------------------------------------------------------------------- 1 | { 2 | "last_attributed_touch_data": { 3 | "$3p": "hello", 4 | "~campaign": "world" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Branch-TestBed/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Branch { 2 | umbrella header "Branch.h" 3 | 4 | export * 5 | module * { export * } 6 | 7 | link framework "MobileCoreServices" 8 | } 9 | -------------------------------------------------------------------------------- /BranchSDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /BranchSDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/Assets.xcassets/back_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "icons8-left-100.png", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | }, 21 | "properties" : { 22 | "template-rendering-intent" : "template" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/Assets.xcassets/back_img.imageset/icons8-left-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/Assets.xcassets/back_img.imageset/icons8-left-100.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/Assets.xcassets/qentelli_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/Assets.xcassets/qentelli_logo.imageset/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/Assets.xcassets/qentelli_logo.imageset/img.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/Constants/CommonAlert.swift: -------------------------------------------------------------------------------- 1 | 2 | import UIKit 3 | 4 | class CommonAlert { 5 | 6 | static let shared = CommonAlert() 7 | 8 | func showActionAlertView(title:String,message:String,actions:[UIAlertAction],preferredStyle:UIAlertController.Style = .alert,viewController:UIViewController?) -> Void { 9 | let alertController = UIAlertController(title: title, message:message, preferredStyle: preferredStyle) 10 | if actions.isEmpty { 11 | alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action: UIAlertAction!) in 12 | viewController?.dismiss(animated: true, completion: nil) 13 | })) 14 | }else{ 15 | for action in actions { 16 | alertController.addAction(action) 17 | } 18 | } 19 | 20 | viewController?.present(alertController, animated: true, completion: nil) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/Controllers/ShareDynamicallyVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ShareDynamicallyVC.swift 3 | // DeepLinkDemo 4 | // 5 | // Created by Rakesh kumar on 4/19/22. 6 | // 7 | 8 | import UIKit 9 | class ShareDynamicallyVC: ParentViewController { 10 | } 11 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/Controllers/ViewController.swift: -------------------------------------------------------------------------------- 1 | // ViewController.swift 2 | // DeepLinkDemo 3 | // Created by Apple on 17/05/22 4 | import UIKit 5 | 6 | class ViewController: ParentViewController { 7 | 8 | override func viewDidLoad() { 9 | super.viewDidLoad() 10 | super.reachabilityCheck() 11 | } 12 | 13 | 14 | 15 | override var preferredStatusBarStyle: UIStatusBarStyle { 16 | return .lightContent 17 | } 18 | 19 | 20 | } 21 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/DeepLinkDemo-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // DeepLinkDemo-Bridging-Header.h 3 | // DeepLinkDemo 4 | // 5 | // Created by Rakesh kumar on 4/18/22. 6 | // 7 | 8 | #ifndef DeepLinkDemo_Bridging_Header_h 9 | #define DeepLinkDemo_Bridging_Header_h 10 | #import "SIAlertView.h" 11 | 12 | #endif /* DeepLinkDemo_Bridging_Header_h */ 13 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/DeepLinkDemo.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.associated-domains 6 | 7 | applinks:timber.test-app.link 8 | applinks:timber.test-app.link 9 | applinks:timber.test-app.link 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Header.h 3 | // DeepLinkDemo 4 | // 5 | // Created by Rakesh kumar on 4/18/22. 6 | // 7 | 8 | #ifndef Header_h 9 | #define Header_h 10 | #import "SIAlertView.h" 11 | 12 | #endif /* Header_h */ 13 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/NSURLSessionBranch.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSURLSession+Branch.h 3 | // 4 | // Created by Ernest Cho on 10/11/18. 5 | // Copyright © 2018 Branch Metrics, Inc. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface NSURLSession (Branch) 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/Reachability/Reachability.h: -------------------------------------------------------------------------------- 1 | // 2 | // Reachability.h 3 | // Reachability 4 | // 5 | // Created by Yuki Nagai on 11/2/15. 6 | // Copyright © 2015 Ashley Mills. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Reachability. 12 | FOUNDATION_EXPORT double ReachabilityVersionNumber; 13 | 14 | //! Project version string for Reachability. 15 | FOUNDATION_EXPORT const unsigned char ReachabilityVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel-d.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel-d@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel-d@2x.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel@2x.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default-d.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default-d@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default-d@2x.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default@2x.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive-d.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive-d@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive-d@2x.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive@2x.png -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/SIAlertView/UIWindow+SIUtils.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIWindow+SIUtils.h 3 | // SIAlertView 4 | // 5 | // Created by Kevin Cao on 13-11-1. 6 | // Copyright (c) 2013年 Sumi Interactive. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIWindow (SIUtils) 12 | 13 | - (UIViewController *)currentViewController; 14 | 15 | #ifdef __IPHONE_7_0 16 | - (UIViewController *)viewControllerForStatusBarStyle; 17 | - (UIViewController *)viewControllerForStatusBarHidden; 18 | #endif 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /DeepLinkDemo/DeepLinkDemo/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/DeepLinkDemo/DeepLinkDemo/img.png -------------------------------------------------------------------------------- /DeepLinkDemo/IPA/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | compileBitcode 6 | 7 | destination 8 | export 9 | method 10 | development 11 | provisioningProfiles 12 | 13 | io.branch.saas.sdk.testbed 14 | iOS Saas SDK - Dev 15 | 16 | signingCertificate 17 | Apple Development 18 | signingStyle 19 | manual 20 | stripSwiftSymbols 21 | 22 | teamID 23 | R63EM248DP 24 | thinning 25 | <none> 26 | 27 | 28 | -------------------------------------------------------------------------------- /DeepLinkDemo/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | platform :ios, '12.0' 3 | 4 | target 'DeepLinkDemo' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | pod 'IQKeyboardManager' 8 | pod 'BranchSDK', :path => './../' 9 | 10 | # Pods for DeepLinkDemo 11 | 12 | end 13 | -------------------------------------------------------------------------------- /DeepLinkDemo/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - BranchSDK (3.4.4) 3 | - IQKeyboardManager (6.5.19) 4 | 5 | DEPENDENCIES: 6 | - BranchSDK (from `./../`) 7 | - IQKeyboardManager 8 | 9 | SPEC REPOS: 10 | trunk: 11 | - IQKeyboardManager 12 | 13 | EXTERNAL SOURCES: 14 | BranchSDK: 15 | :path: "./../" 16 | 17 | SPEC CHECKSUMS: 18 | BranchSDK: 28bec34fb99c53ab8e86b7bf69cc55a4505fe0b3 19 | IQKeyboardManager: c8665b3396bd0b79402b4c573eac345a31c7d485 20 | 21 | PODFILE CHECKSUM: 8c4b32f5c4a14defd62bc8a2d1e49cee9e7c2173 22 | 23 | COCOAPODS: 1.15.2 24 | -------------------------------------------------------------------------------- /DeepLinkDemo/README.md: -------------------------------------------------------------------------------- 1 | # Branch SaaS SDK IOS TestApp 2 | 3 | -------------------------------------------------------------------------------- /Framework/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module BranchSDK { 2 | umbrella header "BranchSDK.h" 3 | export * 4 | module * { export * } 5 | } -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'cocoapods', '~> 1.9' 4 | gem 'activesupport', '~> 7.0', '<= 7.0.8' 5 | gem 'fastlane', '~> 2.69' 6 | gem 'pattern_patch', '~> 0.5' 7 | gem 'slather' 8 | 9 | plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') 10 | eval_gemfile(plugins_path) if File.exist?(plugins_path) 11 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Branch Metrics, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Branch SDK Documentation for iOS 2 | 3 | The Branch iOS SDK for deep linking and attribution. 4 | 5 | > ## Branch Sandbox Program 6 | > 7 | > As part of this [sandbox program](https://help.branch.io/developers-hub/docs/branch-sandbox-program), you will be able to partner directly with Branch’s Product and Engineering team for exclusive access to test drive our innovative products before the market and proactively exchange valuable feedback. With your support, we will create the winning measurement and linking solutions of the future together. 8 | > 9 | > **If you would like to join, please reach out to us today at [sandbox@branch.io](mailto:sandbox@branch.io "mailto:sandbox@branch.io") or by filling out this [form](https://branch.link/sandbox?~channel=ios-repo).** 10 | 11 | Branch helps mobile apps grow with deep links / deeplinks that power paid acquisition and re-engagement campaigns, referral programs, content sharing, deep linked emails, smart banners, custom user onboarding, and more. 12 | 13 | View [Branch's SDK documentation for iOS](https://help.branch.io/developers-hub/docs/ios-sdk-overview) -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Carthage/cartfile: -------------------------------------------------------------------------------- 1 | git "https://github.com/BranchMetrics/ios-branch-deep-linking-attribution.git" 2 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Carthage/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Carthage/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Carthage/iOSReleaseTest/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Carthage/iOSReleaseTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Carthage/iOSReleaseTest/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // iOSReleaseTest 4 | // 5 | // Created by Nipun Singh on 2/4/22. 6 | // 7 | 8 | import UIKit 9 | import BranchSDK 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view. 16 | } 17 | 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Carthage/iOSReleaseTest/iOSReleaseTest.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.associated-domains 6 | 7 | applinks:nipunreleasetest.app.link 8 | applinks:nipunreleasetest-alternate.app.link 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'iOSReleaseTest' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for iOSReleaseTest 9 | pod 'BranchSDK' 10 | 11 | end 12 | 13 | target 'iOSReleaseTestTests' do 14 | # Comment the next line if you don't want to use dynamic frameworks 15 | use_frameworks! 16 | 17 | # Pods for iOSReleaseTestTests 18 | pod 'BranchSDK' 19 | 20 | end 21 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/iOSReleaseTest.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/iOSReleaseTest/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/iOSReleaseTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/iOSReleaseTest/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // iOSReleaseTest 4 | // 5 | // Created by Nipun Singh on 2/4/22. 6 | // 7 | 8 | import UIKit 9 | import BranchSDK 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view. 16 | } 17 | 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/iOSReleaseTest/iOSReleaseTest.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.associated-domains 6 | 7 | applinks:nipunreleasetest.app.link 8 | applinks:nipunreleasetest-alternate.app.link 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-SPM/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-SPM/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-SPM/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "ios-branch-deep-linking-attribution", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/BranchMetrics/ios-branch-deep-linking-attribution", 7 | "state" : { 8 | "branch" : "master", 9 | "revision" : "c088b0be61f91768b46caf8c1862cad0e4a149da" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-SPM/iOSReleaseTest/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-SPM/iOSReleaseTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-SPM/iOSReleaseTest/BranchSDKTest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BranchSDKTest.swift 3 | // iOSReleaseTest 4 | // 5 | // Created by Nidhi Dixit on 1/31/23. 6 | // 7 | 8 | import Foundation 9 | import BranchSDK 10 | 11 | class BranchSDKTest { 12 | 13 | init() { 14 | Branch.getInstance().enableLogging() 15 | Branch.getInstance().initSession(launchOptions: nil) { (params, error) in 16 | print(params as? [String: AnyObject] ?? {}) 17 | } 18 | } 19 | 20 | func disableTracking( status: Bool) { 21 | Branch.setTrackingDisabled(status) 22 | } 23 | 24 | func trackingStatus() -> Bool { 25 | return Branch.trackingDisabled() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-SPM/iOSReleaseTest/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // iOSReleaseTest 4 | // 5 | // Created by Nipun Singh on 2/4/22. 6 | // 7 | 8 | import UIKit 9 | 10 | class ViewController: UIViewController { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | } 15 | 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-SPM/iOSReleaseTest/iOSReleaseTest.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.associated-domains 6 | 7 | applinks:nipunreleasetest.app.link 8 | applinks:nipunreleasetest-alternate.app.link 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-iOSReleaseTest-SPM/iOSReleaseTestTests/iOSReleaseTestTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // iOSReleaseTestTests.swift 3 | // iOSReleaseTestTests 4 | // 5 | // Created by Nidhi Dixit on 1/15/23. 6 | // 7 | 8 | import XCTest 9 | @testable import iOSReleaseTest 10 | 11 | final class iOSReleaseTestTests: XCTestCase { 12 | 13 | override func setUpWithError() throws { 14 | // Put setup code here. This method is called before the invocation of each test method in the class. 15 | } 16 | 17 | override func tearDownWithError() throws { 18 | // Put teardown code here. This method is called after the invocation of each test method in the class. 19 | } 20 | 21 | func testSetTrackingDisabled() throws { 22 | 23 | let sdk = BranchSDKTest() 24 | 25 | sdk.disableTracking(status: true) 26 | let x = sdk.trackingStatus() 27 | assert( x == true) 28 | sdk.disableTracking(status: true) 29 | } 30 | 31 | func testPerformanceExample() throws { 32 | // This is an example of a performance test case. 33 | measure { 34 | // Put the code you want to measure the time of here. 35 | } 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/Podfile: -------------------------------------------------------------------------------- 1 | target 'tvOSReleaseTest' do 2 | # Comment the next line if you don't want to use dynamic frameworks 3 | use_frameworks! 4 | 5 | pod 'BranchSDK' 6 | 7 | end 8 | 9 | target 'tvOSReleaseTestTests' do 10 | # Comment the next line if you don't want to use dynamic frameworks 11 | use_frameworks! 12 | 13 | pod 'BranchSDK' 14 | 15 | end 16 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - BranchSDK (2.0.0) 3 | 4 | DEPENDENCIES: 5 | - BranchSDK 6 | 7 | SPEC REPOS: 8 | trunk: 9 | - BranchSDK 10 | 11 | SPEC CHECKSUMS: 12 | BranchSDK: dbecf9d1da931c2cf57393b233347b3587d11acb 13 | 14 | PODFILE CHECKSUM: b7db230f02cca02441bc18cee8f2e100c8afe864 15 | 16 | COCOAPODS: 1.11.2 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Back.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Back.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "layers" : [ 7 | { 8 | "filename" : "Front.imagestacklayer" 9 | }, 10 | { 11 | "filename" : "Middle.imagestacklayer" 12 | }, 13 | { 14 | "filename" : "Back.imagestacklayer" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Front.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Front.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Back.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Back.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "layers" : [ 7 | { 8 | "filename" : "Front.imagestacklayer" 9 | }, 10 | { 11 | "filename" : "Middle.imagestacklayer" 12 | }, 13 | { 14 | "filename" : "Back.imagestacklayer" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Front.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Front.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Middle.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "assets" : [ 3 | { 4 | "filename" : "App Icon - App Store.imagestack", 5 | "idiom" : "tv", 6 | "role" : "primary-app-icon", 7 | "size" : "1280x768" 8 | }, 9 | { 10 | "filename" : "App Icon.imagestack", 11 | "idiom" : "tv", 12 | "role" : "primary-app-icon", 13 | "size" : "400x240" 14 | }, 15 | { 16 | "filename" : "Top Shelf Image Wide.imageset", 17 | "idiom" : "tv", 18 | "role" : "top-shelf-image-wide", 19 | "size" : "2320x720" 20 | }, 21 | { 22 | "filename" : "Top Shelf Image.imageset", 23 | "idiom" : "tv", 24 | "role" : "top-shelf-image", 25 | "size" : "1920x720" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // tvOSReleaseTest 4 | // 5 | // Created by Nidhi Dixit on 1/30/23. 6 | // 7 | 8 | import UIKit 9 | 10 | class ViewController: UIViewController { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | // Do any additional setup after loading the view. 15 | } 16 | 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Carthage/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Carthage/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Carthage/iOSReleaseTest/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Carthage/iOSReleaseTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Carthage/iOSReleaseTest/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // iOSReleaseTest 4 | // 5 | // Created by Nipun Singh on 2/4/22. 6 | // 7 | 8 | import UIKit 9 | import BranchSDK 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view. 16 | } 17 | 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Carthage/iOSReleaseTest/iOSReleaseTest.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.associated-domains 6 | 7 | applinks:nipunreleasetest.app.link 8 | applinks:nipunreleasetest-alternate.app.link 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'iOSReleaseTest' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for iOSReleaseTest 9 | pod 'BranchSDK', :path => './../../' 10 | 11 | end 12 | 13 | target 'iOSReleaseTestTests' do 14 | # Comment the next line if you don't want to use dynamic frameworks 15 | use_frameworks! 16 | 17 | # Pods for iOSReleaseTestTests 18 | pod 'BranchSDK', :path => './../../' 19 | 20 | end 21 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - BranchSDK (2.0.0) 3 | 4 | DEPENDENCIES: 5 | - BranchSDK (from `./../../`) 6 | 7 | EXTERNAL SOURCES: 8 | BranchSDK: 9 | :path: "./../../" 10 | 11 | SPEC CHECKSUMS: 12 | BranchSDK: dbecf9d1da931c2cf57393b233347b3587d11acb 13 | 14 | PODFILE CHECKSUM: 7f1a17826ebb04b3ecb0951b204f760667812b76 15 | 16 | COCOAPODS: 1.11.2 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/iOSReleaseTest.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/iOSReleaseTest.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/iOSReleaseTest/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/iOSReleaseTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/iOSReleaseTest/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // iOSReleaseTest 4 | // 5 | // Created by Nipun Singh on 2/4/22. 6 | // 7 | 8 | import UIKit 9 | import BranchSDK 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view. 16 | } 17 | 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/iOSReleaseTest/iOSReleaseTest.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.associated-domains 6 | 7 | applinks:nipunreleasetest.app.link 8 | applinks:nipunreleasetest-alternate.app.link 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual-Static/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual-Static/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual-Static/iOSReleaseTest/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual-Static/iOSReleaseTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual-Static/iOSReleaseTest/BranchSDKTest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BranchSDKTest.swift 3 | // iOSReleaseTest 4 | // 5 | // Created by Nidhi Dixit on 1/31/23. 6 | // 7 | 8 | import Foundation 9 | import BranchSDK 10 | 11 | class BranchSDKTest { 12 | 13 | init() { 14 | Branch.getInstance().enableLogging() 15 | Branch.getInstance().initSession(launchOptions: nil) { (params, error) in 16 | print(params as? [String: AnyObject] ?? {}) 17 | } 18 | } 19 | 20 | func disableTracking( status: Bool) { 21 | Branch.setTrackingDisabled(status) 22 | } 23 | 24 | func trackingStatus() -> Bool { 25 | return Branch.trackingDisabled() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual-Static/iOSReleaseTest/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // iOSReleaseTest 4 | // 5 | // Created by Nipun Singh on 2/4/22. 6 | // 7 | 8 | import UIKit 9 | 10 | class ViewController: UIViewController { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | // Do any additional setup after loading the view. 15 | } 16 | 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual-Static/iOSReleaseTest/iOSReleaseTest.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.associated-domains 6 | 7 | applinks:nipunreleasetest.app.link 8 | applinks:nipunreleasetest-alternate.app.link 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual-Static/iOSReleaseTestTests/iOSReleaseTestTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // iOSReleaseTestTests.swift 3 | // iOSReleaseTestTests 4 | // 5 | // Created by Nidhi Dixit on 1/15/23. 6 | // 7 | 8 | import XCTest 9 | @testable import iOSReleaseTest 10 | 11 | final class iOSReleaseTestTests: XCTestCase { 12 | 13 | override func setUpWithError() throws { 14 | // Put setup code here. This method is called before the invocation of each test method in the class. 15 | } 16 | 17 | override func tearDownWithError() throws { 18 | // Put teardown code here. This method is called after the invocation of each test method in the class. 19 | } 20 | 21 | func testSetTrackingDisabled() throws { 22 | 23 | let sdk = BranchSDKTest() 24 | 25 | sdk.disableTracking(status: true) 26 | let x = sdk.trackingStatus() 27 | assert( x == true) 28 | sdk.disableTracking(status: true) 29 | } 30 | 31 | func testPerformanceExample() throws { 32 | // This is an example of a performance test case. 33 | measure { 34 | // Put the code you want to measure the time of here. 35 | } 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual/iOSReleaseTest/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual/iOSReleaseTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual/iOSReleaseTest/BranchSDKTest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BranchSDKTest.swift 3 | // iOSReleaseTest 4 | // 5 | // Created by Nidhi Dixit on 1/31/23. 6 | // 7 | 8 | import Foundation 9 | import BranchSDK 10 | 11 | class BranchSDKTest { 12 | 13 | init() { 14 | Branch.init() 15 | } 16 | 17 | func disableTracking( status: Bool) { 18 | Branch.setTrackingDisabled(status) 19 | } 20 | 21 | func trackingStatus() -> Bool { 22 | return Branch.trackingDisabled() 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual/iOSReleaseTest/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // iOSReleaseTest 4 | // 5 | // Created by Nipun Singh on 2/4/22. 6 | // 7 | 8 | import UIKit 9 | 10 | class ViewController: UIViewController { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | // Do any additional setup after loading the view. 15 | } 16 | 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual/iOSReleaseTest/iOSReleaseTest.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.associated-domains 6 | 7 | applinks:nipunreleasetest.app.link 8 | applinks:nipunreleasetest-alternate.app.link 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-Manual/iOSReleaseTestTests/iOSReleaseTestTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // iOSReleaseTestTests.swift 3 | // iOSReleaseTestTests 4 | // 5 | // Created by Nidhi Dixit on 1/15/23. 6 | // 7 | 8 | import XCTest 9 | 10 | @testable import iOSReleaseTest 11 | 12 | final class iOSReleaseTestTests: XCTestCase { 13 | 14 | override func setUpWithError() throws { 15 | // Put setup code here. This method is called before the invocation of each test method in the class. 16 | } 17 | 18 | override func tearDownWithError() throws { 19 | // Put teardown code here. This method is called after the invocation of each test method in the class. 20 | } 21 | 22 | func testSetTrackingDisabled() throws { 23 | 24 | var sdk = BranchSDKTest() 25 | 26 | sdk.disableTracking(status: true) 27 | let x = sdk.trackingStatus() 28 | assert( x == true) 29 | sdk.disableTracking(status: true) 30 | } 31 | 32 | func testPerformanceExample() throws { 33 | // This is an example of a performance test case. 34 | measure { 35 | // Put the code you want to measure the time of here. 36 | } 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-SPM/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-SPM/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-SPM/iOSReleaseTest/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-SPM/iOSReleaseTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-SPM/iOSReleaseTest/BranchSDKTest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BranchSDKTest.swift 3 | // iOSReleaseTest 4 | // 5 | // Created by Nidhi Dixit on 1/31/23. 6 | // 7 | 8 | import Foundation 9 | import BranchSDK 10 | 11 | class BranchSDKTest { 12 | 13 | init() { 14 | Branch.getInstance().enableLogging() 15 | Branch.getInstance().initSession(launchOptions: nil) { (params, error) in 16 | print(params as? [String: AnyObject] ?? {}) 17 | } 18 | } 19 | 20 | func disableTracking( status: Bool) { 21 | Branch.setTrackingDisabled(status) 22 | } 23 | 24 | func trackingStatus() -> Bool { 25 | return Branch.trackingDisabled() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-SPM/iOSReleaseTest/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // iOSReleaseTest 4 | // 5 | // Created by Nipun Singh on 2/4/22. 6 | // 7 | 8 | import UIKit 9 | import BranchSDK 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | } 16 | 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-SPM/iOSReleaseTest/iOSReleaseTest.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.associated-domains 6 | 7 | applinks:nipunreleasetest.app.link 8 | applinks:nipunreleasetest-alternate.app.link 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/iOSReleaseTest-SPM/iOSReleaseTestTests/iOSReleaseTestTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // iOSReleaseTestTests.swift 3 | // iOSReleaseTestTests 4 | // 5 | // Created by Nidhi Dixit on 1/15/23. 6 | // 7 | 8 | import XCTest 9 | @testable import iOSReleaseTest 10 | 11 | final class iOSReleaseTestTests: XCTestCase { 12 | 13 | override func setUpWithError() throws { 14 | // Put setup code here. This method is called before the invocation of each test method in the class. 15 | } 16 | 17 | override func tearDownWithError() throws { 18 | // Put teardown code here. This method is called after the invocation of each test method in the class. 19 | } 20 | 21 | func testSetTrackingDisabled() throws { 22 | 23 | let sdk = BranchSDKTest() 24 | 25 | sdk.disableTracking(status: true) 26 | let x = sdk.trackingStatus() 27 | assert( x == true) 28 | sdk.disableTracking(status: true) 29 | } 30 | 31 | func testPerformanceExample() throws { 32 | // This is an example of a performance test case. 33 | measure { 34 | // Put the code you want to measure the time of here. 35 | } 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Back.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Back.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "layers" : [ 7 | { 8 | "filename" : "Front.imagestacklayer" 9 | }, 10 | { 11 | "filename" : "Middle.imagestacklayer" 12 | }, 13 | { 14 | "filename" : "Back.imagestacklayer" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Front.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Front.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Back.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Back.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "layers" : [ 7 | { 8 | "filename" : "Front.imagestacklayer" 9 | }, 10 | { 11 | "filename" : "Middle.imagestacklayer" 12 | }, 13 | { 14 | "filename" : "Back.imagestacklayer" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Front.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Front.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Middle.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "assets" : [ 3 | { 4 | "filename" : "App Icon - App Store.imagestack", 5 | "idiom" : "tv", 6 | "role" : "primary-app-icon", 7 | "size" : "1280x768" 8 | }, 9 | { 10 | "filename" : "App Icon.imagestack", 11 | "idiom" : "tv", 12 | "role" : "primary-app-icon", 13 | "size" : "400x240" 14 | }, 15 | { 16 | "filename" : "Top Shelf Image Wide.imageset", 17 | "idiom" : "tv", 18 | "role" : "top-shelf-image-wide", 19 | "size" : "2320x720" 20 | }, 21 | { 22 | "filename" : "Top Shelf Image.imageset", 23 | "idiom" : "tv", 24 | "role" : "top-shelf-image", 25 | "size" : "1920x720" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // tvOSReleaseTest 4 | // 5 | // Created by Nidhi Dixit on 1/30/23. 6 | // 7 | 8 | import UIKit 9 | 10 | class ViewController: UIViewController { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | // Do any additional setup after loading the view. 15 | } 16 | 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/Podfile: -------------------------------------------------------------------------------- 1 | target 'tvOSReleaseTest' do 2 | # Comment the next line if you don't want to use dynamic frameworks 3 | use_frameworks! 4 | 5 | pod 'BranchSDK', :path => './../../' 6 | 7 | end 8 | 9 | target 'tvOSReleaseTestTests' do 10 | # Comment the next line if you don't want to use dynamic frameworks 11 | use_frameworks! 12 | 13 | pod 'BranchSDK', :path => './../../' 14 | 15 | end 16 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - BranchSDK (2.0.0) 3 | 4 | DEPENDENCIES: 5 | - BranchSDK (from `./../../`) 6 | 7 | EXTERNAL SOURCES: 8 | BranchSDK: 9 | :path: "./../../" 10 | 11 | SPEC CHECKSUMS: 12 | BranchSDK: dbecf9d1da931c2cf57393b233347b3587d11acb 13 | 14 | PODFILE CHECKSUM: 03b123b37ef62488cc2febccc7e8d47e6a8d0768 15 | 16 | COCOAPODS: 1.11.2 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Back.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Back.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "layers" : [ 7 | { 8 | "filename" : "Front.imagestacklayer" 9 | }, 10 | { 11 | "filename" : "Middle.imagestacklayer" 12 | }, 13 | { 14 | "filename" : "Back.imagestacklayer" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Front.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Front.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Back.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Back.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "layers" : [ 7 | { 8 | "filename" : "Front.imagestacklayer" 9 | }, 10 | { 11 | "filename" : "Middle.imagestacklayer" 12 | }, 13 | { 14 | "filename" : "Back.imagestacklayer" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Front.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Front.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Middle.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "assets" : [ 3 | { 4 | "filename" : "App Icon - App Store.imagestack", 5 | "idiom" : "tv", 6 | "role" : "primary-app-icon", 7 | "size" : "1280x768" 8 | }, 9 | { 10 | "filename" : "App Icon.imagestack", 11 | "idiom" : "tv", 12 | "role" : "primary-app-icon", 13 | "size" : "400x240" 14 | }, 15 | { 16 | "filename" : "Top Shelf Image Wide.imageset", 17 | "idiom" : "tv", 18 | "role" : "top-shelf-image-wide", 19 | "size" : "2320x720" 20 | }, 21 | { 22 | "filename" : "Top Shelf Image.imageset", 23 | "idiom" : "tv", 24 | "role" : "top-shelf-image", 25 | "size" : "1920x720" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // tvOSReleaseTest 4 | // 5 | // Created by Nidhi Dixit on 1/30/23. 6 | // 7 | 8 | import UIKit 9 | 10 | class ViewController: UIViewController { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | // Do any additional setup after loading the view. 15 | } 16 | 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Back.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Back.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "layers" : [ 7 | { 8 | "filename" : "Front.imagestacklayer" 9 | }, 10 | { 11 | "filename" : "Middle.imagestacklayer" 12 | }, 13 | { 14 | "filename" : "Back.imagestacklayer" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Front.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Front.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Back.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Back.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "layers" : [ 7 | { 8 | "filename" : "Front.imagestacklayer" 9 | }, 10 | { 11 | "filename" : "Middle.imagestacklayer" 12 | }, 13 | { 14 | "filename" : "Back.imagestacklayer" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Front.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Front.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Middle.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "assets" : [ 3 | { 4 | "filename" : "App Icon - App Store.imagestack", 5 | "idiom" : "tv", 6 | "role" : "primary-app-icon", 7 | "size" : "1280x768" 8 | }, 9 | { 10 | "filename" : "App Icon.imagestack", 11 | "idiom" : "tv", 12 | "role" : "primary-app-icon", 13 | "size" : "400x240" 14 | }, 15 | { 16 | "filename" : "Top Shelf Image Wide.imageset", 17 | "idiom" : "tv", 18 | "role" : "top-shelf-image-wide", 19 | "size" : "2320x720" 20 | }, 21 | { 22 | "filename" : "Top Shelf Image.imageset", 23 | "idiom" : "tv", 24 | "role" : "top-shelf-image", 25 | "size" : "1920x720" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "tv", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "tv-marketing", 13 | "scale" : "1x" 14 | }, 15 | { 16 | "idiom" : "tv-marketing", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "author" : "xcode", 22 | "version" : 1 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/BranchSDKTest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // File.swift 3 | // tvOSReleaseTest 4 | // 5 | // Created by Nidhi Dixit on 1/31/23. 6 | // 7 | 8 | import Foundation 9 | import BranchSDK 10 | 11 | class BranchSDKTest { 12 | 13 | init() { 14 | Branch.getInstance().enableLogging() 15 | Branch.getInstance().initSession(launchOptions: nil) { (params, error) in 16 | print(params as? [String: AnyObject] ?? {}) 17 | } 18 | } 19 | 20 | func disableTracking( status: Bool) { 21 | Branch.setTrackingDisabled(status) 22 | } 23 | 24 | func trackingStatus() -> Bool { 25 | return Branch.trackingDisabled() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // tvOSReleaseTest 4 | // 5 | // Created by Nidhi Dixit on 1/30/23. 6 | // 7 | 8 | import UIKit 9 | 10 | class ViewController: UIViewController { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | // Do any additional setup after loading the view. 15 | } 16 | 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTestTests/tvOSReleaseTestTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // tvOSReleaseTestTests.swift 3 | // tvOSReleaseTestTests 4 | // 5 | // Created by Nidhi Dixit on 1/30/23. 6 | // 7 | 8 | import XCTest 9 | @testable import tvOSReleaseTest 10 | 11 | @testable import tvOSReleaseTest 12 | 13 | final class tvOSReleaseTestTests: XCTestCase { 14 | 15 | override func setUpWithError() throws { 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDownWithError() throws { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | } 22 | 23 | func testSetTrackingDisabled() throws { 24 | let sdk = BranchSDKTest() 25 | 26 | sdk.disableTracking(status: false) 27 | let x = sdk.trackingStatus() 28 | assert( x == false) 29 | } 30 | 31 | 32 | func testPerformanceExample() throws { 33 | // This is an example of a performance test case. 34 | self.measure { 35 | // Put the code you want to measure the time of here. 36 | } 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Reporting a Vulnerability 4 | If you discover a potential security issue in this project we ask that you notify Branch Security directly via email to security@branch.io 5 | Please do not open GitHub issues or pull requests - this makes the problem immediately visible to everyone, including malicious actors. 6 | -------------------------------------------------------------------------------- /Sources/BranchSDK/BNCConfig.m: -------------------------------------------------------------------------------- 1 | // 2 | // BNCConfig.c 3 | // Branch-SDK 4 | // 5 | // Created by Edward Smith on 12/12/16. 6 | // Copyright © 2016 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #include "BNCConfig.h" 10 | 11 | NSString * const BNC_SDK_VERSION = @"3.12.1"; 12 | NSString * const BNC_LINK_URL = @"https://bnc.lt"; 13 | NSString * const BNC_CDN_URL = @"https://cdn.branch.io"; 14 | 15 | NSString * const BNC_API_URL = @"https://api3.branch.io"; 16 | NSString * const BNC_SAFETRACK_API_URL = @"https://api-safetrack.branch.io"; 17 | NSString * const BNC_EU_API_URL = @"https://api3-eu.branch.io"; 18 | NSString * const BNC_SAFETRACK_EU_API_URL = @"https://api-safetrack-eu.branch.io"; 19 | -------------------------------------------------------------------------------- /Sources/BranchSDK/BNCDeepLinkViewControllerInstance.m: -------------------------------------------------------------------------------- 1 | // 2 | // BNCDeepLinkViewControllerInstance.m 3 | // Branch-SDK 4 | // 5 | // Created by Parth Kalavadia on 5/15/17. 6 | // Copyright © 2017 Parth Kalavadia. All rights reserved. 7 | // 8 | 9 | #import "BNCDeepLinkViewControllerInstance.h" 10 | 11 | @implementation BNCDeepLinkViewControllerInstance 12 | @end 13 | -------------------------------------------------------------------------------- /Sources/BranchSDK/BNCEventUtils.m: -------------------------------------------------------------------------------- 1 | // 2 | // BNCEventUtils.m 3 | // BranchSDK 4 | // 5 | // Created by Nipun Singh on 1/31/23. 6 | // Copyright © 2023 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import "BNCEventUtils.h" 10 | 11 | @interface BNCEventUtils() 12 | @property (nonatomic, strong, readwrite) NSMutableSet *events; 13 | @end 14 | 15 | @implementation BNCEventUtils 16 | 17 | + (instancetype)shared { 18 | static BNCEventUtils *set = nil; 19 | static dispatch_once_t onceToken = 0; 20 | dispatch_once(&onceToken, ^{ 21 | set = [BNCEventUtils new]; 22 | }); 23 | return set; 24 | } 25 | 26 | - (instancetype)init { 27 | self = [super init]; 28 | if (self) { 29 | self.events = [NSMutableSet set]; 30 | } 31 | return self; 32 | } 33 | 34 | - (void)storeEvent:(BranchEvent *)event { 35 | [self.events addObject:event]; 36 | } 37 | 38 | - (void)removeEvent:(BranchEvent *)event { 39 | [self.events removeObject:event]; 40 | } 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Sources/BranchSDK/BNCInitSessionResponse.m: -------------------------------------------------------------------------------- 1 | // 2 | // BNCInitSessionResponse.m 3 | // Branch 4 | // 5 | // Created by Ernest Cho on 3/30/20. 6 | // Copyright © 2020 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import "BNCInitSessionResponse.h" 10 | 11 | @implementation BNCInitSessionResponse 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Sources/BranchSDK/BNCLinkCache.m: -------------------------------------------------------------------------------- 1 | // 2 | // BNCLinkCache.m 3 | // Branch-SDK 4 | // 5 | // Created by Qinwei Gong on 1/23/15. 6 | // Copyright (c) 2015 Branch Metrics. All rights reserved. 7 | // 8 | 9 | 10 | #import "BNCLinkCache.h" 11 | 12 | 13 | @interface BNCLinkCache () 14 | @property (nonatomic, strong) NSMutableDictionary *cache; 15 | @end 16 | 17 | 18 | @implementation BNCLinkCache 19 | 20 | - (id)init { 21 | if ((self = [super init])) { 22 | self.cache = [[NSMutableDictionary alloc] init]; 23 | } 24 | return self; 25 | } 26 | 27 | - (void)setObject:(NSString *)anObject forKey:(BNCLinkData *)aKey { 28 | @synchronized (self) { 29 | self.cache[@([aKey hash])] = anObject; 30 | } 31 | } 32 | 33 | - (NSString *)objectForKey:(BNCLinkData *)aKey { 34 | @synchronized (self) { 35 | return self.cache[@([aKey hash])]; 36 | } 37 | } 38 | 39 | - (void) clear { 40 | @synchronized (self) { 41 | [self.cache removeAllObjects]; 42 | } 43 | } 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /Sources/BranchSDK/BNCServerResponse.m: -------------------------------------------------------------------------------- 1 | // 2 | // BNCServerResponse.m 3 | // Branch-SDK 4 | // 5 | // Created by Qinwei Gong on 10/10/14. 6 | // Copyright (c) 2014 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BNCServerResponse.h" 10 | 11 | @implementation BNCServerResponse 12 | 13 | - (NSString *)description { 14 | if (self.requestId) { 15 | return [NSString stringWithFormat:@"[%@] Status: %@; Data: %@", self.requestId, self.statusCode, self.data]; 16 | } 17 | else { 18 | return [NSString stringWithFormat:@"Status: %@; Data: %@", self.statusCode, self.data]; 19 | } 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Sources/BranchSDK/BranchContentPathProperties.m: -------------------------------------------------------------------------------- 1 | // 2 | // ContentPathProperties.m 3 | // Branch-TestBed 4 | // 5 | // Created by Sojan P.R. on 8/19/16. 6 | // Copyright © 2016 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BranchContentPathProperties.h" 10 | #import "BranchConstants.h" 11 | 12 | @implementation BranchContentPathProperties 13 | 14 | - (instancetype)init:(NSDictionary *)pathInfo { 15 | self = [super init]; 16 | if (self) { 17 | _pathInfo = pathInfo; 18 | if ([pathInfo objectForKey:BRANCH_HASH_MODE_KEY]) { 19 | _isClearText = ![[pathInfo objectForKey:BRANCH_HASH_MODE_KEY] boolValue]; 20 | } 21 | } 22 | return self; 23 | } 24 | 25 | - (NSArray *)getFilteredElements { 26 | return [_pathInfo objectForKey:BRANCH_FILTERED_KEYS]; 27 | } 28 | 29 | - (BOOL)isSkipContentDiscovery { 30 | NSArray *filteredElements = [self getFilteredElements]; 31 | return (filteredElements && filteredElements.count == 0); 32 | } 33 | 34 | - (BOOL)isClearText { 35 | return _isClearText; 36 | } 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Sources/BranchSDK/BranchDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // BranchDelegate.m 3 | // Branch-SDK 4 | // 5 | // Created by Edward Smith on 6/30/17. 6 | // Copyright © 2017 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BranchDelegate.h" 10 | 11 | NSString* const BranchWillStartSessionNotification = @"BranchWillStartSessionNotification"; 12 | NSString* const BranchDidStartSessionNotification = @"BranchDidStartSessionNotification"; 13 | 14 | NSString* const BranchErrorKey = @"BranchErrorKey"; 15 | NSString* const BranchURLKey = @"BranchURLKey"; 16 | NSString* const BranchUniversalObjectKey = @"BranchUniversalObjectKey"; 17 | NSString* const BranchLinkPropertiesKey = @"BranchLinkPropertiesKey"; 18 | -------------------------------------------------------------------------------- /Sources/BranchSDK/BranchInstallRequest.m: -------------------------------------------------------------------------------- 1 | // 2 | // BranchInstallRequest.m 3 | // Branch-TestBed 4 | // 5 | // Created by Graham Mueller on 5/26/15. 6 | // Copyright (c) 2015 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BranchInstallRequest.h" 10 | #import "BNCServerAPI.h" 11 | #import "BranchConstants.h" 12 | 13 | #import "BNCRequestFactory.h" 14 | 15 | @implementation BranchInstallRequest 16 | 17 | - (id)initWithCallback:(callbackWithStatus)callback { 18 | return [super initWithCallback:callback isInstall:YES]; 19 | } 20 | 21 | - (void)makeRequest:(BNCServerInterface *)serverInterface key:(NSString *)key callback:(BNCServerCallback)callback { 22 | BNCRequestFactory *factory = [[BNCRequestFactory alloc] initWithBranchKey:key UUID:self.requestUUID TimeStamp:self.requestCreationTimeStamp]; 23 | NSDictionary *params = [factory dataForInstallWithURLString:self.urlString]; 24 | 25 | [serverInterface postRequest:params url:[[BNCServerAPI sharedInstance] installServiceURL] key:key callback:callback]; 26 | } 27 | 28 | - (NSString *)getActionName { 29 | return @"install"; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Sources/BranchSDK/NSString+Branch.m: -------------------------------------------------------------------------------- 1 | /** 2 | @file NSString+Branch.m 3 | @package Branch-SDK 4 | @brief NSString Additions 5 | 6 | @author Edward Smith 7 | @date February 2017 8 | @copyright Copyright © 2017 Branch. All rights reserved. 9 | */ 10 | 11 | #import "NSString+Branch.h" 12 | 13 | __attribute__((constructor)) void BNCForceNSStringCategoryToLoad(void) { 14 | // Nothing here, but forces linker to load the category. 15 | } 16 | 17 | @implementation NSString (Branch) 18 | 19 | - (BOOL) bnc_isEqualToMaskedString:(NSString*_Nullable)string { 20 | // Un-comment for debugging: 21 | // NSLog(@"bnc_isEqualToMaskedString self/string:\n%@\n%@.", self, string); 22 | if (!string) return NO; 23 | if (self.length != string.length) return NO; 24 | for (NSUInteger idx = 0; idx < self.length; idx++) { 25 | unichar p = [self characterAtIndex:idx]; 26 | unichar q = [string characterAtIndex:idx]; 27 | if (q != '*' && p != q) return NO; 28 | } 29 | return YES; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCAppGroupsData.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCAppGroupsData.h 3 | // Branch 4 | // 5 | // Created by Ernest Cho on 9/27/20. 6 | // Copyright © 2020 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface BNCAppGroupsData : NSObject 14 | 15 | // app group used to share data between the App Clip and the Full App 16 | @property (nonatomic, readwrite, copy) NSString *appGroup; 17 | 18 | // App Clip data 19 | @property (nonatomic, readwrite, copy) NSString *bundleID; 20 | @property (nonatomic, strong, readwrite) NSDate *installDate; 21 | @property (nonatomic, readwrite, copy) NSString *url; 22 | @property (nonatomic, readwrite, copy) NSString *branchToken; 23 | @property (nonatomic, readwrite, copy) NSString *bundleToken; 24 | 25 | + (instancetype)shared; 26 | 27 | // saves app clip data when appropriate 28 | - (void)saveAppClipData; 29 | 30 | // loads app clip data 31 | - (BOOL)loadAppClipData; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCAppleReceipt.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCAppleReceipt.h 3 | // Branch 4 | // 5 | // Created by Ernest Cho on 7/11/19. 6 | // Copyright © 2019 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface BNCAppleReceipt : NSObject 18 | 19 | + (BNCAppleReceipt *)sharedInstance; 20 | 21 | // this is only available on builds from Apple 22 | - (nullable NSString *)installReceipt; 23 | - (BOOL)isTestFlight; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCCallbackMap.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCCallbackMap.h 3 | // Branch 4 | // 5 | // Created by Ernest Cho on 2/25/20. 6 | // Copyright © 2020 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BNCServerRequest.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface BNCCallbackMap : NSObject 15 | 16 | + (instancetype)shared; 17 | 18 | - (void)storeRequest:(BNCServerRequest *)request withCompletion:(void (^_Nullable)(BOOL success, NSError * _Nullable error))completion; 19 | 20 | - (BOOL)containsRequest:(BNCServerRequest *)request; 21 | 22 | - (void)callCompletionForRequest:(BNCServerRequest *)request withSuccessStatus:(BOOL)status error:(nullable NSError *)error; 23 | 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCConfig.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCConfig.h 3 | // Branch-SDK 4 | // 5 | // Created by Qinwei Gong on 10/6/14. 6 | // Copyright (c) 2014 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | 15 | 16 | FOUNDATION_EXPORT NSString * _Nonnull const BNC_SDK_VERSION; 17 | FOUNDATION_EXPORT NSString * _Nonnull const BNC_LINK_URL; 18 | FOUNDATION_EXPORT NSString * _Nonnull const BNC_CDN_URL; 19 | 20 | FOUNDATION_EXPORT NSString * _Nonnull const BNC_API_URL; 21 | FOUNDATION_EXPORT NSString * _Nonnull const BNC_SAFETRACK_API_URL; 22 | FOUNDATION_EXPORT NSString * _Nonnull const BNC_EU_API_URL; 23 | FOUNDATION_EXPORT NSString * _Nonnull const BNC_SAFETRACK_EU_API_URL; 24 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCCrashlyticsWrapper.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCCrashlyticsWrapper.h 3 | // Branch.framework 4 | // 5 | // Created by Jimmy Dee on 7/18/17. 6 | // Copyright © 2017 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | 15 | /** 16 | * Convenience class to dynamically wrap the FIRCrashlytics SDK 17 | * if present. If it is not present, everything here is a no-op. 18 | */ 19 | @interface BNCCrashlyticsWrapper : NSObject 20 | 21 | /// Convenience method to create new instances 22 | + (instancetype _Nonnull)wrapper; 23 | 24 | /** 25 | * Use this method to set key values in a Crashlytics report. 26 | */ 27 | - (void)setCustomValue:(id _Nullable)value forKey:(NSString * _Nonnull)key; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCDeepLinkViewControllerInstance.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCDeepLinkViewControllerInstance.h 3 | // Branch-SDK 4 | // 5 | // Created by Parth Kalavadia on 5/15/17. 6 | // Copyright © 2017 Parth Kalavadia. All rights reserved. 7 | // 8 | 9 | #import "BranchDeepLinkingController.h" 10 | 11 | @interface BNCDeepLinkViewControllerInstance : NSObject 12 | @property (strong, nonatomic)UIViewController* viewController; 13 | @property (nonatomic, assign)BNCViewControllerPresentationOption option; 14 | @end 15 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCDeviceSystem.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCDeviceSystem.h 3 | // BranchSDK 4 | // 5 | // Utility class to query build, machine and cpu info 6 | // 7 | // Created by Ernest Cho on 11/14/19. 8 | // Copyright © 2019 Branch, Inc. All rights reserved. 9 | // 10 | 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface BNCDeviceSystem : NSObject 16 | 17 | // Build info from the Software Version 18 | // "iOS 13.2.2 (17B102)" would return "17B102" 19 | @property (nonatomic, copy, readwrite) NSString *systemBuildVersion; 20 | 21 | // Machine type information 22 | // "x86_64" on simulator 23 | // "iPad7,5" on iPad (2018) 24 | @property (nonatomic, copy, readwrite) NSString *machine; 25 | 26 | // CPU type information 27 | // See mach/machine.h for details 28 | @property (nonatomic, strong, readwrite) NSNumber *cpuType; 29 | @property (nonatomic, strong, readwrite) NSNumber *cpuSubType; 30 | 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCEventUtils.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCEventUtils.h 3 | // BranchSDK 4 | // 5 | // Created by Nipun Singh on 1/31/23. 6 | // 7 | // Apple's StoreKit API requires us to keep a strong reference to the SKProductsRequest in order to receive the response. 8 | // But BranchEvent is designed to be fire and forget, so it doesn't persisnt after being used. 9 | // To work around this, this class holds a reference to the BranchEvent until we receive a response from the StoreKit API. 10 | 11 | #import 12 | #import "BranchEvent.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @interface BNCEventUtils : NSObject 17 | 18 | + (instancetype)shared; 19 | 20 | - (void)storeEvent:(BranchEvent *)event; 21 | 22 | - (void)removeEvent:(BranchEvent *)event; 23 | 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCInAppBrowser.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCInAppBrowser.h 3 | // Branch 4 | // 5 | // Created by Nidhi Dixit on 5/12/25. 6 | // Copyright © 2025 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #if !TARGET_OS_TV 10 | #import 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface BNCInAppBrowser : NSObject 16 | /** 17 | Returns the shared singleton instance of `BNCInAppBrowser`. 18 | @return A shared instance of `BNCInAppBrowser`, or `nil` if `SFSafariViewController` is not available. 19 | */ 20 | + (instancetype)sharedInstance; 21 | 22 | /** 23 | Opens the given URL in a `SFSafariViewController`over current top-most view controller. 24 | @param url The URL to be opened. 25 | */ 26 | - (void)openURLInSafariVC:(NSURL *) url; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCJSONUtility.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCJSONUtility.h 3 | // Branch 4 | // 5 | // Created by Ernest Cho on 9/17/19. 6 | // Copyright © 2019 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | // Utility methods to convert untyped data to typed data 14 | @interface BNCJSONUtility : NSObject 15 | 16 | + (BOOL)isNumber:(nullable id)number; 17 | 18 | + (BOOL)isString:(nullable id)string; 19 | 20 | + (BOOL)isDictionary:(nullable id)dictionary; 21 | 22 | + (BOOL)isArray:(nullable id)array; 23 | 24 | + (nullable NSDictionary *)dictionaryForKey:(NSString *)key json:(NSDictionary *)json; 25 | 26 | + (nullable NSDictionary *)stringDictionaryForKey:(NSString *)key json:(NSDictionary *)json; 27 | 28 | + (nullable NSArray *)arrayForKey:(NSString *)key json:(NSDictionary *)json; 29 | 30 | + (nullable NSArray *)stringArrayForKey:(NSString *)key json:(NSDictionary *)json; 31 | 32 | + (nullable NSString *)stringForKey:(NSString *)key json:(NSDictionary *)json; 33 | 34 | + (nullable NSNumber *)numberForKey:(NSString *)key json:(NSDictionary *)json; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCNetworkInterface.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCNetworkInterface.h 3 | // BranchSDK 4 | // 5 | // Utility class to query device network information 6 | // 7 | // Created by Ernest Cho on 11/19/19. 8 | // Copyright © 2019 Branch, Inc. All rights reserved. 9 | // 10 | 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface BNCNetworkInterface : NSObject 16 | 17 | + (nullable NSString *)localIPAddress; 18 | 19 | + (NSArray *)allIPAddresses; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCPartnerParameters.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCPartnerParameters.h 3 | // Branch 4 | // 5 | // Created by Ernest Cho on 12/9/20. 6 | // Copyright © 2020 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | Parameters that clients wish to share with partners 15 | */ 16 | @interface BNCPartnerParameters : NSObject 17 | 18 | + (instancetype)shared; 19 | 20 | // FB partner parameters, see FB documentation for details 21 | // Values that do not look like a valid SHA-256 hash are ignored 22 | - (void)addFacebookParameterWithName:(NSString *)name value:(NSString *)value; 23 | 24 | // Snap partner parameters, see Snap documentation for details 25 | // Values that do not look like a valid SHA-256 hash are ignored 26 | - (void)addSnapParameterWithName:(NSString *)name value:(NSString *)value; 27 | 28 | - (void)clearAllParameters; 29 | 30 | // reference to the internal json dictionary 31 | - (NSDictionary *)parameterJson; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCPasteboard.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCPasteboard.h 3 | // Branch 4 | // 5 | // Created by Ernest Cho on 6/24/21. 6 | // Copyright © 2021 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface BNCPasteboard : NSObject 14 | 15 | /* 16 | Indicates if the client wishes to check for Branch links on install. By default, this is NO. 17 | 18 | Set via Branch.checkPasteboardOnInstall 19 | Checked by BranchInstallRequest.makeRequest before checking the pasteboard for a Branch link. 20 | */ 21 | @property (nonatomic, assign) BOOL checkOnInstall; 22 | 23 | - (BOOL)isUrlOnPasteboard; 24 | - (nullable NSURL *)checkForBranchLink; 25 | 26 | + (BNCPasteboard *)sharedInstance; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCQRCodeCache.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCQRCodeCache.h 3 | // Branch 4 | // 5 | // Created by Nipun Singh on 5/5/22. 6 | // Copyright © 2022 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface BNCQRCodeCache : NSObject 14 | 15 | + (BNCQRCodeCache *) sharedInstance; 16 | - (void)addQRCodeToCache:(NSData *)qrCodeData withParams:(NSMutableDictionary *)parameters; 17 | - (NSData *)checkQRCodeCache:(NSMutableDictionary *)parameters; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCReachability.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCReachability.h 3 | // BranchSDK 4 | // 5 | // Utility class to query device connectivity 6 | // 7 | // Created by Ernest Cho on 11/18/19. 8 | // Copyright © 2019 Branch, Inc. All rights reserved. 9 | // 10 | 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface BNCReachability : NSObject 16 | 17 | + (BNCReachability *)shared; 18 | 19 | - (nullable NSString *)reachabilityStatus; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCReferringURLUtility.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCReferringURLUtility.h 3 | // Branch 4 | // 5 | // Created by Nipun Singh on 3/9/23. 6 | // Copyright © 2023 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | 14 | @interface BNCReferringURLUtility : NSObject 15 | 16 | // Parses the referring URL query parameters from a URL 17 | - (void)parseReferringURL:(NSURL *)url; 18 | 19 | // Based on the request endpoint, get the required URL query params to attach. 20 | - (NSDictionary *)referringURLQueryParamsForEndpoint:(NSString *)endpoint; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCSystemObserver.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCSystemObserver.h 3 | // BranchSDK 4 | // 5 | // A collection of simple utility methods to get system information. 6 | // 7 | // Created by Alex Austin on 6/5/14. 8 | // Copyright (c) 2014 Branch Metrics. All rights reserved. 9 | // 10 | 11 | #if __has_feature(modules) 12 | @import Foundation; 13 | #else 14 | #import 15 | #endif 16 | 17 | @interface BNCSystemObserver : NSObject 18 | 19 | + (NSString *)defaultURIScheme; 20 | + (NSString *)applicationVersion; 21 | + (NSString *)bundleIdentifier; 22 | + (NSString *)teamIdentifier; 23 | + (NSString *)brand; 24 | + (NSString *)model; 25 | + (NSString *)osName; 26 | + (NSString *)osVersion; 27 | + (NSNumber *)screenWidth; 28 | + (NSNumber *)screenHeight; 29 | + (NSNumber *)screenScale; 30 | + (BOOL)isSimulator; 31 | + (NSString *)advertiserIdentifier; 32 | + (NSString *)attOptedInStatus; 33 | + (NSString *)appleAttributionToken; 34 | + (NSString *)environment; 35 | + (BOOL)isAppClip; 36 | + (BOOL)compareUriSchemes:(NSString *) serverUriScheme; 37 | + (BOOL)compareLinkDomain:(NSString*) serverLinkDomain; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCUrlQueryParameter.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCUrlQueryParameter.h 3 | // Branch 4 | // 5 | // Created by Nipun Singh on 3/15/23. 6 | // Copyright © 2023 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface BNCUrlQueryParameter : NSObject 14 | 15 | @property (readwrite, copy, nonatomic) NSString *name; 16 | @property (readwrite, copy, nonatomic) NSString *value; 17 | @property (readwrite, strong, nonatomic) NSDate *timestamp; 18 | @property (readwrite, assign, nonatomic) BOOL isDeepLink; 19 | 20 | @property (readwrite, assign, nonatomic) NSTimeInterval validityWindow; 21 | 22 | // YES - [NSDate date] is within validity window 23 | - (BOOL)isWithinValidityWindow; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BNCUserAgentCollector.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCUserAgentCollector.h 3 | // BranchSDK 4 | // 5 | // Utility class to query WebKit user agent 6 | // 7 | // Created by Ernest Cho on 8/29/19. 8 | // Copyright © 2019 Branch, Inc. All rights reserved. 9 | // 10 | 11 | #if !TARGET_OS_TV 12 | #if __has_feature(modules) 13 | @import Foundation; 14 | #else 15 | #import 16 | #endif 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | // Handles User Agent lookup from WebKit 21 | @interface BNCUserAgentCollector : NSObject 22 | 23 | + (BNCUserAgentCollector *)instance; 24 | 25 | @property (nonatomic, copy, readwrite) NSString *userAgent; 26 | 27 | - (void)loadUserAgentWithCompletion:(void (^)(NSString * _Nullable userAgent))completion; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | #endif 33 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/Branch+Validator.h: -------------------------------------------------------------------------------- 1 | // 2 | // Branch+Validator.h 3 | // Branch 4 | // 5 | // Created by agrim on 12/18/17. 6 | // Copyright © 2017 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import "Branch.h" 10 | 11 | @interface Branch (Validator) 12 | - (void) validateSDKIntegrationCore; 13 | - (void) validateDeeplinkRouting:(NSDictionary *)params; 14 | + (NSString *) returnNonUniversalLink:(NSString *) referringLink; 15 | @end 16 | 17 | void BNCForceBranchValidatorCategoryToLoad(void); 18 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BranchContentDiscoverer.h: -------------------------------------------------------------------------------- 1 | // 2 | // ContentDiscoverer.h 3 | // Branch-TestBed 4 | // 5 | // Created by Sojan P.R. on 8/17/16. 6 | // Copyright © 2016 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BranchContentDiscoveryManifest.h" 10 | 11 | @interface BranchContentDiscoverer : NSObject 12 | 13 | + (BranchContentDiscoverer *)getInstance; 14 | - (void) startDiscoveryTaskWithManifest:(BranchContentDiscoveryManifest*)manifest; 15 | - (void) startDiscoveryTask; 16 | - (void) stopDiscoveryTask; 17 | 18 | @property (nonatomic, strong) BranchContentDiscoveryManifest* contentManifest; 19 | @end 20 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BranchContentDiscoveryManifest.h: -------------------------------------------------------------------------------- 1 | // 2 | // ContentDiscoverManifest.h 3 | // Branch-TestBed 4 | // 5 | // Created by Sojan P.R. on 8/18/16. 6 | // Copyright © 2016 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BranchContentPathProperties.h" 10 | 11 | @interface BranchContentDiscoveryManifest : NSObject 12 | 13 | @property (strong, nonatomic) NSMutableDictionary *cdManifest; 14 | @property (nonatomic, copy) NSString *referredLink; 15 | @property (nonatomic, assign) NSInteger maxTextLen; 16 | @property (nonatomic, assign) NSInteger maxViewHistoryLength; 17 | @property (nonatomic, assign) NSInteger maxPktSize; 18 | @property (nonatomic, assign) BOOL isCDEnabled; 19 | @property (strong, nonatomic) NSMutableArray *contentPaths; 20 | 21 | + (BranchContentDiscoveryManifest *)getInstance; 22 | - (NSString *)getManifestVersion; 23 | - (BranchContentPathProperties *)getContentPathProperties:(UIViewController *)viewController; 24 | - (void)onBranchInitialised:(NSDictionary *)branchInitDict withUrl:(NSString *)referringURL; 25 | @end 26 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BranchContentPathProperties.h: -------------------------------------------------------------------------------- 1 | // 2 | // ContentPathProperties.h 3 | // Branch-TestBed 4 | // 5 | // Created by Sojan P.R. on 8/19/16. 6 | // Copyright © 2016 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | @import UIKit; 12 | #else 13 | #import 14 | #import 15 | #endif 16 | 17 | @interface BranchContentPathProperties : NSObject 18 | 19 | @property (strong, nonatomic) NSDictionary *pathInfo; 20 | @property (assign, nonatomic) BOOL isClearText; 21 | 22 | - (instancetype)init:(NSDictionary *)pathInfo; 23 | - (NSArray *)getFilteredElements; 24 | - (BOOL)isSkipContentDiscovery; 25 | - (BOOL)isClearText; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BranchFileLogger.h: -------------------------------------------------------------------------------- 1 | // 2 | // BranchFileLogger.h 3 | // 4 | // 5 | // Created by Sharath Sriram on 15/10/24. 6 | // 7 | 8 | #if !TARGET_OS_TV 9 | 10 | #import 11 | #import 12 | 13 | @interface BranchFileLogger : NSObject 14 | 15 | + (instancetype)sharedInstance; 16 | - (void)logMessage:(NSString *)message; 17 | - (NSString *)getLogFilePath; 18 | - (void)clearLogs; 19 | - (BOOL)isLogFilePopulated; 20 | - (void)shareLogFileFromViewController:(UIViewController *)viewController; 21 | 22 | @end 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BranchInstallRequest.h: -------------------------------------------------------------------------------- 1 | // 2 | // BranchInstallRequest.h 3 | // Branch-TestBed 4 | // 5 | // Created by Graham Mueller on 5/26/15. 6 | // Copyright (c) 2015 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BranchOpenRequest.h" 10 | 11 | @interface BranchInstallRequest : BranchOpenRequest 12 | - (NSString *)getActionName; 13 | @end 14 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BranchLATDRequest.h: -------------------------------------------------------------------------------- 1 | // 2 | // BranchLATDRequest.h 3 | // Branch 4 | // 5 | // Created by Ernest Cho on 9/18/19. 6 | // Copyright © 2019 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BNCServerRequest.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface BranchLATDRequest : BNCServerRequest 15 | 16 | @property (nonatomic, assign, readwrite) NSInteger attributionWindow; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BranchOpenRequest.h: -------------------------------------------------------------------------------- 1 | // 2 | // BranchOpenRequest.h 3 | // Branch-TestBed 4 | // 5 | // Created by Graham Mueller on 5/26/15. 6 | // Copyright (c) 2015 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BNCServerRequest.h" 10 | #import "BNCCallbacks.h" 11 | 12 | @interface BranchOpenRequest : BNCServerRequest 13 | 14 | // URL that triggered this install or open event 15 | @property (nonatomic, copy, readwrite) NSString *urlString; 16 | @property (assign, nonatomic) BOOL isFromArchivedQueue; 17 | @property (nonatomic, copy) callbackWithStatus callback; 18 | 19 | + (void) waitForOpenResponseLock; 20 | + (void) releaseOpenResponseLock; 21 | + (void) setWaitNeededForOpenResponseLock; 22 | 23 | - (id)initWithCallback:(callbackWithStatus)callback; 24 | - (id)initWithCallback:(callbackWithStatus)callback isInstall:(BOOL)isInstall; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BranchShortUrlRequest.h: -------------------------------------------------------------------------------- 1 | // 2 | // BranchShortUrlRequest.h 3 | // Branch-TestBed 4 | // 5 | // Created by Graham Mueller on 5/26/15. 6 | // Copyright (c) 2015 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BNCServerRequest.h" 10 | #import "Branch.h" 11 | 12 | @interface BranchShortUrlRequest : BNCServerRequest 13 | 14 | @property (nonatomic, assign) BOOL isSpotlightRequest; 15 | 16 | - (id)initWithTags:(NSArray *)tags alias:(NSString *)alias type:(BranchLinkType)type matchDuration:(NSInteger)duration channel:(NSString *)channel feature:(NSString *)feature stage:(NSString *)stage campaign:(NSString *)campaign params:(NSDictionary *)params linkData:(BNCLinkData *)linkData linkCache:(BNCLinkCache *)linkCache callback:(callbackWithUrl)callback; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/BranchSpotlightUrlRequest.h: -------------------------------------------------------------------------------- 1 | // 2 | // BranchSpotlightUrlRequest.h 3 | // Branch-TestBed 4 | // 5 | // Created by Graham Mueller on 7/23/15. 6 | // Copyright © 2015 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BranchShortUrlRequest.h" 10 | 11 | @interface BranchSpotlightUrlRequest : BranchShortUrlRequest 12 | 13 | - (id)initWithParams:(NSDictionary *)params callback:(callbackWithParams)callback; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/NSString+Branch.h: -------------------------------------------------------------------------------- 1 | /** 2 | @file NSString+Branch.h 3 | @package Branch-SDK 4 | @brief NSString Additions 5 | 6 | @author Edward Smith 7 | @date February 2017 8 | @copyright Copyright © 2017 Branch. All rights reserved. 9 | */ 10 | 11 | #if __has_feature(modules) 12 | @import Foundation; 13 | #else 14 | #import 15 | #endif 16 | 17 | @interface NSString (Branch) 18 | 19 | ///@discussion Compares the receiver to a masked string. Masked characters (the '*' character) are 20 | /// ignored for purposes of the compare. 21 | /// 22 | ///@return YES if string (ignoring any masked characters) is equal to the receiver. 23 | - (BOOL)bnc_isEqualToMaskedString:(NSString * _Nullable)string; 24 | 25 | @end 26 | 27 | void BNCForceNSStringCategoryToLoad(void) __attribute__((constructor)); 28 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Private/UIViewController+Branch.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+Branch.h 3 | // Branch-SDK 4 | // 5 | // Created by Edward Smith on 11/16/17. 6 | // Copyright © 2017 Branch. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import UIKit; 11 | #else 12 | #import 13 | #endif 14 | 15 | @interface UIViewController (Branch) 16 | + (UIWindow*_Nullable) bnc_currentWindow; 17 | + (UIViewController*_Nullable) bnc_currentViewController; 18 | - (UIViewController*_Nonnull) bnc_currentViewController; 19 | @end 20 | 21 | void BNCForceUIViewControllerCategoryToLoad(void) __attribute__((constructor)); 22 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BNCCallbacks.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCCallbacks.h 3 | // Branch-TestBed 4 | // 5 | // Created by Ahmed Nawar on 6/18/16. 6 | // Copyright © 2016 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | 15 | @class BranchUniversalObject, BranchLinkProperties; 16 | 17 | typedef void (^callbackWithParams) (NSDictionary * _Nullable params, NSError * _Nullable error); 18 | typedef void (^callbackWithUrl) (NSString * _Nullable url, NSError * _Nullable error); 19 | typedef void (^callbackWithStatus) (BOOL changed, NSError * _Nullable error); 20 | typedef void (^callbackWithList) (NSArray * _Nullable list, NSError * _Nullable error); 21 | typedef void (^callbackWithUrlAndSpotlightIdentifier) (NSString * _Nullable url, NSString * _Nullable spotlightIdentifier, NSError * _Nullable error); 22 | typedef void (^callbackWithBranchUniversalObject) (BranchUniversalObject * _Nullable universalObject, BranchLinkProperties * _Nullable linkProperties, NSError * _Nullable error); 23 | typedef void (^callbackWithData) (NSData * _Nullable data, NSError * _Nullable error); 24 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BNCInitSessionResponse.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCInitSessionResponse.h 3 | // Branch 4 | // 5 | // Created by Ernest Cho on 3/30/20. 6 | // Copyright © 2020 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BranchUniversalObject.h" 11 | #import "BranchLinkProperties.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface BNCInitSessionResponse : NSObject 16 | 17 | @property (nonatomic, strong, readwrite) NSDictionary *params; 18 | @property (nonatomic, strong, readwrite) BranchUniversalObject *universalObject; 19 | @property (nonatomic, strong, readwrite) BranchLinkProperties *linkProperties; 20 | 21 | @property (nonatomic, copy, readwrite) NSString *sceneIdentifier; 22 | @property (nonatomic, strong, readwrite) NSError *error; 23 | 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BNCLinkCache.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCLinkCache.h 3 | // Branch-SDK 4 | // 5 | // Created by Qinwei Gong on 1/23/15. 6 | // Copyright (c) 2015 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BNCLinkData.h" 10 | 11 | @interface BNCLinkCache : NSObject 12 | - (void)setObject:(NSString *)anObject forKey:(BNCLinkData *)aKey; 13 | - (NSString *)objectForKey:(BNCLinkData *)aKey; 14 | - (void) clear; 15 | @end 16 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BNCLinkData.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCLinkData.h 3 | // Branch-SDK 4 | // 5 | // Created by Qinwei Gong on 1/22/15. 6 | // Copyright (c) 2015 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | 15 | typedef NS_ENUM(NSUInteger, BranchLinkType) { 16 | BranchLinkTypeUnlimitedUse = 0, 17 | BranchLinkTypeOneTimeUse = 1 18 | }; 19 | 20 | @interface BNCLinkData : NSObject 21 | 22 | @property (strong, nonatomic) NSMutableDictionary *data; 23 | 24 | - (void)setupTags:(NSArray *)tags; 25 | - (void)setupAlias:(NSString *)alias; 26 | - (void)setupType:(BranchLinkType)type; 27 | - (void)setupChannel:(NSString *)channel; 28 | - (void)setupFeature:(NSString *)feature; 29 | - (void)setupStage:(NSString *)stage; 30 | - (void)setupCampaign:(NSString *)campaign; 31 | - (void)setupParams:(NSDictionary *)params; 32 | - (void)setupMatchDuration:(NSUInteger)duration; 33 | - (void)setupIgnoreUAString:(NSString *)ignoreUAString; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BNCServerRequest.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCServerRequest.h 3 | // Branch-SDK 4 | // 5 | // Created by Alex Austin on 6/5/14. 6 | // Copyright (c) 2014 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BNCServerInterface.h" 10 | 11 | @interface BNCServerRequest : NSObject 12 | 13 | @property (nonatomic, copy, readwrite) NSString *requestUUID; 14 | @property (nonatomic, copy, readwrite) NSNumber *requestCreationTimeStamp; 15 | 16 | - (void)makeRequest:(BNCServerInterface *)serverInterface key:(NSString *)key callback:(BNCServerCallback)callback; 17 | - (void)processResponse:(BNCServerResponse *)response error:(NSError *)error; 18 | - (void)safeSetValue:(NSObject *)value forKey:(NSString *)key onDict:(NSMutableDictionary *)dict; 19 | + (NSString *) generateRequestUUIDFromDate:(NSDate *) localDate; 20 | @end 21 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BNCServerRequestQueue.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCServerRequestQueue.h 3 | // Branch-SDK 4 | // 5 | // Created by Qinwei Gong on 9/6/14. 6 | // Copyright (c) 2014 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #import "BNCServerRequest.h" 10 | @class BranchOpenRequest; 11 | 12 | @interface BNCServerRequestQueue : NSObject 13 | 14 | - (void)enqueue:(BNCServerRequest *)request; 15 | - (BNCServerRequest *)dequeue; 16 | - (BNCServerRequest *)peek; 17 | - (BNCServerRequest *)peekAt:(NSUInteger)index; 18 | - (void)insert:(BNCServerRequest *)request at:(NSUInteger)index; 19 | - (BNCServerRequest *)removeAt:(NSUInteger)index; 20 | - (void)remove:(BNCServerRequest *)request; 21 | - (void)clearQueue; 22 | - (NSInteger)queueDepth; 23 | 24 | - (BOOL)containsInstallOrOpen; 25 | 26 | - (BranchOpenRequest *)findExistingInstallOrOpen; 27 | 28 | + (id)getInstance; 29 | @end 30 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BNCServerResponse.h: -------------------------------------------------------------------------------- 1 | // 2 | // BNCServerResponse.h 3 | // Branch-SDK 4 | // 5 | // Created by Qinwei Gong on 10/10/14. 6 | // Copyright (c) 2014 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | 15 | @interface BNCServerResponse : NSObject 16 | // statusCode is always populated from an NSInteger argument, so will never be null. 17 | @property (nonatomic, strong, nonnull) NSNumber *statusCode; 18 | @property (nonatomic, strong, nullable) id data; 19 | @property (nonatomic, copy, nullable) NSString *requestId; 20 | @end 21 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BranchDeepLinkingController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BranchDeepLinkingController.h 3 | // Branch-TestBed 4 | // 5 | // Created by Graham Mueller on 6/18/15. 6 | // Copyright (c) 2015 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | @import UIKit; 12 | #else 13 | #import 14 | #import 15 | #endif 16 | 17 | @protocol BranchDeepLinkingControllerCompletionDelegate 18 | 19 | - (void)deepLinkingControllerCompletedFrom:(UIViewController*) viewController; 20 | 21 | @end 22 | 23 | typedef NS_ENUM(NSInteger, BNCViewControllerPresentationOption) { 24 | BNCViewControllerOptionShow, 25 | BNCViewControllerOptionPush, 26 | BNCViewControllerOptionPresent 27 | }; 28 | 29 | #pragma mark - BranchDeepLinkingController Protocol 30 | 31 | @protocol BranchDeepLinkingController 32 | 33 | - (void)configureControlWithData:(NSDictionary *)data; 34 | @property (weak, nonatomic) id deepLinkingCompletionDelegate; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BranchLastAttributedTouchData.h: -------------------------------------------------------------------------------- 1 | // 2 | // BranchLastTouchAttributionData.h 3 | // Branch 4 | // 5 | // Created by Ernest Cho on 9/13/19. 6 | // Copyright © 2019 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BNCServerInterface.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface BranchLastAttributedTouchData : NSObject 15 | 16 | // free-form JSON 17 | @property (nonatomic, strong, readonly) NSDictionary *lastAttributedTouchJSON; 18 | 19 | @property (nonatomic, strong, readonly) NSNumber *attributionWindow; 20 | 21 | + (nullable BranchLastAttributedTouchData *)buildFromJSON:(NSDictionary *)json; 22 | 23 | + (void)requestLastTouchAttributedData:(BNCServerInterface *)serverInterface key:(NSString *)key attributionWindow:(NSInteger)window completion:(void(^) (BranchLastAttributedTouchData *latd, NSError *error))completion; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BranchLinkProperties.h: -------------------------------------------------------------------------------- 1 | // 2 | // BranchLinkProperties.h 3 | // Branch-TestBed 4 | // 5 | // Created by Derrick Staten on 10/16/15. 6 | // Copyright © 2015 Branch Metrics. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | 15 | @interface BranchLinkProperties : NSObject 16 | 17 | @property (nonatomic, strong) NSArray *tags; 18 | @property (nonatomic, copy) NSString *feature; 19 | @property (nonatomic, copy) NSString *alias; 20 | @property (nonatomic, copy) NSString *channel; 21 | @property (nonatomic, copy) NSString *stage; 22 | @property (nonatomic, copy) NSString *campaign; 23 | @property (nonatomic, assign) NSUInteger matchDuration; 24 | @property (nonatomic, strong) NSDictionary *controlParams; 25 | 26 | - (void)addControlParam:(NSString *)controlParam withValue:(NSString *)value; 27 | + (BranchLinkProperties *)getBranchLinkPropertiesFromDictionary:(NSDictionary *)dictionary; 28 | 29 | - (NSString *)description; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BranchPasteControl.h: -------------------------------------------------------------------------------- 1 | // 2 | // BranchPasteControl.h 3 | // Branch 4 | // 5 | // Created by Nidhi Dixit on 9/26/22. 6 | // Copyright © 2022 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #if !TARGET_OS_TV 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | API_AVAILABLE(ios(16.0), macCatalyst(16.0)) 15 | @interface BranchPasteControl : UIView 16 | 17 | - (instancetype)initWithFrame:(CGRect)frame AndConfiguration:( UIPasteControlConfiguration * _Nullable) config NS_DESIGNATED_INITIALIZER; 18 | - (instancetype)init NS_UNAVAILABLE; 19 | - (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE; 20 | - (instancetype)initWithCoder:(NSCoder *)coder NS_UNAVAILABLE; 21 | 22 | @end 23 | NS_ASSUME_NONNULL_END 24 | #endif 25 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BranchPluginSupport.h: -------------------------------------------------------------------------------- 1 | // 2 | // BranchPluginSupport.h 3 | // BranchSDK 4 | // 5 | // Created by Nipun Singh on 1/6/22. 6 | // Copyright © 2022 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface BranchPluginSupport : NSObject 14 | 15 | + (BranchPluginSupport *)instance; 16 | 17 | /** 18 | Sets a custom CDN base URL. 19 | @param url Base URL for CDN endpoints. 20 | */ 21 | + (void)setCDNBaseUrl:(NSString *)url; 22 | 23 | - (NSDictionary *)deviceDescription; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Sources/BranchSDK/Public/BranchScene.h: -------------------------------------------------------------------------------- 1 | // 2 | // BranchScene.h 3 | // Branch 4 | // 5 | // Created by Ernest Cho on 3/24/20. 6 | // Copyright © 2020 Branch, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | Provide support for UIScene. This is only supported on iOS 13.0+, iPadOS 13.0+ 16 | */ 17 | API_AVAILABLE(ios(13.0), macCatalyst(13.1)) 18 | @interface BranchScene : NSObject 19 | 20 | + (BranchScene *)shared; 21 | 22 | - (void)initSessionWithLaunchOptions:(nullable NSDictionary *)options 23 | registerDeepLinkHandler:(void (^ _Nonnull)(NSDictionary * _Nullable params, NSError * _Nullable error, UIScene * _Nullable scene))callback; 24 | 25 | - (void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity; 26 | 27 | - (void)scene:(UIScene *)scene openURLContexts:(NSSet *)URLContexts; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /Sources/Resources/BranchSDK.modulemap: -------------------------------------------------------------------------------- 1 | framework module BranchSDK { 2 | umbrella header "BranchSDK.h" 3 | export * 4 | module * { export * } 5 | } -------------------------------------------------------------------------------- /TestDeepLinking/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '9.0' 2 | 3 | target 'TestDeepLinking' do 4 | # if swift 5 | use_frameworks! 6 | 7 | pod 'Branch' 8 | end 9 | -------------------------------------------------------------------------------- /TestDeepLinking/TestDeepLinking.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TestDeepLinking/TestDeepLinking.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TestDeepLinking/TestDeepLinking.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /TestDeepLinking/TestDeepLinking.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TestDeepLinking/TestDeepLinking/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /TestDeepLinking/TestDeepLinking/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /TestDeepLinking/TestDeepLinking/TestDeepLinking.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.associated-domains 6 | 7 | mnl7s.app.link 8 | mnl7s-alternate.app.link 9 | mnl7s.test-app.link 10 | mnl7s-alternate.test-app.link 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /TestDeepLinking/TestDeepLinking/TestDeepLinking.xctestplan: -------------------------------------------------------------------------------- 1 | { 2 | "configurations" : [ 3 | { 4 | "id" : "21B9F7C4-BF2C-40DB-B313-9320AC57EB78", 5 | "name" : "Configuration 1", 6 | "options" : { 7 | 8 | } 9 | } 10 | ], 11 | "defaultOptions" : { 12 | "codeCoverage" : false, 13 | "targetForVariableExpansion" : { 14 | "containerPath" : "container:TestDeepLinking.xcodeproj", 15 | "identifier" : "033608112605E2110032A5DC", 16 | "name" : "TestDeepLinking" 17 | } 18 | }, 19 | "testTargets" : [ 20 | { 21 | "target" : { 22 | "containerPath" : "container:TestDeepLinking.xcodeproj", 23 | "identifier" : "032DAED92607430600891641", 24 | "name" : "TestDeepLinkingUITests" 25 | } 26 | }, 27 | { 28 | "target" : { 29 | "containerPath" : "container:TestDeepLinking.xcodeproj", 30 | "identifier" : "032DAEFA2607491B00891641", 31 | "name" : "TestDeepLinkingUITestsWithHostApp" 32 | } 33 | } 34 | ], 35 | "version" : 1 36 | } 37 | -------------------------------------------------------------------------------- /TestDeepLinking/TestDeepLinking/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // TestDeepLinking 4 | // 5 | // Created by Nidhi on 3/20/21. 6 | // 7 | 8 | import UIKit 9 | 10 | class ViewController: UIViewController { 11 | 12 | @IBOutlet var textView: UITextView! 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | } 16 | 17 | func addText(_ text: String) { 18 | textView.text = "" 19 | textView.insertText(text) 20 | } 21 | } 22 | 23 | -------------------------------------------------------------------------------- /TestDeepLinking/TestDeepLinkingUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /TestDeepLinking/TestDeepLinkingUITestsWithHostApp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /TestDeepLinking/TestDeepLinkingUITestsWithHostApp/TestDeepLinkingUITestsWithHostApp.m: -------------------------------------------------------------------------------- 1 | // 2 | // TestDeepLinkingUITestsWithHostApp.m 3 | // TestDeepLinkingUITestsWithHostApp 4 | // 5 | // Created by Nidhi on 3/21/21. 6 | // 7 | 8 | #import 9 | 10 | @interface TestDeepLinkingUITestsWithHostApp : XCTestCase 11 | 12 | @end 13 | 14 | @implementation TestDeepLinkingUITestsWithHostApp 15 | 16 | - (void)setUp { 17 | self.continueAfterFailure = YES; 18 | } 19 | 20 | - (void)tearDown { 21 | } 22 | 23 | - (void)test1OpenApp { 24 | XCUIApplication *app = [[XCUIApplication alloc] init]; 25 | [app launch]; 26 | 27 | sleep(3); 28 | if ([ app waitForExistenceWithTimeout:15] != NO) { 29 | NSString *deepLinkData = app.textViews[@"tvID"].value; 30 | NSLog(@"==== %@" , deepLinkData); 31 | XCTAssertTrue([deepLinkData containsString:@"https:\\/\\/mnl7s.app.link\\/CwOJ5aTaNeb"]); 32 | } else { 33 | XCTFail("Application not launched"); 34 | } 35 | } 36 | 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /TestHost/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /TestHost/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /TestHost/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UIApplicationSceneManifest 6 | 7 | UIApplicationSupportsMultipleScenes 8 | 9 | UISceneConfigurations 10 | 11 | UIWindowSceneSessionRoleApplication 12 | 13 | 14 | UISceneConfigurationName 15 | Default Configuration 16 | UISceneDelegateClassName 17 | $(PRODUCT_MODULE_NAME).SceneDelegate 18 | UISceneStoryboardFile 19 | Main 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /TestHost/NSURLSession+Branch.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSURLSession+Branch.h 3 | // BranchSearchDemo 4 | // 5 | // Created by Ernest Cho on 10/11/18. 6 | // Copyright © 2018 Branch Metrics, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface NSURLSession (Branch) 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /TestHost/TestHost-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | -------------------------------------------------------------------------------- /TestHost/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // TestHost 4 | // 5 | // Created by Ernest Cho on 7/29/22. 6 | // 7 | 8 | import UIKit 9 | 10 | class ViewController: UIViewController { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | // Do any additional setup after loading the view. 15 | } 16 | 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /TestHostUITests/TestHostUITestsLaunchTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TestHostUITestsLaunchTests.swift 3 | // TestHostUITests 4 | // 5 | // Created by Ernest Cho on 7/29/22. 6 | // 7 | 8 | import XCTest 9 | 10 | class TestHostUITestsLaunchTests: XCTestCase { 11 | 12 | override class var runsForEachTargetApplicationUIConfiguration: Bool { 13 | true 14 | } 15 | 16 | override func setUpWithError() throws { 17 | continueAfterFailure = false 18 | } 19 | 20 | func testLaunch() throws { 21 | let app = XCUIApplication() 22 | app.launch() 23 | 24 | // Insert steps here to perform after app launch but before taking a screenshot, 25 | // such as logging into a test account or navigating somewhere in the app 26 | 27 | let attachment = XCTAttachment(screenshot: app.screenshot()) 28 | attachment.name = "Launch Screen" 29 | attachment.lifetime = .keepAlways 30 | add(attachment) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /fastlane/.gitignore: -------------------------------------------------------------------------------- 1 | report.* 2 | test_output 3 | README.md 4 | .version 5 | -------------------------------------------------------------------------------- /fastlane/Appfile: -------------------------------------------------------------------------------- 1 | # app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app 2 | # apple_id("[[APPLE_ID]]") # Your Apple email address 3 | 4 | 5 | # For more information about the Appfile, see: 6 | # https://docs.fastlane.tools/advanced/#appfile 7 | -------------------------------------------------------------------------------- /fastlane/Matchfile: -------------------------------------------------------------------------------- 1 | # branch private repo for fastlane match 2 | git_url("git@github.com:BranchMetrics/ios-signing-certificates.git") 3 | 4 | storage_mode("git") 5 | 6 | type("development") # The default type, can be: appstore, adhoc, enterprise or development 7 | 8 | app_identifier(["io.branch.sdk.Branch-TestBed"]) 9 | username("sdk-team@branch.io") 10 | 11 | # For all available options run `fastlane match --help` 12 | # Remove the # in the beginning of the line to enable the other options 13 | 14 | # The docs are available on https://docs.fastlane.tools/actions/match 15 | -------------------------------------------------------------------------------- /fastlane/Pluginfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BranchMetrics/ios-branch-deep-linking-attribution/48412bf36211a15c09e8030a527e296a16b0ce0a/fastlane/Pluginfile -------------------------------------------------------------------------------- /fastlane/Scanfile: -------------------------------------------------------------------------------- 1 | project 'Branch-TestBed/Branch-TestBed.xcodeproj' 2 | device 'iPhone 12' 3 | output_types 'junit,html' 4 | code_coverage true 5 | clean true 6 | output_directory 'fastlane/test_output/' -------------------------------------------------------------------------------- /scripts/askYN.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # askYN.sh - Ask the user a yes/no question on stdout/stdin. 4 | # 5 | # Usage: askYN.sh [ "Question?" ] 6 | # 7 | # Exits with code 0 for yes, 1 for no. 8 | # 9 | # E.B. Smith - October 2013 10 | 11 | set -eu 12 | set -o pipefail 13 | 14 | question="${1:-""}" 15 | 16 | read -n 1 -r -p "${question} [y/N] " 17 | echo "" 18 | if [[ "${REPLY}" =~ ^[Yy]$ ]]; then 19 | exit 0 20 | else 21 | exit 1 22 | fi 23 | -------------------------------------------------------------------------------- /scripts/getSimulator: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | xcrun simctl list devices available >> simulator_list 4 | cat simulator_list | while read LINE; do 5 | if echo "$LINE" | grep -q "iPhone 1" 6 | then 7 | iphoneSimName=$(echo $LINE | awk '{$NF="";sub(/[ \t]+$/,"")}1') 8 | iphoneSimName=$(echo $iphoneSimName | awk '{$NF="";sub(/[ \t]+$/,"")}1') 9 | rm iphoneSim 10 | echo $iphoneSimName>>iphoneSim 11 | fi 12 | if echo "$LINE" | grep -q "Apple TV" 13 | then 14 | appleTVSimName=$(echo $LINE | awk '{$NF="";sub(/[ \t]+$/,"")}1') 15 | appleTVSimName=$(echo $appleTVSimName | awk '{$NF="";sub(/[ \t]+$/,"")}1') 16 | rm appleTVSim 17 | echo $appleTVSimName>>appleTVSim 18 | fi 19 | done 20 | 21 | rm simulator_list 22 | -------------------------------------------------------------------------------- /scripts/prep_static_xcframework.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | 4 | # checksum file 5 | scheme='static-xcframework' 6 | checksum_file=checksum_static.txt 7 | zip_file=Branch_static.zip 8 | 9 | scriptname=$(basename "${BASH_SOURCE[0]}") 10 | scriptpath="${BASH_SOURCE[0]}" 11 | scriptpath=$(cd "$(dirname "${scriptpath}")" && pwd) 12 | 13 | # Build 14 | echo "Building BranchSDK.xcframework" 15 | xcodebuild -scheme $scheme 16 | 17 | # Move to build folder 18 | cd ${scriptpath}/../build 19 | 20 | # Zip the SDK files 21 | echo "Zipping BranchSDK.xcframework and static library" 22 | zip -rqy $zip_file BranchSDK.xcframework/ 23 | 24 | # Checksum the zip file 25 | echo "Creating BranchSDK checksum" 26 | echo '#checksum for BranchSDK on Github' > "$checksum_file" 27 | shasum $zip_file >> $checksum_file 28 | 29 | # Move zip file and checksum 30 | mv $zip_file .. 31 | mv $checksum_file .. 32 | 33 | # Remove source frameworks 34 | echo "Cleaning up" 35 | rm -rf BranchSDK.xcframework 36 | -------------------------------------------------------------------------------- /scripts/prep_static_xcframework_noidfa.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | 4 | # checksum file 5 | scheme='static-xcframework-noidfa' 6 | checksum_file=checksum_static_noidfa.txt 7 | zip_file=Branch_static_noidfa.zip 8 | 9 | scriptname=$(basename "${BASH_SOURCE[0]}") 10 | scriptpath="${BASH_SOURCE[0]}" 11 | scriptpath=$(cd "$(dirname "${scriptpath}")" && pwd) 12 | 13 | # Build 14 | echo "Building BranchSDK.xcframework" 15 | xcodebuild -scheme $scheme 16 | 17 | # Move to build folder 18 | cd ${scriptpath}/../build 19 | 20 | # Zip the SDK files 21 | echo "Zipping BranchSDK.xcframework and static library" 22 | zip -rqy $zip_file BranchSDK.xcframework/ 23 | 24 | # Checksum the zip file 25 | echo "Creating BranchSDK checksum" 26 | echo '#checksum for BranchSDK on Github' > "$checksum_file" 27 | shasum $zip_file >> $checksum_file 28 | 29 | # Move zip file and checksum 30 | mv $zip_file .. 31 | mv $checksum_file .. 32 | 33 | # Remove source frameworks 34 | echo "Cleaning up" 35 | rm -rf BranchSDK.xcframework 36 | -------------------------------------------------------------------------------- /scripts/prep_xcframework.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | 4 | # checksum file 5 | scheme='xcframework' 6 | checksum_file=checksum.txt 7 | zip_file=Branch.zip 8 | 9 | scriptname=$(basename "${BASH_SOURCE[0]}") 10 | scriptpath="${BASH_SOURCE[0]}" 11 | scriptpath=$(cd "$(dirname "${scriptpath}")" && pwd) 12 | 13 | # Build 14 | echo "Building BranchSDK.xcframework" 15 | xcodebuild -scheme $scheme 16 | 17 | # Move to build folder 18 | cd ${scriptpath}/../build 19 | 20 | # Zip the SDK files 21 | echo "Zipping BranchSDK.xcframework" 22 | zip -rqy $zip_file BranchSDK.xcframework/ 23 | 24 | # Checksum the zip file 25 | echo "Creating BranchSDK checksum" 26 | echo '#checksum for BranchSDK on Github' > "$checksum_file" 27 | shasum $zip_file >> $checksum_file 28 | 29 | # Move zip file and checksum 30 | mv $zip_file .. 31 | mv $checksum_file .. 32 | 33 | # Remove source frameworks 34 | echo "Cleaning up" 35 | rm -rf BranchSDK.xcframework 36 | -------------------------------------------------------------------------------- /scripts/prep_xcframework_noidfa.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | 4 | # checksum file 5 | scheme='xcframework-noidfa' 6 | checksum_file=checksum_noidfa.txt 7 | zip_file=Branch_noidfa.zip 8 | 9 | scriptname=$(basename "${BASH_SOURCE[0]}") 10 | scriptpath="${BASH_SOURCE[0]}" 11 | scriptpath=$(cd "$(dirname "${scriptpath}")" && pwd) 12 | 13 | # Build 14 | echo "Building BranchSDK.xcframework" 15 | xcodebuild -scheme $scheme 16 | 17 | # Move to build folder 18 | cd ${scriptpath}/../build 19 | 20 | # Zip the SDK files 21 | echo "Zipping BranchSDK.xcframework" 22 | zip -rqy $zip_file BranchSDK.xcframework/ 23 | 24 | # Checksum the zip file 25 | echo "Creating BranchSDK checksum" 26 | echo '#checksum for BranchSDK on Github' > "$checksum_file" 27 | shasum $zip_file >> $checksum_file 28 | 29 | # Move zip file and checksum 30 | mv $zip_file .. 31 | mv $checksum_file .. 32 | 33 | # Remove source frameworks 34 | echo "Cleaning up" 35 | rm -rf BranchSDK.xcframework 36 | --------------------------------------------------------------------------------