0

I have a build pipeline, that builds up flutter application, for both iOS and android.

For android I have no issues in running below command:

flutter build appbundle --build-number "202312001" --build-name "1.2-feature.2"

So the version published to google play is exactly what I configured it for. But with iOS it's differently Here is a command, not very much different:

flutter build ios --build-number "202312001" --build-name "1.2-feature.2"

On xCode build logs, I;m seeing this one

export FLUTTER_BUILD_NUMBER\=1.2.2

Which is removing all the characters from semantic version I have set. Any ideas how to tackle it?

Some more info: I'm using azure pipeline macOS-12 agent. Then build is distributed to app center. Version in app center for iOS is as well, like above.

Thanks!

0

1 Answer 1

1

Your version can only contain numbers and periods. App Store Connect will ensure that your version numbers only increase, which is why the version must be machine readable. "Feature" is not machine readable.

It looks like the Flutter build process is modifying your version to ensure it complies.

From the documentation

This key is a machine-readable string composed of one to three period-separated integers, such as 10.14.1. The string can only contain numeric characters (0-9) and periods.

Sign up to request clarification or add additional context in comments.

5 Comments

Thanks @Paulw11, but in this case how testers will know if they are using alpha or beta version of the application? We have a case, that our application is build with different configuration - accept and production. App with accept config is being published to testflight Internal testers with accept config. Then with production to external testers. And after positive feedback, we are promoting this version to production. I miss here possibility to define version that is with accept config or is release candidate with some prefix, ie 1.1.0-rc.1. How it should be handled?
TestFlight builds have an orange dot next to their name on the device. You can use any numbering scheme you like, but it has to be numbers. Where I work we have a separate QA app with its own bundle id. This app is never released to the store, it is only available to internal testers. We don't have builds that are sometimes QA and sometimes prod. The QA app is always qa. The prod app is always prod. The QA app is a flavour built from the QA branch. The prod app is also a flavour built from the QA branch. So we merge to QA, build & test that and then trigger a prod build when it is accepted
The prod app can then be tested using TestFlight and released when we are happy. We also have a dev build that is triggered with every merge to the dev branch. This is distributed using firebase app distribution and is only available to devs.
Thanks. That makes sense to divide it.
Because as we will be using git flow. We have at least 3 branches, develop, release/x and master. Distributing develop and release/x with version 1.1.0.1, 1.1.0.2 to different app makes sense, to not mess up the prod application.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.