Guide · Adaptation

Google dependencies and why Apple rejects China-bound apps

7 min read Updated 4 October 2026

Google services are not degraded in mainland China — they are unavailable. A build that assumes them will fail in ways that range from cosmetic (no map tiles) to structural (no push notifications at all). This is the adaptation work, and it is the single most common reason a first submission gets rejected.

Why Apple sees it first

Every route needs this work, but the App Store review for mainland China tends to surface it earlier and more bluntly than the Android stores. The review looks at what the app actually calls and what it declares, and a privacy declaration that does not match a build still wired to Google services is a straightforward rejection.

The dependency map

DependencyWhat happens in ChinaReplacement
Google Maps SDKtiles, geocoding, directions No tiles, no geocoding Amap or Baidu Maps SDK. Both are close to a straight swap for display; routing and POI data need review.
Google Sign-InOAuth Unavailable WeChat, QQ, Weibo or a phone-number flow. If you are building a Mini Program, WeChat login is the natural default.
Firebase Cloud Messagingpush Unavailable No single replacement. Android push requires per-vendor channels — Huawei, HONOR, Xiaomi, OPPO, vivo — often via a push aggregator.
Firebase Analytics / Crashlyticstelemetry No data lands Domestic analytics and crash SDKs. Watch the privacy declaration: the SDK list you declare has to match what is in the build.
Google Play ServicesGMS core Not present on most devices No drop-in. Every GMS API your build calls has to be identified and replaced individually.
Google Play Billing / Stripepayments Unavailable WeChat Pay and Alipay. Settlement runs through your Chinese entity, which is one more reason the entity comes first.
Google Fonts, CDN assetsstatic delivery Slow to unreachable Self-host the fonts, or serve from a domestic CDN. This one is cheap to fix and embarrassing to ship.
reCAPTCHA, YouTube embedsthird-party widgets Unavailable Domestic alternatives or first-party flows. Both are commonly missed because they sit in a webview rather than the app shell.

The four that are genuinely hard

  • Push. Five vendor channels, five sets of credentials, and behaviour that differs by device. There is no single SDK that covers mainland Android the way FCM covers the rest of the world.
  • Payments. It is not only an SDK swap — settlement lands with the entity, and that means the entity has to exist before you can even test end to end.
  • Maps. Display is easy. Routing, POI data and coordinate systems are not, and coordinate handling is a classic source of a bug that only appears in China.
  • Identity. If your product model assumes an email-and-Google account, the China version usually needs a phone-first or WeChat-first flow, which touches onboarding, recovery and support.

Who does this work

Your developers. We produce the plan — every dependency, its replacement, the order to do them in and the review gate each one is checked against — and then we review what your team ships. We do not take your source code and we do not rebuild your client. If you have no app at all and need a China-market product, that is a different piece of work, and it is one we do build.

The checklist before your first submission

  • No Google service remains in the dependency tree — including transitive ones pulled in by an SDK.
  • The declared third-party SDK list matches the build, item for item.
  • Every permission the app requests is actually used, and every used permission is declared.
  • A working account-deletion path, reachable inside the app, not by email.
  • A privacy policy in Chinese that describes what the build actually collects — not a translated version of the old one.
Nearly all of this is cheaper to do before the first submission than after. A rejection at submission stage costs you a review cycle; a rejection because the build is still wired to Google costs you the whole adaptation anyway, plus the weeks you spent queuing.
Next step

Want this applied to your product rather than in general?

A 20-minute call and a written readiness check will tell you which of these applies to you, in what order, and what it costs. No cost, and no obligation to proceed.

Prefer to talk it through? — usually answered the same day.

Chat on WhatsApp