SCM iOS API
Prerequisites

The middleware on iOS mobile devices is provided as a library to be embedded within a custom application.

The middleware requires :

  • The provided libscmapi.a library to be linked with the target application.
  • The target application must add the option -all_load under Other Linker Flags.
  • The target application must include the Core NFC Framework.
  • If the target application plans to use bluetooth smart card readers, it must add the Core Bluetooth Framework.
  • The target application must add NFC capabilities, and provide a non-empty string for the NFCReaderUsageDescriptionkey in its info.plist file. For the value, enter a string that describes the reason the app needs access to the device’s NFC reader.

    Example :

            <key>NFCReaderUsageDescription</key>
            <string>YOUR_PRIVACY_DESCRIPTION</string>
    
  • The target application must add the Near Field Communication Tag Reader Session Formats Entitlement to the entitlements file.

    Example :

            </array>
                <key>com.apple.developer.nfc.readersession.formats</key>
            <array>
                <string>NDEF</string>
                <string>TAG</string>
            </array>
    
  • The target application must contain list of application identifiers (AIDs) that may have to be selected. At the bare minimum, all AIDs declared in the EF.DIR of the cards to support should be declared, as well as the AID of the IAS application itself (in the case of a JavaCard implementation).

    Example:

        <key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
        <array>
            <string>A000000077010800070000FE00000100</string>
            <string>E828BD080FF2504F5420415750</string>
        </array>
    
  • If the target application plans to use bluetooth smart card readers, it must provide a non-empty string for the NSBluetoothAlwaysUsageDescription in its info.plist file. For the value, a message that tells the user why the application is requesting the ability to connect to Bluetooth peripherals.

    Example :

        <key>NSBluetoothAlwaysUsageDescription</key>
        <string>YOUR_PRIVACY_DESCRIPTION</string>
    
    • Note that if the target application has a deployment target earlier than iOS 13, it needs to add the NSBluetoothPeripheralUsageDescription key in its info.plist file in addition to NSBluetoothAlwaysUsageDescription.