Skip to content

Warning: This code path does I/O on the main thread underneath that can lead to Ul responsiveness issues -[NSFileManager removeltemAtPath:error:] #296

Open
@JUSTINMKAUFMAN

Description

@JUSTINMKAUFMAN

Summary

Since updating to the latest Xcode v15.3 (15E204a), I see several runtime warnings related to this library doing I/O on the main thread.

While I can't look at the actual code that the stack trace references, it appears as though the proximate trigger for the warnings are the following methods:

  • NSFileManager.removeItemAtPath:
  • NSFileManager.createFileAtPath:
  • NSBundle.bundleIdentifier:
  • NSKeyedArchiver.archivedDataWithRootObject:
  • NSData.enumerateByteRangesUsingBlock:

And those calls appear to stem from the following SDK operations:

  • Disconnecting/connecting to/from a reader (SCPBbposBluetoothScanAdapter.onBTConnected:, SCPBbposBluetoothScanAdapter.onBTDisconnected:)
  • Reconnecting to a reader (SCPTerminal.reconnectOrAnnounceUnexpectedDisconnect...)
  • Refreshing location (SCPLocationManager.refreshLocation:)
  • Getting device info (DP_MainController.getDeviceInfo_Internal:)
  • Canceling card read (DP_MainController.cancelCheckCard:)

Code to reproduce

I don't think there is anything off-book about my use of the SDK (I'm guessing the source of these warnings has been around for a while and that Xcode only recently started surfacing them, though I could be wrong).

iOS version

17.1

Installation method

SPM

SDK version

3.4.0

Other information

I'm happy to provide anything else that may be useful! Thanks.

StripeTerminalTraceA
StripeTerminalTraceB

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions