A Package ID uniquely identifies a mobile app on the stores. Android calls it applicationId, iOS calls it Bundle Identifier. Use the same ID on both platforms.
com.<company>.<app>
Lowercase reverse-DNS notation. Example: com.acmecorp.fitness
To be valid on both Android and iOS, use only:
a–z)0–9).) — as segment separator onlyAvoid these characters (each is rejected by one platform):
| Character | Android | iOS |
|---|---|---|
Underscore _ | ✅ Allowed | ❌ Rejected |
Hyphen - | ❌ Rejected | ✅ Allowed |
Other rules:
com.company.app)com.apple., com.android., com.example.com.acmecorp.fitness Production
com.acmecorp.fitness.staging Staging
com.acmecorp.fitness.dev Development
| Valid (both platforms) | Invalid | Reason |
|---|---|---|
com.acmecorp.fitness | com.acme_corp.fitness | Underscore — iOS rejects |
vn.companyname.appname | com.acme-corp.fitness | Hyphen — Android rejects |
com.startup.todo | com.123app.mobile | Segment starts with number |
io.brandname.app | com.MyApp.Todo | Uppercase letters |
Tip: If your domain contains a hyphen (e.g. my-app.com), simply remove it: use com.myapp.appname.
The Package ID cannot be changed after the app is published. Changing it requires creating a new app — losing all users, reviews, rankings, and history. Choose carefully from the start.
Table of Contents