Apple rejects app update due to perfomance issue 2.5.1

ios
fabric
crashlytics
twitterkit
api

#1

Hello everyone!
Could you please help me with this issue as it is the fifth build version that Apple rejects due to Performance Issue and it’s driving me crazy . This is the irritating reply I got each time:

"
Performance - 2.5.1

Your app uses or references the following non-public APIs:
setClientVersion
setEventName
setRequestID
setRetryCount
retryCount

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."

As suggested by this reply, I tried to use the terminal mn tool command and noticed that this functions (?) refer to the Twitter Core / Twitter Kit embedded classes.Could this be related to Crashlytics?
The funny thing is that this is really a minor update of my already approved app and I have no idea what changed during the approval cycle .

Thank you for your precious help and collaboration,
Giacomo Nazzaro


#2

Hey @giacomonazzaro,

Thanks for reaching out on this. I don’t believe we’re calling any non-public APIs in Twitter Kit or Twitter Core. We may have a couple of methods with those signatures, but they would be on our own classes and so not in violation of any of Apple’s terms. Could you share what classes we’re flagged?

-Mike


#3

Dear Mike,
thanks for your fast reply and interest. You’re perfectly right and this is exactly what I’m trying to explain to the app approvers and it’s the main reason why I actually opened a new appeal on iTunes Connect . I’ve tried to search inside each class that I dropped in my project thanks to Fabric but I couldn’t find any reference to the “non public classes and methods” at all .
At that point I decided to use the grep command lines tools as suggested by Apple and in other forums so to be able to search in my entire project for these references and I got the following:

Taz-MacBook-Pro:MetaMovie giacomonazzaro$ grep -r setRequestID .
–> gives me -->
Binary file ./TwitterCore.framework/TwitterCore matches

Taz-MacBook-Pro:MetaMovie giacomonazzaro$ grep -r retryCount .
–> gives me -->
Binary file ./TwitterCore.framework/TwitterCore matches
Binary file ./TwitterKit.framework/Resources/TwitterKitResources.bundle/TFSScribe.momd/TFSScribe.mom matches
Binary file ./TwitterKit.framework/Versions/A/Resources/TwitterKitResources.bundle/TFSScribe.momd/TFSScribe.mom matches
Binary file ./TwitterKit.framework/Versions/Current/Resources/TwitterKitResources.bundle/TFSScribe.momd/TFSScribe.mom matches

Taz-MacBook-Pro:MetaMovie giacomonazzaro$ grep -r setClientVersion .
–>gives me–>
Binary file ./TwitterCore.framework/TwitterCore matches

Taz-MacBook-Pro:MetaMovie giacomonazzaro$ grep -r setEventName .
–>gives me–>
Binary file ./TwitterCore.framework/TwitterCore matches

Taz-MacBook-Pro:MetaMovie giacomonazzaro$ grep -r setRetryCount .
–>gives me–>
Binary file ./TwitterCore.framework/TwitterCore matches

I really hope that helps .
I have to say that I’m really surprised by this entire situation as I’ve always used Twitter Kit and Fabric and I’ve never had any issue with them… also I think it’s worth noting that this only happened when I submitted a really minor update to my app (1.0.1 version number just to give an idea… :wink: )

-Giacomo


#4

Thanks for the extra info - do keep me updated on how the appeal goes for you!


#5

Since this is actually the second appeal I’ve opened between the 2 different builds I’ve submitted,I guess I could give you a small preview of what their response would likely be :yum:
they will just continue repeating I’m using non public API(s) mentioning the above methods and, therefore,they can’t approve this update as I’m against their 2.5.1 PERFORMANCE: SOFTWARE REQUIREMENTS rule. This is,of course, quite frustrating :scream:


#6

I feel your pain @giacomonazzaro - so very sorry that Apple is giving you a hard time.


#7

Thank you so much !! I will of course keep you updated.
I have to say I feel very sorry and in a way responsible for my users… ok they are not thousands but it doesn’t matter. I think it’s quite depressing not to be able to guarantee them regular updates, bug fixes and new features/ improvements.
All this situation / misunderstanding is taking up too much time (it has been nearly a month since I submitted my first 1.0.1 build). I really hope to solve it within next week or at least before the iOS 10 release
Finger crossed for their appeal response… :grin:


#8

I’ll send good thoughts your way during this appeal and hope it’s all set!