ITMS-90338: Non-public API usage automatic refuse

  • Same to me... ITMS-90338: Non-public API usage - The app references non-public selectors in Frameworks/Capacitor.framework/Capacitor: applicationNameForUserAgent, initWithFrame:configuration:, isMainFrame, setNavigationDelegate:, targetFrame.

  • I'm also seeing this issue as of today without adding any new packages.

  • ITMS-90338: Non-public API usage - The app references non-public selectors in NNNN estimatedProgress, initWithFrame:configuration:, initWithURL:configuration:, initWithURL:entersReaderIfAvailable:, isMainFrame, ...etc

    Found this https://news.ycombinator.com/item?id=31648690 I think someone introduced a lookup issue in apples code validator.

    Let's hope this is resolved pronto. Well at least Android is working (that was a passive aggressive dig).;

Apple Recommended

  • Thanks a lot. ^^

  • it worked, thanks!

  • Thanks for the fix. I just uploaded a new build and it works!

Replies

Having the same issue with flutter ITMS-90338: Non-public API usage - The app references non-public symbols in Frameworks/Flutter.framework/Flutter: _IOIteratorNext, _IOObjectRelease, _IORegistryEntryCreateCFProperties, _IORegistryEntryGetChildIterator, _IOServiceGetMatchingServices, _IOServiceNameMatching, _kIOMasterPortDefault.

I also got problem ITMS-90338: Non-public API usage - The app references non-public symbols in Frameworks/Flutter.framework/Flutter: _IOIteratorNext, _IOObjectRelease, _IORegistryEntryCreateCFProperties, _IORegistryEntryGetChildIterator, _IOServiceGetMatchingServices, _IOServiceNameMatching, _kIOMasterPortDefault. 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/

MacOS: 12.4 Xcode: 13.4.1

Seeing similar here, I am right now getting "ITMS-90338: Non-public API usage" because UIPrintInfo, UIPrintInteractionController are used, which is definitely ridiculous, both are public APIs under UIKit!

Post not yet marked as solved Up vote reply of Cyan Down vote reply of Cyan
  • To add some background, my app is also macCatalyst, seems we have another report in this thread.

  • I am getting the same rejection message" ITMS-90338: NONPublic API USAGE" for UIPrintPageRenderer for a macCatalyst app as well. I have made no changes to that code in months.

  • Same here, also mac catalyst for UISimpleTextPrintFormatter

Add a Comment

I have the same issue! Mac Catalyst

ITMS-90338: Non-public API usage - The app contains or inherits from non-public classes in Contents/Frameworks/CordovaPlugins.framework/Versions/A/CordovaPlugins: UIMarkupTextPrintFormatter, UIPrintFormatter, UIPrintInfo, UIPrintInteractionController, UIPrintPageRenderer, UIPrintPaper, UIPrinter, UIPrinterPickerController, UISimpleTextPrintFormatter . 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/

XCode 13.4.1 MacOs: 12.4

We are facing the same issue with today's submission. Is this really resolved for all cases?

ITMS-90338: Non-public API usage - The app contains one or more corrupted binaries. Rebuild the app and resubmit.. 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-90338: Non-public API usage - The app contains one or more corrupted binaries. Rebuild the app and resubmit.. 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/

I have a similar problem with Flutter. When I removed the frameworks in the project and set 'enable bitcode', the problem was solved. However, these frameworks are important to the project, I can't delete them just because of this apple problem. Is there a way to solve the problem with 'disable bitcode' still set?

Same issue here, but unlike others I use Xamarin framework and the list of API is a bit more extended

ITMS-90338: Non-public API usage - The app references non-public selectors in OPRMoblie.iOS: accumulatorPrecisionOption, alignCorners, assetForIdentifier:, attackTime, batchStart, bytesPerImage, calibrationMode, checkFocusGroupTreeForEnvironment:, classesLossDescriptor, clipRect, colorTransform, commissioningComplete:, computeStatistics, confidenceLossDescriptor, curveType, deactivate, encodeToCommandBuffer:sourceTexture:destinationTexture:, envelope, forward, frontFacingWinding, gradientForWeights, initWithBuffer:offset:, initWithCoder:device:, initWithCommandBuffer:, initWithDevice:descriptor:, initWithEngine:, initWithFlags:, initWithHandle:, initWithLearningRate:gradientRescale:applyGradientClipping:gradientClipMax:gradientClipMin:regularizationType:regularizationScale:, initWithResources:, initWithUpdateMode:, inputFeatureChannels, instanceBuffer, isBackwards, isTemporary, kernelSize, maskBuffer, maskBufferOffset, mixer, neuronType, numberOfAnchorBoxes, numberOfClasses, numberOfDimensions, numberOfImages, numberOfLayers, numberOfRegions, outputFeatureChannels, p0, padding, playbackMode, pm, prepareState, readCount, rebuild, regions, releaseTime, resizeHeight, resizeWidth, resourceCount, resourceList, resourceSize, resultState, rowBytes, scaleFactorX, scaleFactorY, scaleTransform, setBatchStart:, setBeta:, setButtonsView:, setBytesPerImage:, setBytesPerRow:, setClipRect:, setCurveType:, setDoubleTapGestureRecognizer:, setFirst:, setGradientClipMax:, setGradientClipMin:, setGrid:, setInputFeatureChannels:, setInputWeights:, setLongPressRecognizer:, setLossType:, setMaskBuffer:, setMaskBufferOffset:, setNormalize:, setNumberOfClasses:, setNumberOfDimensions:, setNumberOfImages:, setOutputFeatureChannels:, setP0:, setPadding:, setPattern:, setPlaybackMode:, setPm:, setReadCount:, setRescore:, setRowBytes:, setScaleTransform:, setSourceSize:, setStopGradient:, setTextLabel:, shapes, sigma, sleep:, soundEvents, sourceSize, startWithCompletion:, stopGradient, test:, thresholdValue, toggle:, transpose, unmute, vectors. 

