« Add a search and repl… | Home | Define hot keys for f… »

The annoyance of Non-public API usage message from App Store


There is a problem with Apple's automated checks for the iOS and Mac app stores. Apple checks if you call private API functions from them and you may get a notice like this:

Dear Developer,

We identified one or more issues with a recent delivery for your app, "EverTools" 1.8.3 (22). Please correct the following issues, then upload again.

TMS-90338: Non-public API usage - The app references non-public selectors in Frameworks/MBS.fmplugin.framework/MBS: batteryWarningLevel, cardNumber, connectedDevices, connectionState, dateOfBirth, deviceIdentifier, deviceList, duplicate, features, high, isBluetoothAvailable, low, picture, protocolVersion, reading, removeDevice:, sdkVersion, sendCommand:, sensors, sex, softwareRevision, startScan, versionNumber. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

Those functions are part of the MBS Plugin 9.5 and relate to our support for bluetooth card readers and thermometers. It's really annoying that Apple forbids you to name an objective-C function isBluetoothAvailable in your application. We'll put in a workaround so newer plugin for iOS will not use those function names.

Please don't hesitate to contact us if you have questions or need the fixed plugin.
15 11 19 - 13:12