From Apple
Performance - 2.5.1
Your app uses or references the following non-public APIs:
: setResult:
The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.
I search the term setResult
and I think this belongs to the facebook login package that I was using
xxxx$ grep -Rnis 'setResult:' *
Binary file ios/FBSDKCoreKit.framework/FBSDKCoreKit matches
Binary file node_modules/react-native-facebook-login/FacebookSDK/FBSDKCoreKit.framework/FBSDKCoreKit matches
Does anyone know how to solve this? Thanks.
There's no reason to panic if your application uses React Native. There are no circumstances under which Apple would withdraw consent for RN apps, as they would also have to ban other web-mobile frameworks like Ionic, as well as standard Internet browsers, as they all fall into the same category.
React is very simple and efficient for creating large applications. React Native enables you to use React to build mobile apps that work on both Android and iOS.
As of January 19, 2021, Facebook React Native SDK will no longer be officially supported by Facebook.
The main difference between React Native and Swift is that React Native is best for cross-platform development, while Swift is for building iOS apps. Thus, you may develop an Android application in Java or Kotlin, for example, and choose Swift and Objective-C for iOS only.
I'd recommend filing an issue on their Github project. They shouldn't be using private APIs and I'm sure would want to know that it's resulted in an App Store rejection.
EDIT: OP posted an issue and it appears they aren't the only one with that issue.
https://github.com/magus/react-native-facebook-login/issues/155
We had the same problem. Apple rejected our app because of a method named setResult
that is part of the FacebookSDK. It is not a call to a non-public API, but just a method that has coincidentally the same name.
Someone filed a bug at developers.facebook.com. This is Facebook's response:
Hi all,
I've checked with our Mobile SDK team and also checked this myself personally in our SDK source
The call to setResult in FBSDKCoreKit is not to a private API, it's to this method from the Bolts Framework:
https://boltsframework.github.io/docs/ios/Classes/BFTaskCompletionSource.html#//api/name/setResult:
At this time there aren't any plans to change our usage of this method, and it appears to be being flagged incorrectly by whatever Apple are using to detect private API usage
We recommend you reach out to Apple and have them check your app again and verify that there isn't actually private API usage
I've also asked if our mobile SDK team can contact Apple about this, but I'm unsure if that's something we can do
Regards, Stephen
The bug report: https://developers.facebook.com/bugs/294032807641661/
We successfully appealed to the App Review Board, by explaining why it is not a call to a private API.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With