Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--no-publish seems faulty - it delivers a previous build #2012

Closed
davidwadge opened this issue Jul 19, 2018 · 5 comments
Closed

--no-publish seems faulty - it delivers a previous build #2012

davidwadge opened this issue Jul 19, 2018 · 5 comments

Comments

@davidwadge
Copy link

davidwadge commented Jul 19, 2018

When attempting to build the app with --no-publish it gives me a url of a previous build. Any new changes are discarded and it seems to use the last published version.

We need to be able to access the .apk and .ipa for a build without using Expo's distribution service - i.e. we want our developers to follow the traditional path of using TestFlight or Google Play Console.

Is this a bug? I would expect --no-publish to give me the .apk or .ipa with the latest updates, not a previous version.

Environment

Environment:
OS: macOS High Sierra 10.13.3
Node: 6.9.1
Yarn: 1.2.0
npm: 4.6.1
Watchman: 4.9.0
Xcode: Xcode 9.4.1 Build version 9F2000
Android Studio: 3.1 AI-173.4720617

Packages: (wanted => installed)
expo: ^28.0.0 => 28.0.0
react: 16.0.0 => 16.0.0
react-native: https://github.com/expo/react-native/archive/sdk-28.0.0.tar.gz => 0.55.4

Steps to Reproduce

  1. Make any change to your app (e.g. update the version in app.json)
  2. Run this command exp build:android --release-channel staging --no-publish
  3. Download the apk presented on screen after the build, and observe the lack of updates.

Expected Behaviour

I would expect it to produce an .apk with the latest changes.

Actual Behaviour

It produced a previous published build.

@ccheever
Copy link
Contributor

I believe this is the expected behavior with the --no-publish option since it takes the latest published version and bundles that into the app.

@davidwadge
Copy link
Author

How am I supposed to get hold of the build binary without publishing it directly to a user's handset then?

@terribleben
Copy link
Contributor

Sorry for the confusion. It sounds like you might want to use a release channel for your TestFlight builds and a different release channel for your production builds.

An alternative workflow some people to use is to keep a separate release channel for each major native version.

--no-publish is behaving as expected, which is not to publish any of your changes anywhere that they could be included in any build. This flag is primarily intended for people who need to run repeated builds with no JS changes (i.e. testing a credentials change, or some other build-related thing) and who don't want to wait for the bundler to publish their JS every time.

@terribleben
Copy link
Contributor

Another thing you might be interested in knowing about: For a particular build, you can totally disable over-the-air updates in that binary by including updates: { enabled: false } in app.json. Changing this value won't affect any native builds which are already live in a store.

@davidwadge
Copy link
Author

That's exactly what I wanted, thanks :.)

@lock lock bot added the outdated label Jun 14, 2019
@lock lock bot locked and limited conversation to collaborators Jun 14, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants