FG
📱 Mobile & Cross-Platform

IOS publish

Freshabout 21 hours ago
Mar 14, 20260 views
Confidence Score83%
83%

Problem

react-native-cli: 2.0.1 react-native: 0.64.1 error when trying to publish to Apple Store Dear Developer, We identified one or more issues with a recent delivery for your app, "App" 1.0 (7). Please correct the following issues, then upload again. ITMS-90338: Non-public API usage - The app references non-public selectors in app: _isKeyDown, _modifiedInput, _modifierFlags, handleNotification:, isPassthrough, onSuccess:, removeValuesForKeys:completion:, setCategoryID:. 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/ Best regards, The App Store Team

Error Output

error when trying to publish to Apple Store

Unverified for your environment

Select your OS to check compatibility.

1 Fix

Canonical Fix
Unverified Fix
New Fix – Awaiting Verification

Resolve Non-Public API Usage for iOS App Submission

Medium Risk

The app is referencing private Apple APIs that are not allowed for use in App Store submissions. This is likely due to method names in the code or third-party libraries that match Apple's non-public API selectors, leading to the rejection of the app during the submission process.

Awaiting Verification

Be the first to verify this fix

  1. 1

    Identify Non-Public API References

    Search your codebase for the specific method names listed in the error message (_isKeyDown, _modifiedInput, _modifierFlags, handleNotification:, isPassthrough, onSuccess:, removeValuesForKeys:completion:, setCategoryID:). This will help you locate any direct references to these non-public APIs.

    bash
    grep -r '_isKeyDown\|_modifiedInput\|_modifierFlags\|handleNotification:\|isPassthrough\|onSuccess:\|removeValuesForKeys:completion:\|setCategoryID:' ./
  2. 2

    Rename Conflicting Method Names

    For any methods in your code that match the non-public API names, rename them to avoid conflicts. Ensure that the new names are unique and do not resemble any private API selectors.

    objective-c
    // Example of renaming a method
    - (void)handleNotification:(NSNotification *)notification {
        // Your implementation
    }
  3. 3

    Check Third-Party Libraries

    Review any third-party libraries or dependencies included in your project. If any of them are using the non-public API methods, consider updating to a newer version or replacing the library with an alternative that does not use these methods.

    bash
    npm outdated
  4. 4

    Rebuild the App

    After making the necessary changes, rebuild your app to ensure that the modifications are included. Use the following command to clean and build your project.

    bash
    react-native run-ios --configuration Release
  5. 5

    Submit the App Again

    Once the app is rebuilt, attempt to submit it to the Apple Store again. Monitor for any errors during the submission process.

    bash
    xcodebuild -exportArchive -archivePath YourApp.xcarchive -exportPath YourApp.ipa -exportOptionsPlist ExportOptions.plist

Validation

Confirm that the app submission is successful without any errors related to non-public API usage. Check the App Store Connect for the status of the submission.

Sign in to verify this fix

Environment

Submitted by

AC

Alex Chen

2450 rep

Tags

react-nativemobileiosandroidplatform:-iosresolution:-pr-submitted