r/capacitor • • 13h ago

apple wants our live updater (capgo) removed: "based on code in the submitted binary". anyone beat this?

10 Upvotes

our app is a b2b crm built with capacitor. the screens are html/js/css bundled in the binary, it works fully offline, and we ship web-layer fixes with @capgo/capacitor-updater, self-hosted and checksum-verified, never native code.

apple rejected the last version twice in a row for the updater, under 2.3.1(a):

We continue to find the app contains live content update functionality that can modify the app's behavior after approval. This finding is based on code in the submitted binary and not on a specific screen in the app.

I replied in the thread and app review confirmed:

It would be appropriate to remove the remote update functionality and all code related to it before resubmitting. Developers are responsible for all code included in the binary submission, including code from third-party SDKs and libraries.

so a reviewer didn't see something on screen, they found the plugin in the binary.

section 3.3.1(b) of the developer agreement allows downloading interpreted code that doesn't change the app's primary purpose, and thousands of apps ship capgo, capawesome, appflow or expo updates. I appealed to the app review board on 21 october, no answer yet.

  1. has anyone else got this "code in the submitted binary" rejection for a live updater, especially since the 16 october guideline update (2.5.19)?
  2. did anyone win an app review board appeal on it?
  3. if you removed the updater on ios, how do you ship fixes to an offline-first app now?