
September 12, 2026
13 min read
By Kokil Thapa | Last reviewed: September 2026
Your product works in staging, but users still ask for an installable app. To publish to the App Store and Play Store, you need more than code—you need developer accounts, signed builds, store listings, privacy disclosures, and a backend that survives real traffic. On client projects I often handle the REST API and Laravel backend while a mobile partner ships the native shell. That split is common for Nepal SMBs with limited budgets. This guide covers both stores end to end, plus when a PWA or hybrid wrapper is the smarter first move.
What do you need before you publish to the App Store and Play Store?
Store submission starts with decisions, not Xcode or Android Studio. Pick your delivery model first. A fully native app gives the best device access. A hybrid app wraps a WebView around your web UI. A PWA skips the stores entirely but loses some discovery and OS integration.
I've seen teams burn weeks on store paperwork while the API still returns 500 errors on slow networks. Fix the backend before you polish screenshots. Your mobile client will call the same endpoints under worse conditions than your browser tests.
Developer accounts and fees
Apple requires an active Apple Developer Program membership. It costs USD 99 per year. Google Play uses a one-time USD 25 registration fee via Google Play Console. For Nepal-based businesses, pay with an international card. Budget roughly Rs 13,000/year for Apple alone.
Apple needs a D-U-N-S number for organisation accounts. Individual accounts are faster for solo founders. Google accepts personal or business accounts with fewer upfront hurdles.
Backend and API readiness
Most apps I support are thin clients over a Laravel or WordPress API. Before store submission, confirm:
- HTTPS everywhere with valid TLS certificates
- Token auth (Sanctum, OAuth, or JWT) with refresh flows
- Pagination and rate limits on list endpoints
- Versioned API paths such as
/api/v1/orders - Push notification endpoints if you plan remote alerts
On booking systems like Adventure Third Pole Trek, mobile users expect offline-tolerant forms and fast search. Your API must handle spotty mobile networks. Test with load testing on staging before reviewers and early users hit production.
Legal and privacy assets
Both stores require a public privacy policy URL. Nepal-facing apps should also respect local data rules covered in our data privacy guide for web apps. List every third party that receives user data—analytics, crash reporting, payment gateways like eSewa or Khalti.
How do you submit an app to the Apple App Store?
Apple review is stricter than Google. Plan for rejections on metadata, permissions, or incomplete login flows. Treat review feedback as a checklist, not a surprise.
Build and sign your iOS release
Create an App ID, provisioning profile, and distribution certificate in Apple Developer portal. In Xcode, set the bundle identifier to match. Bump CFBundleShortVersionString (marketing version) and CFBundleVersion (build number) for every upload.
# Example: increment build in Info.plist via agvtool
agvtool next-version -all
agvtool new-marketing-version 2.1.0
# Archive from Xcode: Product → Archive
# Or xcodebuild for CI:
xcodebuild -workspace MyApp.xcworkspace \
-scheme MyApp \
-configuration Release \
-archivePath build/MyApp.xcarchive archive Upload through Xcode Organizer or xcrun altool. CI pipelines often use Fastlane deliver to push builds and metadata together.
Complete App Store Connect listing
In App Store Connect, create the app record with name, primary language, bundle ID, and SKU. Fill in:
- App Privacy questionnaire—declare data collected and linked to the user
- Screenshots for required device sizes (6.7", 6.5", iPad if universal)
- Description, keywords, support URL, marketing URL
- App Review Information with a working demo login if your app gates content
- Export compliance answers for encryption
Apple rejects apps that hide features behind logins without test credentials. Provide a read-only demo account. Mention server dependencies in the notes field.
TestFlight then production review
Upload builds appear in TestFlight within 15–30 minutes. Internal testers see builds immediately. External testers need a brief beta review. Run one external beta cycle before your first production submission.
When ready, select the build under App Store → iOS App → Version, answer the content-rights questions, and submit for review. Most first submissions take one to three business days.
How do you publish an app on Google Play Store?
Google Play uses a staged rollout model. You can ship internal tests in hours. Production review is usually faster than Apple, but policy strikes are cumulative.
Create the app and signing key
In Play Console, create an app, choose free or paid, and accept declarations. Generate an upload key and register it. Google Play App Signing is mandatory for new apps—Google holds the app signing key; you keep the upload key.
# Generate upload keystore (store securely — loss blocks updates)
keytool -genkey -v -keystore upload-keystore.jks \
-keyalg RSA -keysize 2048 -validity 10000 \
-alias upload
# Build Android App Bundle (required for new apps)
./gradlew bundleRelease
# Output: app/build/outputs/bundle/release/app-release.aab Never commit keystores to Git. Store passwords in your CI secret manager. On client projects I document keystore location in an encrypted vault—not in Slack.
Store listing and content rating
Complete the main store listing: short description (80 chars), full description (4000 chars), icon (512×512), feature graphic (1024×500), and phone screenshots. Add a privacy policy link matching your iOS policy.
Complete the content rating questionnaire via IARC. Select target countries. For Nepal, include NP unless you have licensing reasons to exclude it.
Release tracks and review
Google offers internal, closed, open, and production tracks. A sensible first launch path:
- Internal testing with up to 100 testers
- Closed testing with real users or client staff
- Production at 5–10% staged rollout
- Increase to 100% after crash-free sessions look stable
First production submissions often pass within 24–48 hours. Updates to the same app are usually quicker unless you change permissions or target API level.
Native app vs PWA vs hybrid: which path fits your project?
Not every product needs store presence on day one. I regularly recommend a progressive web app first when the client needs mobile reach without Rs 500,000+ native budgets. Stores add discovery, push on iOS (with limits), and payment rails—but also 30% fees on digital goods and ongoing review cycles.
| Criteria | Native (Swift/Kotlin) | Hybrid (Capacitor, Flutter WebView) | PWA |
|---|---|---|---|
| Time to first release | 3–6 months typical | 4–10 weeks | 1–4 weeks |
| Store submission required | Yes | Yes | No |
| Offline support | Excellent | Moderate | Good with service workers |
| Push notifications (iOS) | Full APNs | Full via plugins | Limited until installed to home screen |
| Backend fit for Laravel shops | Sanctum/Passport API | Same API + deep links | Same origin or API + CORS |
| Annual store cost | ~USD 124 both stores | ~USD 124 both stores | Rs 0 store fees |
For WooCommerce storefronts, read the WooCommerce REST API guide before wrapping the shop in a hybrid shell. Product images, cart state, and checkout redirects need careful handling. Payment gateways often require WebView or SFSafariViewController flows that store reviewers scrutinise.
Custom software projects I scope usually start with API contracts and auth. Mobile UI comes second. That order prevents rework when Apple asks for account deletion or Google flags missing Data safety declarations.
What backend work must finish before store launch?
Store approval means nothing if login fails under load. Treat mobile as a hostile client—slow networks, old OS versions, and aggressive battery savers.
API design for mobile clients
Mobile apps cache aggressively. Design idempotent writes and clear error codes. Return structured JSON errors, not HTML stack traces.
// Laravel 13 API route example — versioned, paginated
Route::prefix('api/v1')->middleware('auth:sanctum')->group(function () {
Route::get('/bookings', [BookingController::class, 'index']);
Route::post('/bookings', [BookingController::class, 'store'])
->middleware('throttle:60,1');
});
// Response shape mobile clients expect
{
"data": [...],
"meta": { "current_page": 1, "last_page": 5 },
"links": { "next": "https://api.example.com/api/v1/bookings?page=2" }
} Validate payloads with Form Requests. Never trust client-side validation alone. Use JSON formatting tools during contract reviews with your mobile developer.
Security, auth, and compliance
Follow mobile app security basics: certificate pinning where appropriate, secure token storage on device, and short-lived access tokens. Implement account deletion if you allow registration—Apple requires it for apps that support account creation.
Nepali-language apps need proper Unicode handling on API responses. Test with our Nepali Unicode converter samples to catch encoding bugs before review.
Push notifications and deep links
If your product depends on alerts—booking confirmations, order updates—plan APNs and Firebase Cloud Messaging early. Backend jobs should queue notification payloads, not send synchronously during HTTP requests. See the push notifications guide for Laravel queue patterns.
Deep links (Universal Links on iOS, App Links on Android) need hosted apple-app-site-association and assetlinks.json files on your domain. Configure them on the same server that hosts your API docs.
What causes App Store and Play Store rejections?
Rejections delay launches and burn stakeholder trust. Most are preventable with a pre-submission checklist.
Apple-specific rejection patterns
- Guideline 2.1 — App Completeness: Crashes, broken links, or empty screens during review
- Guideline 4.2 — Minimum Functionality: Apps that are mostly repackaged websites without native value
- Guideline 5.1.1 — Privacy: Missing purpose strings in Info.plist for camera, location, or photos
- Guideline 3.1.1 — In-App Purchase: Digital goods sold outside Apple's IAP system
Hybrid apps face 4.2 scrutiny often. Add meaningful native features—biometric login, offline cache, or widgets—before submission.
Google Play policy hits
- Data safety form does not match actual SDK behaviour
- Target API level below current Play requirements
- Misleading store listing versus in-app experience
- Background location without clear user benefit
Run QA and optimisation passes on real devices, not only emulators. Budget Android fragmentation is worse in Nepal's used-phone market than in Western test labs.
Launch checklist both stores share
- Privacy policy live at a stable HTTPS URL
- Terms of service linked from app settings
- Working customer support email or form
- Analytics and crash reporting disclosed in privacy forms
- Version numbering scheme documented for the team
- Rollback plan if a bad build reaches production
- Post-launch monitoring for API 5xx spikes
Plan research upfront with planning and research services if stakeholders disagree on native versus PWA. Changing direction after store assets are built wastes design and copy work.
Key Takeaways
- Enroll in Apple Developer Program (USD 99/year) and Google Play Console (USD 25 one-time) before you publish to the App Store and Play Store.
- Ship a stable, versioned API with auth, pagination, and privacy-compliant data handling before you submit store builds.
- Use TestFlight and Play internal tracks for at least one beta cycle—reviewers and users should not find your first crash.
- Provide demo credentials, a live privacy policy, and accurate Data safety or App Privacy answers to avoid preventable rejections.
- Consider a PWA or hybrid path first if budget is tight; native store apps earn their cost through UX and device integration.
- Stage Google Play rollouts at 5–10% and watch crash-free rates before full release.
People Also Ask
How long does it take to publish to the App Store and Play Store?
Account setup takes one to three days if Apple organisation verification is required. First Google Play production review often completes within 24–48 hours. Apple App Store review typically takes one to three business days. Subsequent updates are usually faster unless you change permissions, pricing, or encryption declarations.
Do I need separate apps for iOS and Android?
Yes for fully native apps—you maintain Swift or Objective-C for iOS and Kotlin or Java for Android. Cross-platform frameworks like Flutter or React Native produce one codebase with two store binaries. Hybrid tools like Capacitor wrap a single web UI. Your Laravel or WordPress API stays shared across all approaches.
Can I publish a web app without the app stores?
Yes. A progressive web app installs from the browser and skips store review entirely. You lose store search discovery and face iOS push limitations. Many Nepal SMBs start with a PWA, then add store apps once revenue justifies USD 124 in annual fees plus development cost.
What happens if my app gets rejected?
Both stores send a reason code and reviewer notes. Fix the issue, increment the build number, and resubmit. Apple allows replying in App Store Connect Resolution Center if you disagree. Google Play offers an appeal form for policy disputes. Document each rejection—patterns repeat across updates.
Ship your mobile product with the backend done right
Store submission is the last mile, not the whole journey. The teams that launch cleanly align mobile builds with a tested API, honest privacy disclosures, and realistic beta feedback. Whether you go native, hybrid, or PWA first, the backend patterns are the same ones I use on production Laravel and eCommerce systems. If you need help scoping the API, auth, and deployment side before you publish to the App Store and Play Store, review our enterprise application development and mobile-ready eCommerce work, then contact us to talk through your release plan.
Frequently Asked Questions
0 Comments
Leave a comment
Your email is not published. Comments appear once they have been read. Sign in to have your details filled in.

