3DX Phone

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.

You can apply and submit now. Community apps go live when the App Store opens for them, soon after the October 15 launch.

  1. 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; status shows 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 status
  2. Pack and submit

    pack checks your 3dx-app.json, permissions, file types, paths and sizes, and prints the warnings a reviewer will see. submit uploads 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-app
  3. Automatic 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 and localStorage don't block the upload; they become notes for the reviewer.

  4. 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.

  5. 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, pack and submit again; after a rejection the same version number is fine.

  6. Updates

    Raise version in 3dx-app.json, then pack and submit. 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.0

The 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.