<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/deploying-my-expo-apps-to-google-play-lessons-learned-wugdao6w6" -->

---
title: Deploying my Expo apps to Google Play — lessons learned
description: Deploying Expo apps to Google Play is mostly straightforward with minimal code changes required. Key challenges include adjusting font sizes for Android&#x27;s...
canonical: https://daily.dev/posts/deploying-my-expo-apps-to-google-play-lessons-learned-wugdao6w6
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Deploying my Expo apps to Google Play — lessons learned | daily.dev
og:description: Deploying Expo apps to Google Play is mostly straightforward with minimal code changes required. Key challenges include adjusting font sizes for Android&#x27;s...
og:url: https://daily.dev/posts/deploying-my-expo-apps-to-google-play-lessons-learned-wugdao6w6
og:image: https://api.daily.dev/og/posts/WuGDAo6W6.png
og:image:alt: Deploying my Expo apps to Google Play — lessons learned
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploying my Expo apps to Google Play — lessons learned

**[Vladislav Siumbeli](https://daily.dev/sources/ezh33lu6a37km1sfscwix)** · [@vladsiu](https://daily.dev/vladsiu) · 3 min read · 213 upvotes · 30 comments

## Summary

Deploying Expo apps to Google Play is mostly straightforward with minimal code changes required. Key challenges include adjusting font sizes for Android's rendering differences using a platform-specific scaling function, configuring keystores and Firebase integration with google-services.json, and finding testers through communities like Reddit and specialized testing apps. The Google Play review process proved smoother than iOS, with Firebase automatically handling Google Authentication setup for connected projects.

## Content

After releasing my iOS apps, I wanted to bring them to Android. Since both were built with Expo, I expected it to be easy — and it mostly was! Still, I ran into a few surprises along the way that might help others doing the same.

### ⚙️ 1. Porting with Expo

The best part? No big code changes needed.

Expo made it super simple to build for Android — I didn’t need to eject or do any deep platform-specific setup.

But when I started testing, I noticed something off…

### 🖋️ 2. UI issues — font sizes on Android

Some screens looked slightly off on Android.
It turns out Android renders font sizes just a bit larger than iOS, so my UI spacing broke in a few places.

My fix: I wrote a small helper function to automatically scale font sizes down slightly on Android devices.

```
import { Platform } from "react-native";

export const normalizeFont = (size: number) => {
  return Platform.OS === "android" ? size * 0.95 : size;
};
```

Tiny tweak, big difference — everything looked balanced again.

### 🧩 3. Google Play configuration

Here’s where it got trickier. To publish, I had to:
* Generate and upload keystores (Expo does this automatically if you don’t have one).
* Add the keys to Firebase for Android integration.
* Download and include the `google-services.json` file in my Expo project (in the `app/` folder).

Expo’s build process using `eas build -p android` handled most of it, but double-checking the Firebase connection was key.

### 🔐 4. Google Authentication setup

Since my apps already used Firebase, enabling Google Auth for Android was easy — Firebase linked it automatically through the connected project.

No extra manual setup needed besides enabling the provider in Firebase Console.

### 🧪 5. Closed testing — finding testers

I didn’t have many Android users among my friends, so I tried a few things:
* Posted testing invites on X, Reddit, and daily.dev
* Found an awesome app called “12 Testers - Closed Test Pro” on Google Play, where devs test each other’s apps for 14 days.

That community feedback helped a ton before the public release.

### ✅ 6. Review and approval

After fixing UI details and testing everything, both apps were reviewed and approved without issues!

The process was actually smoother than the iOS review 😅

### 📱 Finally my apps are now live!

🍱 TinyRecipe is live on:
- [App Store](https://apps.apple.com/app/id6749379823)
- [Google Play](https://play.google.com/store/apps/details?id=com.vladislavsiumbeli.foodable)

💰 TinyDebt is live on:
- [App Store](https://apps.apple.com/app/id6752252043)
- [Google Play](https://play.google.com/store/apps/details?id=com.vladislavsiumbeli.tinydebt)

### 💡 Final thoughts

If you’re using Expo, deploying to Android is surprisingly smooth — most hurdles are design-related rather than technical.

Testing across devices is key, but once that’s handled, the Play Store pipeline feels quick and dev-friendly.

## Community discussion

Top comments from developers on daily.dev.

**@nanomicon** · 2 upvotes

> Comparing to the Apple publishing process, is it as easy? I know developers tend to release on Android first because it's easier than iOS. You reminded me that iOS-first is also a valid strategy.

**@tanvirshaikh** · 2 upvotes

> Hey Thanks for this it's helpful 🔥🔥

**@godwinchibyk** · 1 upvotes

> Congratulations.

**@terkaspo** · 1 upvotes

> Nice content, are you planning on releasing something related to IOS deployment?

**@manurgdev** · 1 upvotes

> Thanks. This is gold for beginners in Android app publishing 🚀

---

Tags: [#mobile](https://daily.dev/tags/mobile), [#android](https://daily.dev/tags/android), [#react-native](https://daily.dev/tags/react-native), [#firebase](https://daily.dev/tags/firebase)

[View this post on daily.dev](https://daily.dev/posts/deploying-my-expo-apps-to-google-play-lessons-learned-wugdao6w6)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/deploying-my-expo-apps-to-google-play-lessons-learned-wugdao6w6","headline":"Deploying my Expo apps to Google Play — lessons learned","text":"Deploying Expo apps to Google Play is mostly straightforward with minimal code changes required. Key challenges include adjusting font sizes for Android's rendering differences using a platform-specific scaling function, configuring keystores and Firebase integration with google-services.json, and finding testers through communities like Reddit and specialized testing apps. The Google Play review process proved smoother than iOS, with Firebase automatically handling Google Authentication setup for connected projects.","url":"https://daily.dev/posts/deploying-my-expo-apps-to-google-play-lessons-learned-wugdao6w6","datePublished":"2026-02-04T17:11:26.481Z","dateModified":"2026-02-04T17:11:47.178Z","author":{"@type":"Person","name":"Vladislav Siumbeli","url":"https://daily.dev/vladsiu","image":"https://media.daily.dev/image/upload/s--GalxSgjS--/f_auto/v1757768087/avatars/avatar_ezH33Lu6a37KM1SfsCwIx?_a=BAMClqZW0","description":"I build productivity apps ➡️ https://vladsiu.com","worksFor":{"@type":"Organization","name":"Hampr","logo":"https://res.cloudinary.com/daily-now/image/upload/s--_DEoREBB--/f_auto/v1725352678/companies/hampr"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":4690}},"image":"https://media.daily.dev/image/upload/s--UwIYjyrR--/f_auto/v1770225087/posts/WuGDAo6W6?_a=BAMAMiiu0","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":213},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":30}],"comment":[{"@type":"Comment","text":"Comparing to the Apple publishing process, is it as easy? I know developers tend to release on Android first because it’s easier than iOS. You reminded me that iOS-first is also a valid strategy.","datePublished":"2026-02-13T01:31:12.571Z","url":"https://daily.dev/posts/WuGDAo6W6#c-8rjQ5SLJr","author":{"@type":"Person","name":"NaN","url":"https://daily.dev/nanomicon","image":"https://media.daily.dev/image/upload/s--xttHtmey--/f_auto/v1768615042/avatars/avatar_0Pwgxd8JXDKz1ZziWduWY?_a=BAMAMiiu0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2}},{"@type":"Comment","text":"Hey Thanks for this it’s helpful 🔥🔥","datePublished":"2026-02-07T06:39:11.706Z","url":"https://daily.dev/posts/WuGDAo6W6#c-9iRoF3trL","author":{"@type":"Person","name":"Tanvir Shaikh","url":"https://daily.dev/tanvirshaikh","image":"https://media.daily.dev/image/upload/s--cwxvun5d--/f_auto/v1724932893/avatars/avatar_nlEHog1G2F4vZjXDeo35x"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2}},{"@type":"Comment","text":"Congratulations.","datePublished":"2026-02-21T18:00:03.643Z","url":"https://daily.dev/posts/WuGDAo6W6#c-woCkgw7aK","author":{"@type":"Person","name":"Godwin","url":"https://daily.dev/godwinchibyk","image":"https://avatars.githubusercontent.com/u/40585178?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}},{"@type":"Comment","text":"Nice content, are you planning on releasing something related to IOS deployment?","datePublished":"2026-02-24T11:46:08.274Z","url":"https://daily.dev/posts/WuGDAo6W6#c-gadrJ3tOy","author":{"@type":"Person","name":"Antônio Simei","url":"https://daily.dev/terkaspo","image":"https://avatars.githubusercontent.com/u/79973491?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}},{"@type":"Comment","text":"Thanks. This is gold for beginners in Android app publishing 🚀","datePublished":"2026-02-23T10:58:06.885Z","url":"https://daily.dev/posts/WuGDAo6W6#c-M9bhCOIzo","author":{"@type":"Person","name":"Manu Rodriguez Gil","url":"https://daily.dev/manurgdev","image":"https://avatars.githubusercontent.com/u/15105922?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/sources/ezh33lu6a37km1sfscwix","name":"Vladislav Siumbeli"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Vladislav Siumbeli","item":"https://daily.dev/sources/ezh33lu6a37km1sfscwix"},{"@type":"ListItem","position":3,"name":"Deploying my Expo apps to Google Play — lessons learned"}]}
```

