From your folder to the App Store.
Every app in the 3DX Phone App Store is reviewed by a person before players can install it. Here is the whole way, from a developer account to an update.
Apply for a developer account
Sign in with your DX-ID and tell us who you are and what you want to build. The 3DX Phone team approves accounts by hand;
statusshows when yours is ready.node 3dx-app.mjs login node 3dx-app.mjs apply --name "Your Studio" --email you@example.com --about "What you want to build" node 3dx-app.mjs statusPack and submit
packchecks your3dx-app.json, permissions, file types, paths and sizes, and prints the warnings a reviewer will see.submituploads that version. Your first accepted version reserves the app id for you.node 3dx-app.mjs pack my-app node 3dx-app.mjs submit my-appAutomatic checks
A broken package is refused at once: format, manifest, file types, paths or sizes. Inline scripts, network hosts you didn't declare,
eval, unreadable code, tracking andlocalStoragedon't block the upload; they become notes for the reviewer.A person tests it
Every app is tried by hand in the store's test lab: a phone-sized sandbox with the phone's security rules, which shows every call to the phone, every blocked request and every script error. There is no fixed turnaround; you see the status at any time.
Approved, or a reason
Approval signs your package and puts it in the App Store, and phones see it within minutes. A rejection always comes with the reviewer's note in
status. Fix it,packandsubmitagain; after a rejection the same version number is fine.Updates
Raise
versionin3dx-app.json, thenpackandsubmit. Every update is reviewed the same way; players get it once it's approved.
Taking a version down
You can pull your own version at any time: one in review leaves the queue, a live one leaves the App Store and phones fall back to your previous approved version.
node 3dx-app.mjs withdraw my-app --version 1.0.0The 3DX Phone team can also take a version down or suspend an account; a suspended developer's apps are switched off on every phone.
Common reasons for a rejection
- Permissions it doesn't need
- Ask only for what the app uses; players see the list before installing.
- Unexplained network hosts
- Every network:<host> should be obvious from the listing or the app.
- Code nobody can read
- Minified or obfuscated code with no readable source can't be reviewed.
- Tracking
- No analytics or tracking scripts, and no mining.
- Broken or empty screens
- The app has to work in the test lab from its first screen.
- Content against the rules
- The store's content rules apply to the app and its listing.
Limits
- Files per app
- 200
- Size per file
- 10 MB
- Size per app
- 25 MB
- Accepted uploads per day
- 10
- Versions in review per app
- 3
- Storage per app on the phone
- 1 MB of JSON
File types: html, js, mjs, css, json, svg, png, jpg, gif, webp, woff, woff2, mp3, ogg, wav.
Questions
Start with the developer kit and the reference. For anything else, ask in the 3DX Phone Discord.
