Standalone iOS app builded with turtle-cli fails

Hello everyone.

I’m using turtle-cli with local server for building my standalone apps. Everything goes right on Android but on iOS i got this error:

Does the server have to be running for the app to work?
Is there a way to avoid this?

I’m using:
turtle-cli v0.20.4
Expo diagnostics:

Expo CLI 4.0.15 environment info:
    System:
      OS: macOS 10.15.7
      Shell: 5.7.1 - /bin/zsh
    Binaries:
      Node: 14.5.0 - ~/.nvm/versions/node/v14.5.0/bin/node
      npm: 6.14.9 - ~/.nvm/versions/node/v14.5.0/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    Managers:
      CocoaPods: 1.9.1 - /usr/local/bin/pod
    SDKs:
      iOS SDK:
        Platforms: iOS 14.1, DriverKit 19.0, macOS 10.15, tvOS 14.0, watchOS 7.0
      Android SDK:
        API Levels: 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
        Build Tools: 28.0.3, 29.0.2, 29.0.3, 30.0.0, 30.0.2
        System Images: android-21 | Google APIs Intel x86 Atom_64, android-24 | Google Play Intel x86 Atom, android-29 | Intel x86 Atom, android-29 | Google Play Intel x86 Atom, android-30 | Google APIs Intel x86 Atom
    IDEs:
      Android Studio: 3.6 AI-192.7142.36.36.6241897
      Xcode: 12.1/12A7403 - /usr/bin/xcodebuild
    npmPackages:
      expo: ^39.0.0 => 39.0.3 
      react: 16.13.1 => 16.13.1 
      react-native: https://github.com/expo/react-native/archive/sdk-39.0.0.tar.gz => 0.63.2 
    npmGlobalPackages:
      expo-cli: 4.0.15
    Expo Workflow: managed

Hey @jpcoder, just for clarification are you hosting your JS bundle on your own server or are you making use of expo publish to send the JS bundle to the CDN? Either way, as long as you have published or made your own server active and it’s serving the JS bundle, your iOS binary should pick it up.

Cheers,
Adam

Thanks for your reply @adamjnav.

I’m hosting on my own local server, actually i followed this post: Build Standalone Expo .apk and .ipa with Turtle CLI.

The thing is, android works without server running, but iOS doesn’t.

According to this section updates.enabled, disabling updates should force you to use the code bundled on the device.

{
  "expo": {
    ...
    "updates": {
      "enabled": false
    },
    ...
  }
}

I have disabled updates and still the app on iOS keeps trying to connect to the server. Is this a bug? Am I missing something?

can you give more context on what the request you are observing is, how you’re observing it, and whether your app is updating or not?

@brents

I don’t want to update the application. I have disabled ota updates in an attempt to avoid that request, but it has not worked. I just want to build the iOS app without using the expo servers, that is why I am using turtle-cli directly with a local server as I mentioned before

that’s fine but you didn’t answer my question at all

can you give more context on what the request you are observing is, how you’re observing it, and whether your app is updating or not?

i am trying to understand what the request you are observing is and how you are testing for it. and lastly, whether your app has the desired behavior of not updating. this allows me to understand:

  1. whether you get at least in part the desired behavior of your app not updating
  2. what the network request actually is, its contents, and where its coming from

Sorry, but what do you mean with observing?

The error appears as soon as the app is launched and I don’t make that request.

Did you see the image above?

oh i see the original image now. i agree i would expect that when updates.enabled is false that we would not be attempting to connect to the manifest endpoint, i think it is worth posting an issue to Issues · expo/expo · GitHub explaining this use case, or opening a pull request to expo-updates to fix it.

you can alternatively eject your project and build it, that should work fine for your purposes.

Thanks for your replies. I think I will open a new issue.