Docs regarding scheme string constraints missing

After some debugging I released that the scheme can not contain dot (.)

A little mention in the docs and the JSDoc would have been helpful.

Hi @norfeldtconsulting,

Thanks for bringing this up. I see this sounds like a tripping point. We’ll update make sure to update the documentation that would help to avoid situations like this in the future.

Thank you for feedback!

Hi @manhimself ,

The usage of dots in scheme does however not seem to be the root cause.

It seems like it always happens when the scheme (in app.config) ex.: myapp.development matches the scheme when I run yarn start --scheme myapp.develoment.

But If is change the app.config scheme: 'myappasdasdadasd', and do yarn start --scheme myapp.develoment. Then it works :thinking:

I have updated the stackoverflow question with much more details. Is there any chance you can help me out understanding this behaviour?

Thanks for adding the steps. Let me check them out and get back to you.

I added a little update to SO. Think it works now :man_shrugging:

After further investigating I have come to the conclusion that it’s because EAS build the simulator unexpected (to me),

app.json

    slug: "myapp-slug",
    scheme: "myapp",

eas.json

"build": {
    "simulator": { <--- builds with scheme "exp+myapp-slug"
      "channel": "staging", (this might be ignored, since its a developmentClient)
      "ios": {
        "simulator": true
      },
      "android": {
        "buildType": "apk"
      },
      "developmentClient": true,
      "env": {
        "APP_ENVIRONMENT": "development"
      }
    },
    "dev-client": { <--- builds with scheme "myapp"
      "android": {
        "buildType": "apk"
      },
      "developmentClient": true,
      "distribution": "internal",
      "env": {
        "APP_ENVIRONMENT": "development"
      }
    },
}

Okay found a way to view the scheme of the build dev client

Follow the below steps to get URL schemas

  • Download the .ipa from iTunes using computer
  • Copy the application to desktop
  • Rename it to *.zip
  • Extract the *.zip
  • Open the Payload folder
  • Right click on the application and select ‘Show Package Contents’ then double-click the ‘Info.plist’ file
  • Then check ‘URL types’ > ‘Item 0’ > ‘URL Schemes’

this revealed that multiples are set from the

  • scheme
  • bundleIdentifier
  • "exp+<slug>"

Since I have the bundleIdentifier being dynamic com.myapp.development that allows me to start the dev client and not the staging app from test flight (com.myapp.staging).

$ npx expo start --dev-client -c --scheme com.myapp.development