Honestly, I didn't add any package to the project since last version and suddenly all this appeared and I have no idea what am I even supposed to remove or change to fix this. Is this actually issue on our side? Seems like this issue resurfaced week ago judging from replies here and no answer been given. Do we just need to wait?

  • It's a pure Apple server-side validation error, I don't think we should do anything except wait, unfortunately it's been several days and Apple haven't responded.

Add a Comment

Okay I figured out how to solve this for cross-platform apps. In Target -> Build Settings -> Other Linker Flags, remove -interposable. Rebuild app

  • Error: The app references non-public selectors in Payload/XXXXXX: accumulatorPrecisionOption, alignCorners, assetForIdentifier:, attackTime, batchSize, batchStart, bytesPerImage, calibrationMode, checkFocusGroupTreeForEnvironment:, classesLossDescriptor, clipRect, colorTransform, columns, commissioningComplete:, computeStatistics, confidenceLossDescriptor, curveType, deactivate, encodeToCommandBuffer:sourceTexture:destinationTexture:, envelope, first, forward, frontFacingWinding,

  • gradientForWeights, initWithBuffer:offset:, initWithCoder:device:, initWithCommandBuffer:, initWithDevice:descriptor:, initWithEngine:, initWithFlags:, initWithGroup:, initWithHandle:, initWithLearningRate:gradientRescale:applyGradientClipping:gradientClipMax:gradientClipMin:regularizationType:regularizationScale:, initWithResources:, initWithUpdateMode:, inputFeatureChannels, instanceBuffer, isBackwards, isTemporary, kernelSize, maskBuffer, maskBufferOffset, mixer, neuronType, normalize,

  • numberOfAnchorBoxes, numberOfClasses, numberOfDimensions, numberOfImages, numberOfLayers, numberOfRegions, outputFeatureChannels, p0, padding, playbackMode, pm, prepareState, readCount, rebuild, regions, releaseTime, resizeHeight, resizeWidth, resourceCount, resourceList, resourceSize, resultState, rowBytes, scaleFactorX, scaleFactorY,

I am experiencing the same issue while using the Wikitude SDK with Unity:

TMS-90338: Non-public API usage - The app references non-public symbols in Frameworks/WikitudeSDK.framework/WikitudeSDK: _TIFFDataWidth, _TIFFFieldDataType, _TIFFFieldName, _TIFFFieldPassCount, _TIFFFieldReadCount, _TIFFFieldTag, _TIFFFieldWithTag, _TIFFGetField, _TIFFGetFieldDefaulted, _TIFFMergeFieldInfo, _TIFFSetField, _TIFFSetTagExtender, __TIFFDataSize, __TIFFfree, __TIFFmalloc

Is there any update on this issue? Its impossible for us to remove the library and we are unable to push any updates for the app.

  • We are having the similar issue with an old freetype framework. It seems a server-side problem on the App Store Connect.

Add a Comment

We are having the similar issue with an old freetype framework. It seems a server-side problem on the App Store Connect. We made a Apple Developer Technical Support request and got a reply that they were unable to help with this problem and referred us to the App Store Connect team.

  • It turned out the framework in question was redundant and removing it resolves our issue. However, the no-responding strategy of the Support team was not so helpful.

Add a Comment

Still getting this issue with Expo

We are facing the same issue with Blackberry Dynamics Framework. We have opened an issue with Apple and they acknowledge they are looking into it. The problem is they have been looking into it for more than 15 days now!

The problem still exists for me:

ITMS-90338: Non-public API usage - The app references non-public selectors in ...: checkFocusGroupTreeForEnvironment:, commissioningComplete:, setListenPort:, sharedController, sleep:, test:, toggle:. 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/

Having same issue for a Xamarin app, even after upload. Two weeks ago was fine and now a lot of errors not only ITMS-90338: Non-public API usage. :((

We've started to getting this today out of nowhere:

26c61a7b364f Asset validation failed (-19208)
 {
    NSLocalizedDescription = "The app references non-public selectors in Payload/HouzzPro.app/HouzzPro: appController, cancelTapped, didBecomeActive, rootView With error code STATE_ERROR.VALIDATION_ERROR.50 for id 88ff4f01-cd1f-4196-889e-26c61a7b364f";
    NSLocalizedFailureReason = "Asset validation failed";
}