iOS App Submissions Issues

Hey all,

I’m trying to submit my iOS app to the store and am seeing some issues being reported:

ITMS-90338: Non-public API usage - The app references non-public selectors in MediaSwitcher: cgColor, loadView:, pointValue, rectValue, setInputFormat:forBus:, sizeValue, unzipFileAtPath:toDestination:, valueWithPoint:, valueWithRect:, valueWithSize:. 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/

ITMS-90683: Missing Purpose String in Info.plist - Your app’s code references one or more APIs that access sensitive user data. The app’s Info.plist file should contain a NSMicrophoneUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you’re using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn’t contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).

I’m using iOSKit, iOSLib and a couple of the other enhancements that people here in the community have submitted. Do I have an issue with these APIs? Also, to sure on the NSMicrophone thing in the second issue. I am not using the microphone so I think something in one of the external libraries does. But I thought the Xojo compiler didn’t include items that were not used???

Any suggestions are appreciated.

Thank you.

What version of Xojo ?
That may be relevant

2019R3.2 and Xcode 11.6.

So things like the iOS control extensions by @Jason_King use things like cgColor

iOSLib uses LoadView

etc.

How do people get around these?

Compiled using “aggressive” ? It might strip out more

1 Like

I ended up deleting that app submission from the store completely. Then I went into the source code and removed iOSLib. I was using just a couple methods from that and realized I could live without them. I tried removing some of the items labeled as “optional” - yeah not so optional. I then went and removed a number of the things from iOSKit that I wasn’t using. I submitted the new app and it all went through! No warnings or errors so now it’s waiting to be approved by Apple. Hopefully it will go easy.

But yours is a great ideal @DerkJ I had not thought of that!

1 Like