Search code examples
iosfacebookapp-storeapp-store-connectfacebook-ios-sdk

iTunes Connect - rejected due to Facebook's "setUrlRequest" method


We have an app, which is using old Facebook iOS SDK module. App was rejected due to non-public API in app:

We found the following non-public API/s in your app:

setUrlRequest:

We're asking tech support to help us finding which module in our app uses method with such name. Tech support said to try this command:

strings -a <libraryname.a> | grep -e 'setUrlRequest'

and YES, old Facebook iOS SDK module have such method.

So I've tried to use latest (3.5.1) SDK. Built it from sources. Tried to chech it:

strings -a libFacebookSDK.a | grep -e 'setUrlRequest'

Output:

-[FBRequestConnection setUrlRequest:]
setUrlRequest:
setUrlRequest:
setUrlRequest:
strings: for architecture armv7 object: libFacebookSDK.a(FBDialog.o) malformed object (unknown load command 1)
strings: for architecture cputype (12) cpusubtype (11) object: libFacebookSDK.a(FBDialog.o) malformed object (unknown load command 1)

So even latest Facebook iOS SDK have method, because of which app could be rejected on the way to App Store.

How to solve that issue? Even more, how other app, which are use Facebook iOS SDK could be passed.


Solution

  • It was issue in Xamarin's MonoTouch product. Update to version 6.2.6 solved the issue cause:

    Removal of some non-public Apple selectors (name clashes, old beta selectors and newly blacklisted)