├── fastlane
├── Pluginfile
├── .gitignore
├── Scanfile
├── Appfile
└── Matchfile
├── DeepLinkDemo
├── README.md
├── DeepLinkDemo
│ ├── img.png
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── qentelli_logo.imageset
│ │ │ ├── img.png
│ │ │ └── Contents.json
│ │ ├── back_img.imageset
│ │ │ ├── icons8-left-100.png
│ │ │ └── Contents.json
│ │ └── AccentColor.colorset
│ │ │ └── Contents.json
│ ├── SIAlertView
│ │ ├── SIAlertView.bundle
│ │ │ ├── button-cancel.png
│ │ │ ├── button-default.png
│ │ │ ├── button-cancel-d.png
│ │ │ ├── button-cancel@2x.png
│ │ │ ├── button-default-d.png
│ │ │ ├── button-cancel-d@2x.png
│ │ │ ├── button-default-d@2x.png
│ │ │ ├── button-default@2x.png
│ │ │ ├── button-destructive.png
│ │ │ ├── button-destructive-d.png
│ │ │ ├── button-destructive@2x.png
│ │ │ └── button-destructive-d@2x.png
│ │ └── UIWindow+SIUtils.h
│ ├── Header.h
│ ├── Controllers
│ │ ├── ShareDynamicallyVC.swift
│ │ ├── ViewController.swift
│ │ ├── ReadLogViewController.swift
│ │ └── ParentViewController.swift
│ ├── DeepLinkDemo-Bridging-Header.h
│ ├── NSURLSessionBranch.h
│ ├── DeepLinkDemo.entitlements
│ ├── Reachability
│ │ └── Reachability.h
│ └── Constants
│ │ └── CommonAlert.swift
├── DeepLinkDemo.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── DeepLinkDemo.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Podfile
├── Podfile.lock
└── IPA
│ └── Info.plist
├── Branch-TestBed
├── README.md
├── cannedData
│ ├── latd_missing_data.json
│ ├── latd_empty_data.json
│ ├── latd_missing_window.json
│ ├── latd.json
│ └── example.json
├── Branch-TestBed
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ ├── Branch@1024.png
│ │ │ ├── icon100x100.png
│ │ │ ├── icon114x114.png
│ │ │ ├── icon120x120.png
│ │ │ ├── icon144x144.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
│ │ │ ├── icon120x120-1.png
│ │ │ └── icon152x152-1.png
│ │ └── Brand Assets.launchimage
│ │ │ ├── launchimage1024x768.png
│ │ │ ├── launchimage1536x2048.png
│ │ │ ├── launchimage2048x1536.png
│ │ │ ├── launchimage640x1136.png
│ │ │ ├── launchimage640x960.png
│ │ │ └── launchimage768x1024.png
│ ├── StoreKitTestCertificate.cer
│ ├── ViewController.h
│ ├── NavigationController.h
│ ├── LogOutputViewController.h
│ ├── main.m
│ ├── Branch-TestBed-Prefix.pch
│ ├── PasteControlViewController.h
│ ├── AppDelegate.h
│ ├── Branch-TestBed.entitlements
│ └── ArrayPickerView.h
├── Branch-SDK-Tests
│ ├── Branch-SDK-Tests-Bridging-Header.h
│ ├── BNCJsonLoader.h
│ ├── Info.plist
│ ├── BNCJsonLoader.m
│ ├── BNCReachabilityTests.m
│ └── BranchShareLinkTests.m
├── module.modulemap
├── Branch-TestBed.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── swiftpm
│ │ └── Package.resolved
├── Reflection_ODM_Tests.xctestplan
├── Branch-TestBed-UITests
│ ├── Info.plist
│ └── UITestCaseTestBed.h
├── Branch-TestBed-CI.xctestplan
└── Branch-SDK-Unhosted-Tests
│ └── Info.plist
├── TestHost
├── Assets.xcassets
│ ├── Contents.json
│ └── AccentColor.colorset
│ │ └── Contents.json
├── TestHost-Bridging-Header.h
├── NSURLSession+Branch.h
├── ViewController.swift
└── Info.plist
├── Framework
└── module.modulemap
├── TestDeepLinking
├── TestDeepLinking
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ └── AccentColor.colorset
│ │ │ └── Contents.json
│ ├── ViewController.swift
│ ├── TestDeepLinking.entitlements
│ └── TestDeepLinking.xctestplan
├── Podfile
├── TestDeepLinking.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── TestDeepLinking.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── TestDeepLinkingUITests
│ └── Info.plist
└── TestDeepLinkingUITestsWithHostApp
│ ├── Info.plist
│ └── TestDeepLinkingUITestsWithHostApp.m
├── SDKIntegrationTestApps
├── PostRelease-iOSReleaseTest-Carthage
│ ├── cartfile
│ ├── iOSReleaseTest
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ └── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ ├── ViewController.swift
│ │ └── iOSReleaseTest.entitlements
│ └── iOSReleaseTest.xcodeproj
│ │ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── iOSReleaseTest-SPM
│ ├── iOSReleaseTest
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ └── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ ├── ViewController.swift
│ │ ├── iOSReleaseTest.entitlements
│ │ └── BranchSDKTest.swift
│ ├── iOSReleaseTest.xcodeproj
│ │ └── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── iOSReleaseTestTests
│ │ └── iOSReleaseTestTests.swift
├── iOSReleaseTest-Carthage
│ ├── iOSReleaseTest
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ └── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ ├── ViewController.swift
│ │ └── iOSReleaseTest.entitlements
│ └── iOSReleaseTest.xcodeproj
│ │ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── iOSReleaseTest-Manual
│ ├── iOSReleaseTest
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ └── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ ├── ViewController.swift
│ │ ├── iOSReleaseTest.entitlements
│ │ └── BranchSDKTest.swift
│ ├── iOSReleaseTest.xcodeproj
│ │ └── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── iOSReleaseTestTests
│ │ └── iOSReleaseTestTests.swift
├── tvOSReleaseTest-Manual
│ ├── tvOSReleaseTest
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ ├── App Icon & Top Shelf Image.brandassets
│ │ │ │ ├── App Icon.imagestack
│ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Middle.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── App Icon - App Store.imagestack
│ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Middle.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Top Shelf Image.imageset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Top Shelf Image Wide.imageset
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ └── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ ├── ViewController.swift
│ │ └── BranchSDKTest.swift
│ ├── tvOSReleaseTest.xcodeproj
│ │ └── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── tvOSReleaseTestTests
│ │ └── tvOSReleaseTestTests.swift
├── iOSReleaseTest-Cocoapods
│ ├── iOSReleaseTest
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ └── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ ├── ViewController.swift
│ │ └── iOSReleaseTest.entitlements
│ ├── iOSReleaseTest.xcodeproj
│ │ └── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ ├── iOSReleaseTest.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ ├── Podfile.lock
│ ├── Podfile
│ └── iOSReleaseTestTests
│ │ └── iOSReleaseTestTests.swift
├── iOSReleaseTest-Manual-Static
│ ├── iOSReleaseTest
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ └── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ ├── ViewController.swift
│ │ ├── iOSReleaseTest.entitlements
│ │ └── BranchSDKTest.swift
│ ├── iOSReleaseTest.xcodeproj
│ │ └── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── iOSReleaseTestTests
│ │ └── iOSReleaseTestTests.swift
├── tvOSReleaseTest-Carthage
│ ├── tvOSReleaseTest
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ ├── App Icon & Top Shelf Image.brandassets
│ │ │ │ ├── App Icon.imagestack
│ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Middle.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── App Icon - App Store.imagestack
│ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Middle.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Top Shelf Image.imageset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Top Shelf Image Wide.imageset
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ └── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ └── ViewController.swift
│ └── tvOSReleaseTest.xcodeproj
│ │ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── tvOSReleaseTest-Cocoapods
│ ├── tvOSReleaseTest
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ ├── App Icon & Top Shelf Image.brandassets
│ │ │ │ ├── App Icon.imagestack
│ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Middle.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── App Icon - App Store.imagestack
│ │ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── Middle.imagestacklayer
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Top Shelf Image.imageset
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Top Shelf Image Wide.imageset
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ └── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ └── ViewController.swift
│ ├── tvOSReleaseTest.xcodeproj
│ │ └── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ ├── tvOSReleaseTest.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ ├── Podfile.lock
│ └── Podfile
├── PostRelease-iOSReleaseTest-SPM
│ ├── iOSReleaseTest
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ └── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ ├── ViewController.swift
│ │ ├── iOSReleaseTest.entitlements
│ │ └── BranchSDKTest.swift
│ ├── iOSReleaseTest.xcodeproj
│ │ └── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── swiftpm
│ │ │ └── Package.resolved
│ └── iOSReleaseTestTests
│ │ └── iOSReleaseTestTests.swift
├── PostRelease-iOSReleaseTest-Cocoapods
│ ├── iOSReleaseTest
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ └── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ ├── ViewController.swift
│ │ └── iOSReleaseTest.entitlements
│ ├── iOSReleaseTest.xcodeproj
│ │ └── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ ├── iOSReleaseTest.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── Podfile
│ └── iOSReleaseTestTests
│ │ └── iOSReleaseTestTests.swift
└── PostRelease-tvOSReleaseTest-Cocoapods
│ ├── tvOSReleaseTest
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── App Icon & Top Shelf Image.brandassets
│ │ │ ├── App Icon.imagestack
│ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ ├── Middle.imagestacklayer
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ ├── App Icon - App Store.imagestack
│ │ │ │ ├── Back.imagestacklayer
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ ├── Front.imagestacklayer
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ ├── Middle.imagestacklayer
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ └── Content.imageset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ └── Contents.json
│ │ │ ├── Top Shelf Image.imageset
│ │ │ │ └── Contents.json
│ │ │ ├── Top Shelf Image Wide.imageset
│ │ │ │ └── Contents.json
│ │ │ └── Contents.json
│ │ └── AccentColor.colorset
│ │ │ └── Contents.json
│ └── ViewController.swift
│ ├── tvOSReleaseTest.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ ├── tvOSReleaseTest.xcworkspace
│ └── contents.xcworkspacedata
│ ├── Podfile.lock
│ └── Podfile
├── Sources
├── Resources
│ └── BranchSDK.modulemap
└── BranchSDK
│ ├── BNCInitSessionResponse.m
│ ├── BNCDeepLinkViewControllerInstance.m
│ ├── Private
│ ├── BranchInstallRequest.h
│ ├── BranchSpotlightUrlRequest.h
│ ├── BranchLATDRequest.h
│ ├── Branch+Validator.h
│ ├── BNCReachability.h
│ ├── BNCDeepLinkViewControllerInstance.h
│ ├── BNCNetworkInterface.h
│ ├── BNCQRCodeCache.h
│ ├── BranchFileLogger.h
│ ├── BranchContentDiscoverer.h
│ ├── UIViewController+Branch.h
│ ├── BNCReferringURLUtility.h
│ ├── BranchContentPathProperties.h
│ ├── BNCCallbackMap.h
│ ├── BNCConfig.h
│ ├── BranchShortUrlRequest.h
│ ├── BNCUrlQueryParameter.h
│ ├── BNCPasteboard.h
│ ├── BNCUserAgentCollector.h
│ ├── BNCEventUtils.h
│ ├── BNCCrashlyticsWrapper.h
│ ├── NSString+Branch.h
│ ├── BNCInAppBrowser.h
│ ├── BNCDeviceSystem.h
│ ├── BranchConfigurationController.h
│ ├── BNCAppGroupsData.h
│ ├── BNCPartnerParameters.h
│ ├── BranchContentDiscoveryManifest.h
│ ├── BranchOpenRequest.h
│ ├── BNCSystemObserver.h
│ ├── BNCJSONUtility.h
│ └── BNCServerAPI.h
│ ├── Public
│ ├── BNCLinkCache.h
│ ├── BranchPluginSupport.h
│ ├── BNCServerResponse.h
│ ├── BranchPasteControl.h
│ ├── BNCInitSessionResponse.h
│ ├── BNCServerRequest.h
│ ├── BNCServerRequestQueue.h
│ ├── BranchLastAttributedTouchData.h
│ ├── BranchScene.h
│ ├── BranchLinkProperties.h
│ ├── BNCLinkData.h
│ ├── BranchDeepLinkingController.h
│ └── BranchCSSearchableItemAttributeSet.h
│ ├── BNCServerResponse.m
│ ├── BNCConfig.m
│ ├── BranchDelegate.m
│ ├── BNCEventUtils.m
│ ├── BNCLinkCache.m
│ ├── NSString+Branch.m
│ ├── BranchContentPathProperties.m
│ ├── BranchInstallRequest.m
│ └── BNCPasteboard.m
├── BranchSDK.xcodeproj
└── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ └── IDEWorkspaceChecks.plist
├── SECURITY.md
├── Gemfile
├── scripts
├── askYN.sh
├── getSimulator
├── prep_static_xcframework.sh
└── prep_static_xcframework_noidfa.sh
├── .github
├── ISSUE_TEMPLATE
│ ├── feature-request.yml
│ └── config.yml
├── workflows
│ └── stale.yml
└── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── TestHostUITests
└── TestHostUITestsLaunchTests.swift
├── README.md
├── LICENSE.txt
└── Package.swift
/fastlane/Pluginfile:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/DeepLinkDemo/README.md:
--------------------------------------------------------------------------------
1 | # Branch SaaS SDK IOS TestApp
2 |
3 |
--------------------------------------------------------------------------------
/fastlane/.gitignore:
--------------------------------------------------------------------------------
1 | report.*
2 | test_output
3 | README.md
4 | .version
5 |
--------------------------------------------------------------------------------
/Branch-TestBed/README.md:
--------------------------------------------------------------------------------
1 | Legacy Branch TestBed - used to run older unit tests
2 |
3 |
--------------------------------------------------------------------------------
/Branch-TestBed/cannedData/latd_missing_data.json:
--------------------------------------------------------------------------------
1 | {
2 | "attribution_window": 30
3 | }
4 |
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-TestBed/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/TestHost/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Branch-TestBed/cannedData/latd_empty_data.json:
--------------------------------------------------------------------------------
1 | {
2 | "last_attributed_touch_data": { },
3 | "attribution_window": 30
4 | }
5 |
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/img.png
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-TestBed/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Framework/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module BranchSDK {
2 | umbrella header "BranchSDK.h"
3 | export *
4 | module * { export * }
5 | }
--------------------------------------------------------------------------------
/TestDeepLinking/TestDeepLinking/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Carthage/cartfile:
--------------------------------------------------------------------------------
1 | git "https://github.com/BranchMetrics/ios-branch-deep-linking-attribution.git"
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/cannedData/latd_missing_window.json:
--------------------------------------------------------------------------------
1 | {
2 | "last_attributed_touch_data": {
3 | "$3p": "hello",
4 | "~campaign": "world"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-SPM/iOSReleaseTest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Branch-TestBed/cannedData/latd.json:
--------------------------------------------------------------------------------
1 | {
2 | "last_attributed_touch_data": {
3 | "$3p": "hello",
4 | "~campaign": "world"
5 | },
6 | "attribution_window": 30
7 | }
8 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-Carthage/iOSReleaseTest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-Manual/iOSReleaseTest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-TestBed/StoreKitTestCertificate.cer:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/Branch-TestBed/Branch-TestBed/StoreKitTestCertificate.cer
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/iOSReleaseTest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-Manual-Static/iOSReleaseTest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-iOSReleaseTest-SPM/iOSReleaseTest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Carthage/iOSReleaseTest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/iOSReleaseTest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
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 |
--------------------------------------------------------------------------------
/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/'
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/Assets.xcassets/qentelli_logo.imageset/img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/Assets.xcassets/qentelli_logo.imageset/img.png
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel.png
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default.png
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel-d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel-d.png
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/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-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default-d.png
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/Branch@1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon114x114.png
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/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-sdk-spm/HEAD/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon144x144.png
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon167x167.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon87x87.png
--------------------------------------------------------------------------------
/BranchSDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/Assets.xcassets/back_img.imageset/icons8-left-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/Assets.xcassets/back_img.imageset/icons8-left-100.png
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel-d@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-cancel-d@2x.png
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default-d@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default-d@2x.png
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-default@2x.png
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive.png
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon120x120-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon120x120-1.png
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon152x152-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/Branch-TestBed/Branch-TestBed/Assets.xcassets/AppIcon.appiconset/icon152x152-1.png
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive-d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive-d.png
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive@2x.png
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive-d@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/DeepLinkDemo/DeepLinkDemo/SIAlertView/SIAlertView.bundle/button-destructive-d@2x.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-TestBed.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/TestDeepLinking/TestDeepLinking.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage1024x768.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BranchMetrics/ios-branch-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/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-sdk-spm/HEAD/Branch-TestBed/Branch-TestBed/Assets.xcassets/Brand Assets.launchimage/launchimage768x1024.png
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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-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/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/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/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/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/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/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/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/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/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/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-Manual/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-SPM/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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-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/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-Carthage/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-iOSReleaseTest-SPM/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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/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/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-Manual-Static/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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/PostRelease-iOSReleaseTest-Carthage/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/iOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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-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-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/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-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/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-tvOSReleaseTest-Cocoapods/tvOSReleaseTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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-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-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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/BranchSDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo.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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-TestBed.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/TestDeepLinking/TestDeepLinking.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/iOSReleaseTest.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-Manual/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-SPM/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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-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/iOSReleaseTest-Carthage/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/tvOSReleaseTest-Carthage/tvOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/tvOSReleaseTest-Cocoapods/tvOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/tvOSReleaseTest-Manual/tvOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-iOSReleaseTest-SPM/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-Manual-Static/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Carthage/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/iOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/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/PostRelease-tvOSReleaseTest-Cocoapods/tvOSReleaseTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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/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/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/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/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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-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/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-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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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-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/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-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-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/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/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.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/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/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/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/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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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.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 |
--------------------------------------------------------------------------------
/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-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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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/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-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-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-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-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/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/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/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/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/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/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/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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-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/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/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/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/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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.13.3";
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/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | "skippedTests" : [
18 | "Reflection_ODM_Tests",
19 | "Reflection_ODM_Tests\/testODMAPICall",
20 | "Reflection_ODM_Tests\/testODMAPIsLoaded"
21 | ],
22 | "target" : {
23 | "containerPath" : "container:Branch-TestBed.xcodeproj",
24 | "identifier" : "E7AC745F2DB064BC002D8C40",
25 | "name" : "Reflection_ODM_Tests"
26 | }
27 | }
28 | ],
29 | "version" : 1
30 | }
31 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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-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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | "enabled" : false,
17 | "target" : {
18 | "containerPath" : "container:Branch-TestBed.xcodeproj",
19 | "identifier" : "E7AC745F2DB064BC002D8C40",
20 | "name" : "Reflection_ODM_Tests"
21 | }
22 | },
23 | {
24 | "target" : {
25 | "containerPath" : "container:Branch-TestBed.xcodeproj",
26 | "identifier" : "7E6B3B501AA42D0E005F45BF",
27 | "name" : "Branch-SDK-Tests"
28 | }
29 | }
30 | ],
31 | "version" : 1
32 | }
33 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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-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-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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Sources/BranchSDK/Private/BranchConfigurationController.h:
--------------------------------------------------------------------------------
1 | //
2 | // BranchConfigurationController.h
3 | // BranchSDK
4 | //
5 | // Created by Nidhi Dixit on 6/2/25.
6 | //
7 |
8 | #import
9 |
10 | NS_ASSUME_NONNULL_BEGIN
11 |
12 | /**
13 | * The BranchConfigurationController class contains SDK configuration information.
14 | * .This information is sent to backend as `operational_metrics` with v1/install request.
15 | */
16 |
17 | @interface BranchConfigurationController : NSObject
18 |
19 | @property (nonatomic, copy) NSString *branchKeySource;
20 | @property (assign, nonatomic) BOOL deferInitForPluginRuntime;
21 | @property (assign, nonatomic) BOOL checkPasteboardOnInstall;
22 |
23 | + (instancetype)sharedInstance;
24 |
25 | /**
26 | * Retrieves the current SDK configuration as a dictionary.
27 | *
28 | * @return An `NSDictionary` containing the current configuration values.
29 | */
30 | - (NSDictionary *) getConfiguration;
31 |
32 | @end
33 |
34 | NS_ASSUME_NONNULL_END
35 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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/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/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/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 | @property (nonatomic, copy) callbackForTracingRequests traceCallback;
19 | @property (strong, nonatomic) NSDictionary *requestParams;
20 | @property (nonatomic, copy, readwrite) NSString *requestServiceURL;
21 |
22 | + (void) waitForOpenResponseLock;
23 | + (void) releaseOpenResponseLock;
24 | + (void) setWaitNeededForOpenResponseLock;
25 |
26 | - (id)initWithCallback:(callbackWithStatus)callback;
27 | - (id)initWithCallback:(callbackWithStatus)callback isInstall:(BOOL)isInstall;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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)
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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.
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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/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 |
--------------------------------------------------------------------------------
/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 | self.requestParams = [params copy];
26 | self.requestServiceURL = [[BNCServerAPI sharedInstance] installServiceURL];
27 |
28 | [serverInterface postRequest:params url:self.requestServiceURL key:key callback:callback];
29 | }
30 |
31 | - (NSString *)getActionName {
32 | return @"install";
33 | }
34 |
35 | @end
36 |
--------------------------------------------------------------------------------
/.github/workflows/stale.yml:
--------------------------------------------------------------------------------
1 | # This workflow warns and then closes issues 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@v5
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 |
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/Controllers/ReadLogViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ReadLogViewController.swift
3 | // DeepLinkDemo
4 | //
5 | // Created by Apple on 17/05/22.
6 | //
7 |
8 | import UIKit
9 |
10 | class ReadLogViewController: ParentViewController {
11 |
12 | @IBOutlet weak var textViewDescription: UITextView!
13 |
14 | var selectedFileName = ""
15 |
16 | override func viewDidLoad() {
17 | super.viewDidLoad()
18 |
19 | self.textViewDescription.text = loadTextWithFileName(selectedFileName)
20 | reachabilityCheck()
21 | }
22 |
23 |
24 | @IBAction func backAction(_ sender: Any) {
25 | self.navigationController?.popToRootViewController(animated: true)
26 | }
27 |
28 | private func loadTextWithFileName(_ fileName: String) -> String? {
29 | if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
30 | let fileURL = dir.appendingPathComponent(fileName)
31 | guard let text = try? String(contentsOf: fileURL, encoding: .utf8) else {
32 | return nil
33 | }
34 | return text
35 | }
36 | return nil
37 | }
38 |
39 | }
40 |
41 |
42 |
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-SDK-Tests/BNCReachabilityTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // BNCReachabilityTests.m
3 | // Branch-SDK-Tests
4 | //
5 | // Created by Ernest Cho on 11/18/19.
6 | // Copyright © 2019 Branch, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "BNCReachability.h"
11 |
12 | @interface BNCReachabilityTests : XCTestCase
13 | @property (nonatomic, strong, readwrite) BNCReachability *reachability;
14 | @end
15 |
16 | @implementation BNCReachabilityTests
17 |
18 | - (void)setUp {
19 | self.reachability = [BNCReachability new];
20 | }
21 |
22 | - (void)tearDown {
23 |
24 | }
25 |
26 | - (void)testSimulator_WIFI {
27 | NSString *status = [self.reachability reachabilityStatus];
28 | XCTAssertNotNil(status);
29 | XCTAssert([@"wifi" isEqualToString:status]);
30 | }
31 |
32 | // Only works on a device with cell
33 | //- (void)testDevice_Cell {
34 | // NSString *status = [self.reachability reachabilityStatus];
35 | // XCTAssertNotNil(status);
36 | // XCTAssert([@"mobile" isEqualToString:status]);
37 | //}
38 |
39 | // Only works on a device in Airplane mode
40 | //- (void)testDevice_AirplaneMode {
41 | // NSString *status = [self.reachability reachabilityStatus];
42 | // XCTAssertNil(status);
43 | //}
44 |
45 | @end
46 |
--------------------------------------------------------------------------------
/Sources/BranchSDK/Private/BNCServerAPI.h:
--------------------------------------------------------------------------------
1 | //
2 | // BNCServerAPI.h
3 | // BranchSDK
4 | //
5 | // Created by Nidhi Dixit on 8/29/23.
6 | //
7 |
8 | #if __has_feature(modules)
9 | @import Foundation;
10 | #else
11 | #import
12 | #endif
13 |
14 | NS_ASSUME_NONNULL_BEGIN
15 |
16 | @interface BNCServerAPI : NSObject
17 |
18 | + (BNCServerAPI *)sharedInstance;
19 |
20 | - (NSString *)installServiceURL;
21 | - (NSString *)openServiceURL;
22 | - (NSString *)standardEventServiceURL;
23 | - (NSString *)customEventServiceURL;
24 | - (NSString *)linkServiceURL;
25 | - (NSString *)qrcodeServiceURL;
26 | - (NSString *)latdServiceURL;
27 | - (NSString *)validationServiceURL;
28 |
29 | @property (nonatomic, assign, readwrite) BOOL useTrackingDomain;
30 | @property (nonatomic, assign, readwrite) BOOL useEUServers;
31 |
32 | // Enable tracking domains based on IDFA authorization. YES by default
33 | // Used to enable unit tests without regard for ATT authorization status
34 | @property (nonatomic, assign, readwrite) BOOL automaticallyEnableTrackingDomain;
35 |
36 | @property (nonatomic, copy, readwrite, nullable) NSString *customAPIURL;
37 | @property (nonatomic, copy, readwrite, nullable) NSString *customSafeTrackAPIURL;
38 |
39 | @end
40 |
41 | NS_ASSUME_NONNULL_END
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ## Reference
2 | SDK-XXXX -- .
3 |
4 | ## Summary
5 |
6 |
7 | ## Motivation
8 |
9 |
10 | ## Type Of Change
11 |
12 | - [ ] Bug fix (non-breaking change which fixes an issue)
13 | - [ ] New feature (non-breaking change which adds functionality)
14 | - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
15 | - [ ] This change requires a documentation update
16 |
17 | ## Testing Instructions
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | cc @BranchMetrics/saas-sdk-devs for visibility.
30 |
--------------------------------------------------------------------------------
/Branch-TestBed/Branch-SDK-Tests/BranchShareLinkTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // BranchShareLinkTests.m
3 | // Branch-SDK-Tests
4 | //
5 | // Created by Nipun Singh on 5/5/22.
6 | // Copyright © 2022 Branch, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "BranchShareLink.h"
11 | #import "BranchLinkProperties.h"
12 | #import "Branch.h"
13 |
14 | @interface BranchShareLinkTests : XCTestCase
15 |
16 | @end
17 |
18 | @implementation BranchShareLinkTests
19 |
20 | - (void)testAddLPLinkMetadata {
21 | BranchUniversalObject *buo = [[BranchUniversalObject alloc] initWithCanonicalIdentifier:@"test/001"];
22 | BranchLinkProperties *lp = [[BranchLinkProperties alloc] init];
23 |
24 | BranchShareLink *bsl = [[BranchShareLink alloc] initWithUniversalObject:buo linkProperties:lp];
25 |
26 | if (@available(iOS 13.0, macCatalyst 13.1, *)) {
27 | NSURL *imageURL = [NSURL URLWithString:@"https://cdn.branch.io/branch-assets/1598575682753-og_image.png"];
28 | NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
29 | UIImage *iconImage = [UIImage imageWithData:imageData];
30 |
31 | [bsl addLPLinkMetadata:@"Test Preview Title" icon:iconImage];
32 | XCTAssertNotNil([bsl lpMetaData]);
33 | } else {
34 | XCTAssertTrue(true);
35 | }
36 | }
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/Sources/BranchSDK/BNCPasteboard.m:
--------------------------------------------------------------------------------
1 | //
2 | // BNCPasteboard.m
3 | // Branch
4 | //
5 | // Created by Ernest Cho on 6/24/21.
6 | // Copyright © 2021 Branch, Inc. All rights reserved.
7 | //
8 |
9 | #import "BNCPasteboard.h"
10 | #import
11 | #import "Branch.h"
12 |
13 | @implementation BNCPasteboard
14 |
15 | + (BNCPasteboard *)sharedInstance {
16 | static BNCPasteboard *pasteboard = nil;
17 | static dispatch_once_t onceToken = 0;
18 | dispatch_once(&onceToken, ^{
19 | pasteboard = [BNCPasteboard new];
20 | });
21 | return pasteboard;
22 | }
23 |
24 | - (instancetype)init {
25 | self = [super init];
26 | if (self) {
27 | self.checkOnInstall = NO;
28 | }
29 | return self;
30 | }
31 |
32 | - (BOOL)isUrlOnPasteboard {
33 | #if !TARGET_OS_TV
34 | if ([UIPasteboard.generalPasteboard hasURLs]) {
35 | return YES;
36 | }
37 | #endif
38 | return NO;
39 | }
40 |
41 | - (nullable NSURL *)checkForBranchLink {
42 | if ([self isUrlOnPasteboard]) {
43 | #if !TARGET_OS_TV
44 | // triggers the end user toast message
45 | NSURL *tmp = UIPasteboard.generalPasteboard.URL;
46 | if ([Branch isBranchLink:tmp.absoluteString]) {
47 | return tmp;
48 | }
49 | #endif
50 | }
51 | return nil;
52 | }
53 |
54 | @end
55 |
--------------------------------------------------------------------------------
/DeepLinkDemo/DeepLinkDemo/Controllers/ParentViewController.swift:
--------------------------------------------------------------------------------
1 | // ParentViewController.swift
2 | // DeepLinkDemo
3 | // Created by Apple on 17/05/22.
4 |
5 | import UIKit
6 | class ParentViewController: UIViewController {
7 | private var reachability:Reachability?
8 |
9 | override func viewDidLoad() {
10 | super.viewDidLoad()
11 | reachabilityCheck()
12 | }
13 |
14 | override var preferredStatusBarStyle: UIStatusBarStyle {
15 | return .lightContent
16 | }
17 |
18 |
19 | func reachabilityCheck() {
20 | reachability = Reachability()!
21 | reachability!.whenReachable = { reachability in
22 | }
23 | reachability?.whenUnreachable = { reachability in
24 | DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
25 | self.networkError()
26 | }
27 | }
28 | do {
29 | try reachability?.startNotifier()
30 | } catch {
31 | NSLog("Unable to start notifier")
32 | }
33 | }
34 |
35 | func networkError() {
36 | CommonAlert.shared.showActionAlertView(title: "Failure", message: "Your internet/network connection appears to be offline. Please check your internet/network connection.", actions: [], preferredStyle: .alert, viewController: self)
37 | }
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/iOSReleaseTest-Cocoapods/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 | import BranchSDK
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 | Branch.getInstance().enableLogging()
23 | Branch.getInstance().initSession(launchOptions: nil) { (params, error) in
24 | print(params as? [String: AnyObject] ?? {})
25 | }
26 | Branch.setTrackingDisabled(true)
27 | let x = Branch.trackingDisabled()
28 | assert( x == true)
29 | Branch.setTrackingDisabled(false)
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 |
--------------------------------------------------------------------------------
/Sources/BranchSDK/Public/BranchCSSearchableItemAttributeSet.h:
--------------------------------------------------------------------------------
1 | //
2 | // BranchCSSearchableItemAttributeSet.h
3 | // Branch-TestBed
4 | //
5 | // Created by Derrick Staten on 9/8/15.
6 | // Copyright © 2015 Branch Metrics. All rights reserved.
7 | //
8 | #if !TARGET_OS_TV
9 |
10 | #if __has_feature(modules)
11 | @import Foundation;
12 | #else
13 | #import
14 | #endif
15 |
16 | #if __has_feature(modules)
17 | @import CoreSpotlight;
18 | @import MobileCoreServices;
19 | #else
20 | #import
21 | #import
22 | #endif
23 |
24 | NS_ASSUME_NONNULL_BEGIN
25 |
26 | @interface BranchCSSearchableItemAttributeSet : CSSearchableItemAttributeSet
27 |
28 | - (instancetype)init;
29 |
30 | - (instancetype)initWithContentType:(UTType *)contentType API_AVAILABLE(ios(14), macCatalyst(14));
31 |
32 | - (instancetype)initWithItemContentType:(NSString *)type;
33 |
34 | - (void)indexWithCallback:(void (^) (NSString * _Nullable url, NSString * _Nullable spotlightIdentifier, NSError * _Nullable error))callback;
35 |
36 | @property (nonatomic, strong, nullable) NSDictionary *params;
37 | @property (nonatomic, strong, nullable) NSSet *keywords;
38 | @property (nonatomic, assign) BOOL publiclyIndexable; //!< Defaults to YES
39 |
40 | @end
41 |
42 | NS_ASSUME_NONNULL_END
43 | #endif
44 |
--------------------------------------------------------------------------------
/Package.swift:
--------------------------------------------------------------------------------
1 | // swift-tools-version:5.3
2 | // The swift-tools-version declares the minimum version of Swift required to build this package.
3 | import PackageDescription
4 |
5 | let package = Package(
6 | name: "BranchSDK",
7 | platforms: [
8 | .iOS(.v12),
9 | .tvOS(.v12),
10 | ],
11 | products: [
12 | .library(
13 | name: "BranchSDK",
14 | targets: ["BranchSDK"]),
15 | ],
16 | dependencies: [
17 | ],
18 | targets: [
19 | .target(
20 | name: "BranchSDK",
21 | path: "Sources",
22 | sources: [
23 | "BranchSDK/"
24 | ],
25 | resources: [
26 | .copy("Resources/PrivacyInfo.xcprivacy"),
27 | ],
28 | publicHeadersPath: "BranchSDK/Public/",
29 | cSettings: [
30 | .headerSearchPath("BranchSDK/Private"),
31 | ],
32 | linkerSettings: [
33 | .linkedFramework("CoreServices"),
34 | .linkedFramework("SystemConfiguration"),
35 | .linkedFramework("WebKit", .when(platforms: [.iOS])),
36 | .linkedFramework("CoreSpotlight", .when(platforms: [.iOS])),
37 | .linkedFramework("AdServices", .when(platforms: [.iOS]))
38 | ]
39 | ),
40 | ]
41 | )
42 |
--------------------------------------------------------------------------------
/SDKIntegrationTestApps/PostRelease-iOSReleaseTest-Cocoapods/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 | import BranchSDK
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 | Branch.getInstance().enableLogging()
23 | Branch.getInstance().initSession(launchOptions: nil) { (params, error) in
24 | print(params as? [String: AnyObject] ?? {})
25 | }
26 | Branch.setTrackingDisabled(true)
27 | let x = Branch.trackingDisabled()
28 | assert( x == true)
29 | Branch.setTrackingDisabled(false)
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 |
--------------------------------------------------------------------------------