Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Getting rejected in iOS App Store due to non-public API for "initWithFileName" #13134

Closed
NateShoy opened this issue Jun 14, 2024 · 9 comments · Fixed by #13139
Closed

Getting rejected in iOS App Store due to non-public API for "initWithFileName" #13134

NateShoy opened this issue Jun 14, 2024 · 9 comments · Fixed by #13139
Assignees

Comments

@NateShoy
Copy link

Description

Hello Firebase iOS SDK Developers,

I have already forwarded this link to Apple and they are totally refusing our app submission by saying that there is a duplicate method named "initWithFileName" which comes from Google Firebase SDK. Please see the attached email from Apple App Store Review Team. They think we've created this method and they are asking us to rename it to something else but this method belongs to Google's Firebase SDK product. This is like a dead-end for us. What will it take for Google to rename this method to something very unique to Google? It is just a method name and Google can simply pick another name, thus, all problems simply go away.

Please rename Firebase method "initWithFileName" so it doesn't conflict with Apple's method "initWithFileName" when we build our IPA for their app store submission. This issue is all about the name only and the code logic remains the same.

The way our app is built is basically: Our code + Apple's code + Google's code. It is very simple but when one of three has a name that conflicts with Apple, then Apple is afraid that we will misuse this method and do something malicious since this method from Apple is a non-public method, meaning to be used by Apple only and internally.

#4971

In this post it talks exactly about our issue being experienced by the others. So when you say: "I have not encountered any other cases related to iOS Apps getting denied with Firebase - with a multitude of different products being used so far, so this is quite a strange issue (and hard to track down)." then I am totally confused why you state "it's hard to track down" this when there are many others with our issue too as per the above link/post in Github. And again this issue can be very easily corrected and probably fast by the Firebase development team by simply renaming your method "initWithFileName:" to something like "googleInitWithFileName:" and rebuilding the SDK so that we can include this new version in our next app's build and then submit it for review again to Apple's App Store.

Please advise as soon as possible!

Tourist New App Team
support@touristnewapp.com

Reproducing the issue

Apple's App Store review team refuses to accept our app due to Firebase iOS SDK method name conflict. Can't you just choose another name?

Firebase SDK Version

10.9

Xcode Version

15.3

Installation Method

Swift Package Manager

Firebase Product(s)

App Distribution, In-App Messaging

Targeted Platforms

iOS

Relevant Log Output

N/A

If using Swift Package Manager, the project's Package.resolved

N/A

If using CocoaPods, the project's Podfile.lock

N/A

@google-oss-bot
Copy link

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

@paulb777
Copy link
Member

Would you confirm which Firebase products are being used? I see initWithFileName in FirebaseMessaging, but not in App Distribution or Firebase In App Messaging.

@NateShoy
Copy link
Author

Sorry, Paul, my fault. It is only for FirebaseMessaging

TYVM!

@paulb777
Copy link
Member

I'll add this to the list for the 10.29.0 release.

However, it's very strange that thousands of apps have been approved while including this code.

@NateShoy
Copy link
Author

Hi Paul,

I totally agree and I too don't understand how our app got singled out like this, but below is Apple's rejection email to us:

App Store Connect

Hello,

We noticed one or more issues with a recent delivery for the following app:

Tourist New App
Version 1.0.47
Build 1.0.47
Please correct the following issues and upload a new binary to App Store Connect.

ITMS-90338: Non-public API usage - The app references non-public selectors in Tourist: initWithFileName:. 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/

Apple Developer Relations

@NateShoy
Copy link
Author

Unless this is a new app review policy that Apple just implemented?

@paulb777 paulb777 self-assigned this Jun 15, 2024
@NateShoy
Copy link
Author

@paulb777 When will 10.29.0 release be available? How will we know?
Thank you for all your help on this one!
Best,
Nathan

@paulb777
Copy link
Member

@NateShoy The 10.29.0 release is targeted for the week of July 8th. In the interim, you could apply the diff of #13139 to your build.

@NateShoy
Copy link
Author

Got it! July 8th works! TYVM :)

@firebase firebase locked and limited conversation to collaborators Jul 18, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants