Selector mangling [app rejection]

Hi,


I hope this is the right place to post.

My app got rejected because the reviewer claims that I am using "selector mangling".


I have no idea what this is.


Is there a compiler flag causing this?


My code does use a bit of C++ classes which I researched and found out that they can cause function names to be mangled but not "selectors" as the reviewer is complaining about.


Does anybody know what Apple means by "selector mangling".


thank you

Replies

Which version of XCode ?


Did you set @objc inference to off ?


Have you searched all your constructs of selectors ?

Can you quote the actual message you received?

I'm curious which rule they thought you were breaking.

Thanks for the replies.


I'm using Xcode 8.2.1


I have not turned @obj off.

How do I search all constructs of selectors?

I'm afraid this is happening because I mixed C++ code with objective c on a .mm file


Here's the full rejection message:


From Apple

2. 3 Performance: Accurate Metadata


Guideline 2.3.1 - Performance



We discovered that your app contains hidden features. Specifically, it would be appropriate to remove selector mangling from this app before resubmitting for review.


The next submission of this app may require a longer review time.


Next Steps


- Review the Performance section of the App Store Review Guidelines.

- Ensure your app is compliant with all sections of the App Store Review Guidelines and the Terms & Conditions of the Apple Developer Program.

- Once your app is fully compliant, resubmit your app for review.


Submitting apps designed to mislead or harm customers or evade the review process may result in the termination of your Apple Developer Program account. Review the Terms & Conditions of the Apple Developer Program to learn more about our policies regarding termination.


If you believe your app is compliant with the App Store Review Guidelines, you may submit an appeal. Alternatively, you may provide additional details about your app by replying directly to this message.

I would simply search for "selector" in the whole project.

I did. I only use it to add target for UIButtons. nothing weird there.

I believe you can write back to Apple directly in the Resolution Center. I would ask them for a more specific example of what they mean. At least maybe then you'll have something to search on.

Just FYI, it should *not* be the simple fact of using C++ in a .mm file that's giving you trouble.

If that were always a problem, we'd never have anything accepted.


Do you use any 3rd-party libraries for "security" or symbol obfuscation?

Hello


I'm having the same issue with my App this is the reponse i get from Apple


Guideline 2.3.1 - Performance



We discovered that your app contains hidden features. Specifically, we found that this app or a framework embedded within it contain obfuscated selectors. These selectors contain names like 'SDK_v2RmqtE8QRceHjTQwD3v37oOqso61QFlOFHEk:SDK_e5L7s2FNTdu8Ttv1lRdrCWv:' and 'SDK_t0deadLdPKsU8FJPMjmJ:'. We recommend that you use the "nm" tool or the command line tools "strings" or "otool -ov" to find the entities that are causing this rejection. Additionally, you may wish to contact Apple Developer Technical Support for assistance.


I'm Using Cocoapods but i check all the frameworks i'm using with pods and none of them have those kind of selector, i find them but only in the in the Binary File of the App


I'm not very sure how to resolve this.


Any help is welcome.

Cant't you track the framework with the advice form support : "We recommend that you use the "nm" tool or the command line tools "strings" or "otool -ov" to find the entities that are causing this rejection." ?


So I understand Apple rejects because it seems that the name of a selector has been hidden (changed in code ?) and that prevent tracking what the call is refering to.

Found more or less similar issues in forums, may be that can help better understand and resolve

- many linked to iOS Advertising,

- or to the non use of a declared capability : eg "Your app declares support for audio in the UIBackgroundModes key in your Info.plist but did not include features that require persistent audio."


h ttps://github.com/mixpanel/mixpanel-iphone/issues/109

h ttps://pspdfkit.com/guides/ios/current/announcements/private-api-rejections/

h ttps://codecanyon.net/item/universal-for-ios-full-multipurpose-ios-app/11941410/comments?page=5

Thanks Claude!!


Have tried to track the framework with the tool the Apple reviewer told me i get the list to the selectors and classes in the App

Still there are some wierd selectores and methond going that i haven't seen in the App.


I'll look to capabilitys that we are not using maybe i can find some light with this


Thanks


Erick