« Encoded Polyline Algo… | Home | CURL Conference 2019 … »

Required keys for info.plist file on Mac and iOS

When you build an application for MacOS or iOS, you may need to set some keys for info.plist. Apple requires for newer MacOS and iOS versions that applications have the info.plist entry and are code signed. If some malicious software would trick itself into getting loaded into a process and try to access your data, the app crashes if the entry is not in info.plist.

In FileMaker, you can add those entries right away in Xcode for your iOS app made with FileMaker iOS SDK. Sometimes for some things, you may even need to add the info.plist entries to the FileMaker Pro app itself.

In Xojo, you can create an info.plist file and drop into the project. Xojo will merge your info.plist file into the one for the application. This is a great way to automatically add the right entries. Other way is to use defaults app in a shell script, which can do that right away when you do code signing.

e.g. in a build script:
Dim App As String = CurrentBuildLocation + "/" + CurrentBuildAppName + ".app"
Call DoShellCommand("/usr/bin/defaults write " + App + "/Contents/Info ""NSCalendarsUsageDescription"" ""Exports events to your calendar.""")

The following table shows possible entries:
KeyNameDescriptionPlatforms
NFCReader​Usage​DescriptionNFC Reader Usage DescriptionSpecifies the reason for your app to use the device’s NFC reader.iOS 11 and later
NSAppleMusic​Usage​DescriptionMedia Library Usage DescriptionSpecifies the reason for your app to use the media library.iOS
NSBluetoothPeripheral​Usage​DescriptionBluetooth Peripheral Usage DescriptionSpecifies the reason for your app to use Bluetooth.iOS 6.0 and later
NSCalendars​Usage​DescriptionCalendars Usage DescriptionSpecifies the reason for your app to access the user’s calendars.iOS 6.0 and later, EventKit on macOS
NSCamera​Usage​DescriptionCamera Usage DescriptionSpecifies the reason for your app to access the device’s camera.iOS 7.0 and later
NSContacts​Usage​DescriptionContacts Usage DescriptionSpecifies the reason for your app to access the user’s contacts.iOS 6.0 and later, OS X v10.8 and later
NSFaceID​Usage​DescriptionFace ID Usage DescriptionSpecifies the reason for your app to use Face ID.iOS 11 and later
NSHealth​Clinical​Health​Records​Share​Usage​DescriptionClinical Health Records Share Usage DescriptionSpecifies text that provides justification for accessing a user’s clinical health records.iOS 12.0 and later
NSHealthShare​Usage​DescriptionHealth Share Usage DescriptionSpecifies the reason for your app to read the user’s health data.iOS 8.0 and later
NSHealthUpdate​Usage​DescriptionHealth Update Usage DescriptionSpecifies the reason for your app to make changes to the user’s health data.iOS 8.0 and later
NSHomeKit​Usage​DescriptionHomeKit Usage DescriptionSpecifies the reason for your app to access the user’s HomeKit configuration data.iOS, watchOS
NSLocationAlways​Usage​DescriptionLocation Always Usage DescriptionSpecifies the reason for your app to access the user’s location information at all times.iOS 8.0 and later, macOS 10.10 and later
NSLocationWhen​In​Use​Usage​DescriptionLocation When In Use Usage DescriptionSpecifies the reason for your app to access the user’s location information while your app is in use.iOS 8.0 and later, macOS 10.10 and later
NSMicrophone​Usage​DescriptionMicrophone Usage DescriptionSpecifies the reason for your app to access any of the device’s microphones.iOS 7.0 and later
NSMotion​Usage​DescriptionMotion Usage DescriptionSpecifies the reason for your app to access the device’s accelerometer.iOS 7.0 and later
NSPhotoLibraryAdd​Usage​DescriptionPhoto Library Additions Usage DescriptionSpecifies the reason for your app to get write-only access to the user’s photo library.iOS 11 and later
NSPhotoLibrary​Usage​DescriptionPhoto Library Usage DescriptionSpecifies the reason for your app to access the user’s photo library.iOS 6.0 and later
NSReminders​Usage​DescriptionReminders Usage DescriptionSpecifies the reason for your app to access the user’s reminders.iOS 6.0 and later, EventKit on macOS
NSSiri​Usage​DescriptionSiri Usage DescriptionSpecifies the reason for your app to send user data to Siri.iOS 10 and later
NSSpeech​Recognition​Usage​DescriptionSpeed Recognition Usage DescriptionSpecifies the reason for your app to send user data to Apple’s speech recognition servers.iOS
NSVideo​Subscriber​Account​Usage​DescriptionTV Provider Usage DescriptionSpecifies the reason for your app to access the user’s TV provider account.tvOS
31 03 19 - 16:27