├── .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 |
--------------------------------------------------------------------------------