Skip to content

Latest commit

 

History

History
80 lines (52 loc) · 3.01 KB

INSTALL-IOS.md

File metadata and controls

80 lines (52 loc) · 3.01 KB

iOS Setup

Configure Background Capabilities

  • Select the root of your project. Select Capabilities tab. Enable Background Modes and enable the following mode:

  • Background fetch

  • Background processing (Only if you intend to use BackgroundFetch.scheduleTask)

Configure Info.plist

  1. Open your Info.plist and add the key "Permitted background task scheduler identifiers"

  1. Add the required identifier com.transistorsoft.fetch.

  1. If you intend to execute your own custom tasks via BackgroundFetch.scheduleTask, you must add those custom identifiers as well. For example, if you intend to execute a custom taskId: 'com.transistorsoft.customtask', you must add the identifier com.transistorsoft.customtask to your "Permitted background task scheduler identifiers", as well.

⚠️ Your custom task identifiers MUST be prefixed with com.transistorsoft..

BackgroundFetch.scheduleTask(TaskConfig(
  taskId: 'com.transistorsoft.customtask',
  delay: 60 * 60 * 1000  //  In one hour (milliseconds) 
));

Privacy Manifest

Apple now requires apps provide a Privacy Manifest for "sensitive" APIs which could be abused for "fingerprinting" a user for malicious marketing activity.

If your app does not yet have a Privacy Manifest (PrivacyInfo.xcprivacy), create one now:

ℹ️ Click here for detailed instructions...
  • In XCode, File -> New -> File...:

  • Be sure to enable your Targets: [x] YourApp:

It's best to edit this file's XML manually.

  • 📂 ios/PrivacyInfo.xcprivacy
  • Add the following block within the NSPrivacyAccessedAPITypes <array> container:
<?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>
    <key>NSPrivacyAccessedAPITypes</key>
    <array>
        <!-- [1] background_fetch: UserDefaults -->
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryUserDefaults</string>

            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>CA92.1</string>
            </array>
        </dict>        
    </array>
</dict>
</plist>