I'm working on a Flutter app targeting both iOS and Android, and I use Codemagic for my CI.
Since Codemagic doesn't provide any native feature to automatically upload the screenshots to the stores, I want to try to achieve that by using Fastlane, since Fastlane is already installed on Codemagic machines (but any other option is welcomed).
I'm new to Fastlane and I try to init Fastlane for the Android (and same for iOS) part of my Flutter app.
So as per the documentation, I ran fastlane init on my android directory.
But at some point, I need to enter the package name. But since my app has 2 flavors, and therefore 2 package names, I don't know how I should setup Fastlane in this kind of situation.
So how can I properly setup Fastlane for my two flavors (Android and / or iOS)?
Thanks for your help.
Related
I have developed the flutter app and already added Huawei configurations. How I create a release build for Harmoney OS using android studio. Please share the steps
I added configuration files and follow the same steps as creating an android APK. It works for me.
I'm new to flutter and on a phone I have it works and the app runs fine, but I sent the apk to another device and it couldn't be installed, I don't know if it's because of a plugin I'm using that is "speech to speech", since in that plugin I changed the version of min sdk to 21 but the android that I try to install has an android version of 10 that is higher, it seems to me, what would be the cause?
Remember Android no longer accept the app which has not been signed as release,. make sure you are making you are signing the app correctly, Android studio will help you.
The build flavor should be release, and the signature must be created before. But the easiest way is to run the app in profile mode,
flutter run --profile
Profile mode run as release mode but doesn't require to be manually signed.
There could be other reasons but do you know that the Flutter app cannot be installed on x86 Android
Flutter does not currently support building for x86 Android
I need to deploy my app ad-hoc and to the play store, currently in my CI flow I do this for every PR with Fastlane:
sh("flutter build ios")
build_app(export_method: method)
Fastlane: tool to automate the build/test/deploy steps.
build_app: is a plugin from fastlane to build iOS, and I use it because I can declare if the build is ad-hoc or app-store.
I was worried that I'm doing 2 times the same thing, first time I build with flutter and then with native XCode.
I have two questions:
Can I build the flutter iOS build for each method from a flutter command?
What is the difference of build the iOS from flutter instead of running it from XCode like a total native iOS app?
The answer is to use update_code_signing_settings with profile name for each export method so the build configure itself with the profile:
# method could be 'ad-hoc' or app-store
update_code_signing_settings(profile_name: "My export method profile")
build_app(export_method: method)
I'm working with Flutter to make a Mobile App using the stable Flutter SDK release. But I also want to try Flutter Desktop and Flutter Web that are not part of the Flutter stable channel yet, but are present on the Flutter dev channel.
My question is... How can I try Flutter Desktop and Flutter Web without override the Flutter stable release on my machine?
You'll need to setup alias to switch between different environments easily.
See here a detailed article for that.
I found this Dart package called Flutter Version Management that does exactly what I want.
As the docs says:
Flutter Version Management: A simple cli to manage Flutter SDK versions.
Features:
Configure and use Flutter SDK version per project
Ability to install and cache multiple Flutter SDK Versions
Fast switch between Flutter channels & versions
Dynamic SDK paths for IDE debugging support.
Version FVM config with a project for consistency across teams and CI environments.
Set global Flutter version across projects
https://github.com/leoafarias/fvm
Now I just need to add FVM_HOME/default/bin to the PATH and FVM will take care of everything...
Two solutions
Put the installation files in two different directories one with stable and the other dev and add one of them to the path then you can change the path variable when needed to use the other channel.
Put the flutter repository file in two different directories one with stable and the other with dev then,
add the first installation to the path then add an alias to point to the second installation directory.
I am new in Flutter Development and i have developed an app with Webview.
I have upload an apk on Google Play Store that is accepted but for App Store it shows some error.
Please find below error,
ITMS-90338: Non-public API usage - The app references non-public
symbols in Frameworks/Flutter.framework/Flutter: _ptrace. If method
names in your source code match the private Apple APIs listed above,
altering your method names will help prevent this app from being
flagged in future submissions. In addition, note that one or more of
the above APIs may be located in a static library that was included
with your app. If so, they must be removed.
For this error i have search many things but i am unable found any solution for this.
So please any one who is capable of solving this please help me to resolve this.
Thanks & Regards,
This happens if you are submitting the debug version to the AppStore, Flutter team recommends you to first run
flutter build ios --release
before archiving your app in Xcode.
First make sure you are submitting a release build with flutter build ios --release
If that's not the problem here you could find similar problems related:
flutter build ios --release may use a debug Flutter.framework by mistake
In my case, I updated my Mac to 10.15(Catalina), while the update my cocoapods installation wasn't there. So whenever I try to upload using the command flutter build ios --release and archiving it. Apple sent me the same email you received.
You can install cocoapods using the following commands.
step 1 Open terminal
step 2 command: sudo gem install cocoapods
step 3 set your project path on the terminal.
step 4 command: pod init
I hope it helps.