Skip to main content

Frequently Asked Questions

This page lists issues that may occur while applying, running, and testing the SDK.
If you encounter other issues that are not covered on this page or have any questions, please email dev@loplat.com.

Q. What is the SDK size?

"Android"

Version 2.1.1.6.1 is 289KB.

"iOS"

Version 1.4.3 Universal Framework (including Simulator build) is 13.1MB, When distributing through the App Store, the SDK size is optimized for each device. For the iPhone (arm64 architecture), it is 8.5MB.


Q. How much battery does loplat SDK use?

A user sets the location services setting to always allow (works in the background/when the app is closed), installs/runs the app with the SDK at 100% battery level, and goes to work and uses the phone for about 12 hours, the result is as follows:

"Android"

Tested with Galaxy S22 (Android 13) with SDK 2.1.1.6.1 installed, and the battery consumption is Average 18.5mAh (0.5%)

"iOS"

Tested with iOS 14 with SDK 2.1.1.6.1 installed, and the battery consumption is Average 0.8%

Reason for more battery consumption than Android: Wi-Fi scanning is not possible on iOS devices due to the OS policy, so we detect user's movements with the accelerometer, BLE scan, and GPS value which drains more battery life.

The test results may vary depending on the user's behavior pattern/device/OS version.


Q. What are the permissions in the SDK?

"Android"
  • android.permission.ACCESS_COARSE_LOCATION, android.permission.ACCESS_FINE_LOCATION
    • Used to get a user's current location.
    • Required when scanning Wi-Fi for Android 6.0 and above.
  • android.permission.ACCESS_NETWORK_STATE
    • For SDK to check the internet connection status.
  • android.permission.ACCESS_WIFI_STATE, android.permission.CHANGE_WIFI_STATE
    • Used for Wi-Fi scanning.
  • android.permission.INTERNET
    • Used when communicating with the loplat server.
  • android.permission.RECEIVE_BOOT_COMPLETED
    • Used for continuous location tracking automatically without the user launching the app when rebooted.
  • android.permission.FOREGROUND_SERVICE
    • Used when running a service for location acquisition for Android 8.0 and above.
  • android.permission.ACCESS_BACKGROUND_LOCATION
    • For Android 10 and above, you must add it to enable background location access (location setting
    • Always Allow).
  • android.permission. ACTIVITY_RECOGNITION
"iOS"
  • Access Wi-Fi Information
    • Used to get the currently connected Wi-Fi information.
    • Need the corresponding permissions to get connected Wi-Fi information for iOS 12 and above.
  • Background Modes - Location Updates
    • Used to get the user's location in the background.
    • It is used to use the logic to revive the app when the user forcefully closes the app.

Q. What are OS versions supported?

"Android"

minSdkVersion 19
targetSdkVersion 26 or above

"iOS"

Compilable iOS version : iOS 8.0 and above (In iOS 8.0, calling the API in the SDK doesn't do anything.)
Actual working iOS version: iOS 9.0 and above


Q. For Android, is it possible to scan wifi even if WiFi is turned off?

To scan Wi-Fi on Android, the following conditions need to be met.

  • The GPS must be on.
  • Settings -> Improve accuracy or Location Service -> Wi-Fi Scanning (Enable WiFi scan when WiFi is turned off)
past versionLatest version (Android 12 and above)

Q. For iOS, is it possible to scan beacons even if Bluetooth is turned off?

Bluetooth and location services must be turned on for scanning beacons.
(If only the location service is turned on, the location is recognized only through WiFi connection information and GPS.)

"For iOS 11 and above, the function of the Bluetooth switch in the Control Center is different."

For iOS 11 and above, even if a user turns off the Bluetooth in the Control Center, it will only change the state (disconnected). The actual Bluetooth will not be turned off.
It doesn't matter if Bluetooth is turned off in Control Center, but if you turn off Bluetooth in Preferences, the actual Bluetooth is turned off, so beacon scanning will not be available.


Q. How long do I have to stay in a place for a location recognition event to occur?

"Android"

Up to 5 minutes

"iOS"

Up to 6 minutes


Q. When I try to archive and upload to the iOS App Store, it does not work.

The iOS SDK includes simulators (x86_64, i386) and real devices (armv7, arm64) architectures. If there is an error, the binaries for the simulator are included. Enter the command line below only for customers who do not use Cocoapods and add direct framework files, then try to build and archive again.

$ cd ~/MiniPlengi.framework/
$ lipo -remove i386 MiniPlengi -o MiniPlengi && lipo -remove x86_64 MiniPlengi -o MiniPlengi

Q. It was rejected in the iOS App Store. What is the screening method?

Because the SDK uses the location feature, the following items must be added to the app's Info.plist file.

For iOS 10 and above, if a user's personal information is used according to the new policy, the user feedback text must be provided below.

<?xml version="1.0" encoding="UTF-8">
<!DOCTYPE plist PUBLIC "=//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- skip -->
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Please indicate why the app uses location.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Please state why your app adds 'Always Allow' in the location settings.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Please state why your app adds 'While using the app' in the location settings.</string>
<!-- skip -->
</dict>
</plist>

And the SDK code includes the code that uses IDFA (Identifier for advertisement) to identify the loplat X feature and user data.

For iOS 14 and above, the App Tracking Transparency framework must be applied to collect IDFA. (Refer to iOS guide)

If your team does not use loplat X or collect IDFAs for user identification, please get in touch with dev@loplat.com to distribute the SDK without IDFA.
(App Store Connect - Privacy tab collected by the app - Device ID Identifier not checked).