LO - iOS SDK
V 3.0.1 (released 25-06-2026)
Support
- The LANDMARKS ID SDK supports iOS 15.6 and above.
Setup Instructions
Using CocoaPods
- If you previously included the SDK manually please delete both
LandmarksIDSDK.frameworkfrom the project. - Include the LandmarksID pod in the Podfile.
pod 'LANDMARKSID-LO-SDK', :git => 'https://github.com/LANDMARKSID/ios-lo-sdk.git', :tag => '3.0.1'
- Run
pod install.
An example application is available in the Examples folder of the GitHub repository.
Local Installation (Manual Download)
- Go to the GitHub releases page and download the latest
LandmarksIDSDK.xcframework.zipfile. - Extract the zip file to get
LandmarksIDSDK.xcframework. - In Xcode, open your project and navigate to your app target.
- Go to Project Navigator → Select your project → Select your target → General tab.
- Under Frameworks, Libraries, and Embedded Content, click the + button.
- Click Add Other... → Add Files... and select the extracted
LandmarksIDSDK.xcframework. - Ensure the framework is set to "Embed & Sign".
Swift Package Manager (SPM)
Option 1: Using Xcode Package Manager
- In Xcode, open your project and go to File → Add Package Dependencies.
- Enter the following repository URL:
https://github.com/LANDMARKSID/ios-lo-sdk.git - Select the latest version available (3.0.1).
- Click Add Package and wait for Xcode to resolve the dependency.
- Select LandmarksIDiOS from the list and click Add Package.
iOS Configuration Information
Required background updates description
Set the appropriate usage description in the application's info.plist when using Location services:
- Locate the app's
info.plistfile in the Supporting Files folder of the Xcode project. - For location permission request and description:
- Add
Privacy - Location When In Use Usage Descriptionwith an appropriate description.
Edit the AppDelegate
Import the LandmarksID SDK into
AppDelegate.swift:import LandmarksIDSDKAdd
landmarksIdManageras a property in theAppDelegate:var landmarksIdManager: LandmarksIDManagerDelegate?Add the following snippets to the app delegate functions.
application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool:let appId = "APP_ID" let appSecret = "APP_SECRET" self.landmarksIdManager = LandmarksIDManagerDelegate.initialize(appId, appSecret: appSecret) landmarksIdManager?.setup()applicationDidBecomeActive(_ application: UIApplication):DispatchQueue.global(qos: .utility).async { self.landmarksIDManager?.startTracking() }applicationDidEnterBackground(_ application: UIApplication):DispatchQueue.global(qos: .utility).async { self.landmarksIDManager?.stopTracking() }applicationWillTerminate(_ application: UIApplication):DispatchQueue.global(qos: .utility).async { LandmarksIDManagerDelegate.sharedManager()?.applicationWillTerminate() }
HINT: Store your secrets safely, like in an .xcconfig file, to avoid committing them to the code.
Additional Controls
Controlling Location Manager Access
To avoid initiating unwanted location permission prompts, set allowLocationPermissionsRequest to true after the application has used the location manager for the first time, or when the application wants the Landmarks ID SDK to handle location permission requests:
LandmarksIDManagerDelegate.sharedManager()?.requestLocationPermissions(.authorizedWhenInUse)
Controlling User Data Collection
These functions help manage device-level data collection. By default, data collection is allowed (true).
Check if data collection is allowed:
LandmarksIDManagerDelegate.sharedManager().isAllowedToRecordData()Stop recording data:
LandmarksIDManagerDelegate.sharedManager().stopRecordingData()Restart recording data:
LandmarksIDManagerDelegate.sharedManager().restartRecordingData()
Sending Additional Data
Attach custom values to the Landmarks ID SDK session, which will be recorded with each location event. Multiple custom values can be passed into each function.
Standardized Functions for Specific User Data
- Set Client's Customer ID:
LandmarksIDManagerDelegate.sharedManager().customerId = "CUSTOMER_ID"
Custom Functions for Other User Data
Set an integer value:
LandmarksIDManagerDelegate.sharedManager().setCustomInt("rank", value: 12)Set a float value:
LandmarksIDManagerDelegate.sharedManager().setCustomFloat("score", value: 23.29)Set a string value:
LandmarksIDManagerDelegate.sharedManager().setCustomString("mobile", value: "123134323432")
Contact Details
For further questions, please contact our team at:
