Distributing Flutter with Fabric to beta testers - android

My company is trying out Flutter to create mobile applications and I'm currently in the process of trying to distribute both iOS and Android beta builds through Fabric.
The flutter plugin repo doesn't have any Fabric plugins and I can't seem to find any guides at the flutter home page nor elsewhere online on how to achieve this.
I had planned to focus first on iOS since I'm an iOS developer and figure android out later and use fastlane-match to manage my codesigning on iOS. What I've come up with so far is that I'm gonna try to create post-build-scripts discussed in this fabric guide and thus upload my builds manually after flutter builds and creates an IPA file. I'd say this is not optimal since it differs from the rest of our build setup, as in the fabric kit is not directly embedded in to our iOS project.
So I'm wondering if anybody has any experience in distributing flutter apps with Fabric and if you had any tips on how to achieve this, preferably with Fabric integrated into my iOS and android project respectively.
Edit:
For anybody interested in the solution, I ended up adding the Fabric and Crashlytics cocoapod into the generated cocoapod file by flutter and installing them via pod install. I'm not sure if that cocoapod file will get overwritten in the future as my experience with Flutter is quite limited.
After that I was able to import both Fabric and Crashlytics into my AppDelegate and Initializing the Fabric kit from there just like in a normal iOS project, as well as adding the runscript phase and plist entries as recommended by the fabric iOS install guide.
I also set the project up to use manual code signing and managed the codesigning with fastlane match.
After that I created a fastlane script that uploads to crashyltics. The build script I ended up with is:
flutter build ios --release --no-codesign
cd ios
fastlane ios beta
where ios references to my platform and beta is the name of the lane that exectues the fabric upload. The beta lane first builds with gym (to sign the IPA file) and then that signed IPA file is uploaded to crashlytics.

Fabric is now integrated to Firebase. It was deprecated after March 31, 2020. With this, you can now refer to Firebase App Distribution as an official documentation.
Flutter also has a bunch of documentation regarding distribution of Flutter applications to beta testers.
Continuous delivery with Flutter
Follow continuous delivery best practices with Flutter to make sure
your application is delivered to your beta testers and validated on a
frequent basis without resorting to manual workflows.
You can also check this blog for some useful tips and more information on Deploying Flutter apps to Firebase App Distribution using Fastlane:
Deploying Flutter app to Firebase App Distribution using Fastlane
In this article, I will be showing how to set up and deploy your
Flutter app to Firebase App Distribution with the help of
fastlane.

Related

Fabric Beta API Add Testers

Fabric Beta tool is very helpfull for app development. But now I would like to manage users from external app.
This means to be able at least Add Tester and Remove Testers. Did some work with such Fabric API?
I know about distribution plugins, but we would like to split tester administration from new release distribution.
Fabric/Firebaser here -
Fabric doesn't have a public API for doing this on the fly in an external way or in your own app. The most versatile ways to add testers would be our plugin with fastlane or distributing via Gradle commands, but you've already noted that you know about the distribution plugins.

AppCenter's responsibility

I'm trying to figure out the CI portion that provided by AppCenter. I've implemented CodePush for my app and please correct me if my understanding is wrong.
We build the native android app and generate a signed apk.
Release the generated signed apk to playstore
execute command to upload bundle appcenter codepush release-react -a <owner>/<android-app> -d Production
The above are generally the way I understand CodePush and I've tested and working fine.
Now I've noticed that we can integrate our github project branch to appcenter, and whenever there is a git push, AppCenter will build it automatically and we can configure to release to playstore automatically.
Now the part I don't understand is, is this CI auto build by AppCenter actually nothing to do with CodePush?
If now my situation is only having updates on JS code side, actually when I git-push to repo, there isn't a need to auto-release to playstore right?
Correct, Build and Push are separate services in App Center. Build does the binary build of your app while CodePush simply updates the JavaScript and related code in an Apache Cordova or React Native. They're separate workflows and it seems you want to trigger them separate ways.
If you're using CodePush, you can't also use Build to auto build and deploy the native app to devices, you're duplicating work. I'm not an expert, but you probably want to manually deploy your builds whenever you make changes to the native side of the app (which should be rarely, right?) - like when there's major updates to the native framework or new plugins added to the native app

How to build a react-native app for sharing for test without having local dependency

I am new to react-native app development. I wanted to know how can a developed app be shared between other developers without having a local dependency. Is an apple developer account needed for a test build to be shared in ios as well? How can the test build be created?. I wanted the build to be created and downloaded on any ios device or android for testing purpose and without having depending any of the local code changes.So the build downloaded should not get updated after any code change done after that.
Is there an easy way to do it?
To share a release build for Android please follow this guide Generating Signed APK.
But for iOS you gonna need a Apple Developer account, I don't know the whole process exactly.

Hockeyapp distribution with daily build

I have developed an android application and it has been deployed on the server side, and apk file generated and I want to automate the steps with hockeyapp distribution. When the .apk has been built, I want to send it to the testers.
My question is how hockeyapp could be automated with daily build? Is there any guideline or tutorial?
Quick googling for a 'gradle hockeyapp plugin' brought up this.
Another option (imho preferred one) is to have a build server like Jenkins do your builds (usually connected to your git or other vcs), there's plugins for those too that will upload builds to hockeyapp automatically.

How do I submit a react-native android app to the playstore?

I can't find this in any of the facebook documentation. Has anyone submitted an android app they built with react native yet?
I found this gist which outlines the process of creating a release APK file (credit to the author, marty-wang).
Once you have the release package, you should be able to upload the APK manually through the play store.
Edit 2016-06-01:
The most up to date way to handle RN builds for Android and iOS would be using Fastlane - the tooling abstracts building and uploading to both the Play store, as well as to the iOS App store/Testflight. Also allows for generation of screenshots and managing store metadata in your code base. Danial Banck has a great write up of how to do this that I personally have used myself and can highly recommend.

Categories

Resources