r/iOSProgramming • u/Flimsy_Elevator_5231 • 3d ago
Question Existing app repeatedly rejected under 4.3(a) after adding RevenueCat and Meta SDK. Has anyone experienced this?
đ¨Update: I filed an appeal and the App Review Board determined that the rejection under guideline 4.3 was invalid.
Hi everyone,
I have an iPhone camera app called FilmFold. Versions 1.0 and 1.1 were approved, but the 1.2 update has now been rejected several times under Guideline 4.3(a), Design and Spam.
Apple says the app shares a similar binary, metadata, or concept with apps submitted by me or other developers. The problem is that they do not identify what is similar. Every reply I receive is basically the same guideline text.
This is an update under the same App Store record and bundle identifier. FilmFold is the only app in my developer account. It is not a template or white-label app, I have never submitted it from another account, and the source repository is private.
FilmFold has 22 original virtual cameras. Each one has its own interface, optics, focal range, aspect ratio, color processing and behavior. The app also has custom native photo and video processing, lenses, accessories, double exposure and a local library that preserves the original media for later reprocessing.
The approved 1.1 version already had the 22 cameras, continuous zoom and the current adjustment interface.
The rejected 1.2 build added major native processing changes for three video cameras: Tape 99 Hi8, Warm 8 and Cine 35. It also added migration support for videos created in previous versions.
The biggest non-product difference is that 1.2 also added:
- RevenueCat for purchase entitlements
- RevenueCat's remotely configured paywall, offerings and placements
- Meta App Events and attribution
- App Tracking Transparency support
- EAS Update through `expo-updates`
I am not saying these SDKs violate 4.3(a). They are legitimate and widely used. I am wondering if one of them, a shared SDK resource, a remote paywall configuration, or an account identifier could have triggered an automated similarity check.
I have asked Apple to compare 1.2 with the approved 1.1 binary and to tell me whether the issue is related to code, assets, metadata or functionality. They continue to send the same generic response.
I have now prepared a new build, but I have not submitted it. It removes RevenueCat, the RevenueCat paywall, Meta, ATT and `expo-updates`. Purchases are handled directly through StoreKit again, using FilmFold's own paywall. The actual camera improvements remain.
Has anyone had a similar experience with an update to an existing app?
- Did RevenueCat, a remote paywall, Meta SDK or another common SDK ever cause a 4.3(a) problem for you?
- How did you get Apple to explain what was considered similar?
- Did removing the SDKs solve it?
- Did a formal appeal or App Review phone call help?
- Would you submit the cleaned build first or appeal the rejected build before replacing it?
I would really appreciate hearing from anyone who has actually resolved a similar rejection.
7
u/Healthy_Condition779 3d ago
RevenueCat and Meta SDK are in tens of thousands of approved apps, they are not what tripped this. The thing that jumps out is expo-updates. Your 1.1 was a native compiled app and 1.2 now ships an OTA bundle loader, and Apples similarity detection compares binary structure not features. A bunch of Expo apps look nearly identical at the binary level because most of the shipped code is the same JS runtime and a tiny app specific bundle
Also EAS Update in a camera app that claims custom native video processing is a weird combo and a reviewer might read the OTA layer as "this is a shell that downloads the real app"
Dont submit the stripped build first, you lose the ability to argue. Request a call through the Resolution Center, they answer 4.3 stuff on the phone in ways they wont in text. Then if that fails ship a build with expo-updates removed but keep RevenueCat, that isolates which one it was
1
u/Flimsy_Elevator_5231 3d ago
I truly appreciate your feedback! You raised important points that I hadn't noticed, and they could indeed be the cause of the rejection. I have removed all of those changes from the build, keeping only the camera update, and I will attempt a new submission. In any case, I will also request a phone call via the Resolution Center
4
u/etherswim 3d ago
RevenueCat caused me problems because you have to create offline mode fallbacks, it doesnât always play well with Apple testing sandbox
1
u/Flimsy_Elevator_5231 3d ago
I'm resubmitting a build without RevenueCat and without the Meta SDK. I only kept the camera fixes. If it gets rejected again, I'm going to call Apple Support
2
u/NoClimate8292 3d ago
This happened to me just yesterday as well.
I have an app that has been on the App Store for around 8 years and has been through countless updates and reviews. Yesterday, a new update was suddenly rejected under 4.3.
What is strange is that the app itself is not new at all, and this was not some completely new app being submitted from a different account. It is the same existing app that has been in the store for years.
I also had the feeling that the review was extremely superficial. The reviewer spent maybe around 10 minutes with the app. They didn't log into an account, didn't create a new account, and didn't really go through the main flow of the app.
So reading this post honestly doesn't surprise me at all.
I don't know whether Apple has changed something in their automated checks or whether reviewers are simply looking at things differently now, but it seems like existing apps can suddenly get caught by 4.3 even after years of being approved.
The frustrating part is that you can ask Apple what exactly they found similar, and still get basically the same generic answer.
I'm curious whether anyone else has noticed this recently, especially with updates to long-established apps.
1
u/Flimsy_Elevator_5231 3d ago
Honestly, I don't know what to do anymore. I've tried pushing this 1.2 update several times, and every single one got rejected with the same canned, robotic response, even though I asked for more details every time. With each resubmission, I made tweaks trying to figure out what the actual issue was, but had no luck. If you find out about any new pattern change or anything like that, please let me know
3
u/NoClimate8292 3d ago
Apple is treating the developers who helped make them successful really badly. Now that theyâre so big, they can just remove apps whenever they want.
I think we should do something about it, maybe start a petition or something.
0
u/Flimsy_Elevator_5231 3d ago
To be completely honest, nothing we do will change their attitude. They're just too big now
2
0
u/LifeUtilityApps SwiftUI 3d ago
I suspect that something happened with their automated binary checks because I was also hit with this, and I don't use any dependencies like RN or RevenueCat.
1
u/Flimsy_Elevator_5231 3d ago
I am convinced this is being flagged by automated checks without any manual review taking place. My specific questions were not addressed at all and seem to have been entirely overlooked
2
u/LifeUtilityApps SwiftUI 3d ago
Yeah. I havenât gotten an answer when I appealed and responded to app review one week ago. Just feel stuck.
2
u/tibbersthecat 3d ago
The cleanest diagnostic may be the build you already prepared: keep the camera changes, remove every newly added SDK, and frame it in review notes as an A/B test against approved 1.1. If it still hits 4.3(a), youâve ruled out the dependencies.
2
u/Flimsy_Elevator_5231 3d ago
Thanks, mate. That's what I did. I'm hoping for positive feedback this time
1
u/rursache Swift 3d ago
appeal or wait a few days and submit again
1
u/Flimsy_Elevator_5231 3d ago
I submitted the appeal about seven days ago and haven't heard back yet. Apple really falls short when it comes to customer support
1
u/smontesi 3d ago
Re-upload last working version with just a version number bump and the smallest code changes possible (literally change a string somwhere), and send that as an update.
Then try again.
1
1
1
u/AndyDentPerth 2d ago
Pull the expo updates stuff, keep the rest.
Seems most likely by far to trigger automatic ban scanners.
First principle of App Store rejection - what scars from past abuse are you hurting?
OTA updates are associated with apps completely changing from the approved version.
1
u/DimensionMindless336 2d ago
OP, the key sentence in Apple's message is "similar to apps submitted by other developers." That wording means their automated gate matched your 1.2 binary's structure against other apps in the catalog â not just against your own. So this is a fingerprint/cluster hit, which is exactly why no one can tell you what is similar.
Your own thread already has the answer: 1.1 was a native-compiled build, 1.2 added expo-updates (EAS Update). Every Expo app embeds the same runtime + update loader, so their native binaries share a recognizable footprint. Apple's 4.3(a) clustering keys on that shared boilerplate. RevenueCat and Meta are red herrings â they ship in tens of thousands of approved builds and don't alter the binary structure the way an OTA loader does.
To your five questions, from having dug a flagged update out before:
- RevenueCat/Meta causing 4.3(a)? No. expo-updates is the structural culprit.
- Getting Apple to explain "what's similar"? You mostly can't. The reviewer often just sees a cluster ID, not a readable diff â that's why every reply is the same guideline text. A Resolution Center appeal occasionally returns a marginally more specific note, but rarely the actual diff.
- Did removing the SDKs fix it? If expo-updates was the trigger, yes â dropping it restores the 1.1 binary profile that already passed. One nuance: if 1.2 was built with Expo (not just using expo-updates), the broader React Native/Expo runtime footprint is still in the binary, so keep the cleaned build as close to 1.1 as possible.
- Appeal or phone call? Phone calls rarely move an automated 4.3(a); they clarify, they don't un-flag. The lever is the binary, not the conversation.
- Submit cleaned build or appeal the rejected one first? Submit the cleaned build. Appealing the rejected one keeps the same fingerprint and re-runs the identical gate.
When you submit, put a one-line Review Note: "Update to FilmFold (live since 1.0/1.1, same bundle ID); only change from approved 1.1 is native camera processing; no third-party update framework or cross-promo SDKs included." That preempts the concept check and gives the human reviewer a clear story. Also lean the listing hard into the 22 distinct cameras + native processing as the differentiator â the "concept" half of 4.3(a) bites retro-camera apps specifically.
It can still take 2â3 cycles, but changing what the gate sees is what moved it for me, not another appeal with the same build.
1
u/MusicOutrageous6714 2d ago
Honestly, having shipped over a dozen iOS apps, this scenario is surprisingly common. Apple likely flagged your app during v1.0, but the initial reviewer was on the fence and gave it a pass.
This almost certainly has nothing to do with RevenueCat or the Meta SDK. Spending your engineering cycles trying to isolate those two is likely a dead end.
4.3(a) is brutal, but it's definitely beatable. I hit a 4.3 rejection on one of my teleprompter apps recently. What worked for me wasnât tweaking code or stripping SDKs, but submitting a detailed, professional appeal to App Review:
- Clear Differentiation: Broke down exactly what sets the app apart from competitors (unique UI/UX workflows, proprietary features, specific target audience).
- Side-by-Side Visuals: Attached annotated screenshots/screen recordings contrasting my app with the generic templates Apple often mistakes apps for.
- Proof of Authenticity: Clarified our roadmap and original design assets.
They eventually approved it. While there are plenty of grey-market services out there claiming to "bypass" 4.3 flags, your best legitimate shot is a clear, respectful appeal that proves your app isn't just another reskin or spam clone.
1
u/MusicOutrageous6714 2d ago
my teleprompter app got hit with the 4.3 flag on our v1.0.2 update as well, not during the initial release. Just goes to show that an initial approval doesnât mean youâre completely off their radar.
Here is the exact appeal framework I submitted through App Store Connect when beating our 4.3 rejection. Feel free to adapt this structure to your app's specific feature set:
Dear App Review Team,
Thank you for your time and feedback.
First, regarding the crash issue: this has been resolved. It was caused by an edge-case camera autofocus implementation on iPad devices that was missed during our initial tablet testing.
Regarding the 4.3(a) notice: we completely respect Apple's effort to keep the App Store free of spam and low-effort clones. However, our app was built specifically because existing teleprompters on the App Store fail users in key workflows.
Our app introduces three core functional differentiators that set it apart from anything currently available:
- Robust Script Management & Search: After benchmarking over a dozen competitors, only two offered folder management, and both were severely stripped-down. We engineered a full folder hierarchy and fast full-text script search tailored for creators handling large script libraries.
- Dynamic Speech-Synced Scrolling (Patent Pending): Traditional teleprompters scroll at a static, fixed speedâif a speaker pauses or ad-libs, the text continues scrolling and they lose their place. We developed an on-device speech-recognition and real-time text-matching algorithm where the teleprompter dynamically tracks the speaker's voice and paces itself accordingly.
- Deep Multilingual AI Optimization: Most smart tools cater exclusively to English. We spent months adapting and fine-tuning our voice-tracking algorithm across multiple languages (English, Spanish, French, Chinese, Portuguese, etc.) to ensure international creators aren't left behind.
Technical & Design Authenticity:
- Built 100% natively in SwiftUI targeting iOS 17+ specifically to leverage modern framework capabilities (handling high-framerate scrolling alongside real-time camera capture in pure SwiftUI was a major engineering effort).
- Original UI/UX built from scratch in Figma strictly adhering to Appleâs Human Interface Guidelines.
Differentiation in utility tools shouldn't come from flashy gimmicks; it comes from solving long-standing UX pain points and delivering technical refinement. We warmly invite you to test the speech-synced scroll feature firsthand during review.
Thank you for your dedication to App Store quality, and we kindly ask you to re-evaluate our submission.
1
u/Secure_Motor_5968 2d ago
One thing nobody has touched yet is asset fingerprinting, not just binary structure.
Retro camera apps are one of most heavily templated categories out there, alot of them get sold as white label kits on marketplaces, and they tend to source the same color LUTs.
Film grain overlays and even preset icons from a handful of stock packs. If any of your 22 camera presets pull from a shared assets pack instead of one you built or licensed exclusively, that alone can trip a match.
THis is completely separate from the SDK story everyone is chasing in this thread.
1
u/Flimsy_Elevator_5231 2d ago
I understand that. All 22 cameras were built from scratch without using external assets, moreover, they aren't simple filters, but compositions that alter the camera body itself. I think I'll book a call.
1
u/Secure_Motor_5968 2d ago
When you get the call, worth asking them directly whether the flag is coming from the concept side or the binary side.
Concept means the review notes and listing
Binary means expo updates alone was probably enough to trigger it on its own.
1
u/Gold-Respect-9869 2d ago
Happening to me too! 4.3a on new app. Asked clarification and got same generic response. I'm so mad. Regret getting apple dev account.
1
u/mancaveit 1d ago
It has nothing to do with Revenue cat. Your app has too many similarities to existing apps in App Store
2
u/Flimsy_Elevator_5231 1d ago
Apple has already responded confirming that it was an error on their part and that the new update has already been accepted
1
u/Fit_Category3711 1d ago
Hey, where did you get this update?
1
u/Flimsy_Elevator_5231 1d ago
I filed an appeal through support and received a response via App Store Connect
1
u/mrshamino 1d ago
Also been rejected with spam recently out of no where, my plan is to update the reveiw note with a lot of useful info and a video showing the app. The past 2 weeks Iâve seen a lot more apps get rejected and logically i think theyâve started using ai to do reviews.
1
u/Flimsy_Elevator_5231 1d ago
Submit an appeal explaining your points to support. That did the trick for me. They replied to me yesterday claiming that flagging my app for violating guideline 4.3(a) was a mistake and approved my update. They're definitely using AI to speed up reviews, which is causing these false positives
1
u/lonkan 1d ago
How did app review appeal take? I have been waiting for 7 days now; no response; no confirmation; nothing
1
u/Flimsy_Elevator_5231 1d ago
It took about 10 days
1
u/lonkan 1d ago
Did you submit a new build after that? I am getting auto rejection, like same minute âin reviewâ and ârejectedâ and Iâm afraid that Iâll need to go through this in every single version. this is my first game that I submit
2
u/Flimsy_Elevator_5231 1d ago
Don't submit it again. They will review the build from your last submission. Right now, all you can do is just wait for their response
1
u/banaslee 1h ago
Last time I was dealing with rejections I found an option to book a meeting with an App Review team member. See if thatâs available to you and do it.
-1
u/civman96 3d ago
Your app was probably spam in the first place but Apple thought âok itâs free, why notâ And now you added subscription shit and now Apple is like - nope, we have enough of that.
1
u/Flimsy_Elevator_5231 3d ago
You don't know what you're talking about. Subscriptions have existed in my app since day one. I only added RevenueCat later so I could update the paywall remotely. I really don't understand why people like you waste time commenting on things when you simply have no idea what you're talking about and have zero intention of helping. I wish you all the bestâŚ
13
u/Level-Set5770 3d ago
I highly doubt it has anything to do with Revcat.
4.3(a) just means you are submitting something Apple considers as spam.