Not an easy topic to tackle ... I've been attempting to figure it out and make a good set of config files for over a week... I've made a few false-breakthroughs... but it is always - yet another problem.
I've been introduced to Fastlane by the good people at Skip.tools. It is not been a good learning path. So this weekend I went searching YouTube... found a few people doing the one-off video walk through of Fastlane. I've read most of their Doc Site. So I don't need much of what the first 45 min. of video covers...
One VERY promissing channel iLane has 5 very good lessons (4 years old) but then stops ... before covering the series of how to Fastlane.
I need a bit more than found in the Fastlane Docs. The videos above give you a great intro - and why the tools exist. The issue I have is in configuring them to actually work.
I love one of the MAIN reasons for Fastlane. Putting all the build pipeline configuration files inside a REPO - along with the source files. That's SMART. I guess it turns out that so many of our modern IDEs want to solve some of these issues (in there corner of the world). Fastlane is an OpenSource Google project so they have attempted to resolve this concern for both the iOS and Android ecosystems.
Getting your IDE to turn lose of the control of building - bundling - signing - distribution etc. is getting better... but it's a private knowledge park.
Setting up Fastlane - it's NOT this simple.
Fastlane: (major tool suite) Produce, Cert, Sigh, Match, Scan, Gym, Pilot, Snapshot, Deliver, Frameit
See all those tools (words with colored circles) in that 7 step process flow diagram. Well that's only the MAJOR tools... and each has a unique set of configuration files.
The tooling is written in Ruby and the configuration files are plan old Ruby code (well I'm not a Ruby Dev... but I can hack it). Up until the point of figuring out all the errors it throws... nice and wordy... sometimes points right to the problem. Knowing when to suround a text string with white space in quotes was a issue. One config file is NOT Ruby code (AppStore.xcconfig so the rules change here).
$> fastlane init
The initalization of Fastlane leaves you with so many questions - it does NOT configure each of these tools. You are only given 2 Actions ( assemble, & release ). The init action really could do MUCH MORE to make usage for the newbie so much easier. Think about it... this is a suite of tools designed to make storing all that configuration stuff in the Repo... but it doesn't give you any of the config - OUCH!
I'm not use to having to Open Android-Studio and launch a Pixel device to get an Xcode build to run.... but this is a DUAL Platform world... So get use to it!
The hard way to learn this is to get so frustrated... and after a while the error messages are NOT helpful, that you quit - give up and start all over again with HelloWorld.
Here's what may clue you into the lack of Android resources running...
Now we have a compiling/running Dual Platform Hello World. The key to happy developer vibes... KEEP It Running!
I learned the key to happiness from James Greening. Take very small steps and keep your code running. In a dual platform env... that is double the work; but it pays off over time. Trust me on this, Skipper!