Hi, this is the Daily Overpass, my name is Eric and I make apps!
Now today I wanna talk about automating your app deployment with fastlane!
Ok, so today I wanna talk about something that you might find really interesting or
you might find very boring and technical!
I find it fascinating!
So, one of the things that I spend a lot of time doing is setting up apps for iTunes and
Google Play because we have a lot and a lot of stuff goes out.
Whether it's for ourselves or for clients, I know my way around the iTunes connect interface.
I did a video about this last month where I showed how to deploy an iPhone app, so actually
going through to the dev centre and setting up the certificate, downloading the provisioning
profile, going into iTunes connect, setting that up, all that kind of stuff, which is
really really tedious!
This weekend I had to resize a bunch of screenshots because we were releasing a new version of
Ear Spy and because it's been so long since it's been updated on iOS, it didn't have any
iPad pro screenshots.
And because we had it localised into 19 different languages, we're talking about 80 screenshots,
and I thought that's just gonna take forever to reproduce those.
And I thought , maybe I'll just scale up the ones that I have, I know you're not supposed
to scale any images up but it's gonna save...rather than go through and getting all those images
done again, which took forever the first time, I wish there was a way I could just download
all of my images and then just resize them and then upload them again!
So, I started going through and right-clicking and save as, and then I thought, I'll just
check to see if there's a tool that does this.
And of course while I was searching I found fastlane tools, which is a product that I've
seen before.
My developer, Calvin, told me about it before, but it looked like it was more for continuous
integration so I never paid much attention to it, and this weekend I started using it
and it is so cool!
Have a look at my screen here.
For those of you who do iOS build and also for Google Play it's really useful.
So I'm gonna show you how I used it and some of the tools I think are really cool.
Have a look at my screen.
Now this is the website here, it's called fastlane.tools, and it's got 6 million developer
hours saved, which I believe actually.
It's like a whole suite of tools here.
If I show you, most of them are for iOS, so you've got this one deliver, snapshot, frameit...Now
some of these are more for native developers, so one of the reasons I didn't pay attention
to this before is because a lot of the development we do is corona sdk, it's ionic, it's other
frameworks that's not the native code.
S, we're not compiling things through x code or Android studio, or anything like that.
Well, we do sometimes, but it depends.
Most of them we try not to.
So that's why I've never paid much attention to this, but this does have a lot of really
good tools.
We've got deliver which will download all the metadata from iTunes onto your hard drive,
snapshot which will create snapshots, frameit which will put them in frames, there's a bunch
of them here...sigh, gym.
Now what I wanna do is give you a quick demo of how to use it in the kind of time that
it can save.
So, I need to set up an iTunes connect, we have an app coming out called Bengali Spy,
so we have all these spy language games, so we have Mandarin Spy, Italian Spy, all this
stuff.
So the next one going out is Bengali Spy, so the process is, you go into Apple dev centre,
set up the app ID, set up the provisioning profile, download the provisioning profile,
go into iTunes connect, set that up, a lot of tasks.
So, let me show you how to do that through fastlane.
So, we go over to my command line here.
So, for those of you who are afraid of the command line, this is actually really easy!
So, let me just show you here.
If we take a command...what I wanna do first is create the app in Apple developer centre
and also in iTunes connect.
I can do that with one command here, so it's called fastlane produce.
Now, if you look here, I'm actually adding my username and my team ID, just because I
keep adding those over and over again, but if you don't add those, it will ask you what
those are.
Hit Enter.
Because I've already set everything up, it will just log me into iTunes connect and ask
me for the bundle identifier.
So that would be com.overpass.bengalispy.pro.
Cool, now it asks for the app name - Bengali Spy Pro.
And that's all I have to enter.
What that's doing now is it's going through, you can see here it says "creating Bengali
Spy Pro on the apple dev centre, so it's creating that app ID, and now it says it's creating
it on the iTunes connect.
Now, this one takes a few minutes because it doesn't actually show up on iTunes connect
for a few minutes.
So you can see it's waiting for the application, it will just kind of go through there and
start doing that.
But while it's doing that, let's go over to the dev centre and I'll show you how this
looks!
So I'll go in here, let me just refresh.
'Bengali Spy'.
And you can see here, this is the one I just set up - .com.overpass.bengalispy.pro.
This is the one i set up earlier on an earlier video which didn't record when I was demoing
it!
So that's done.
if I go back over here, it's still waiting for iTunes connect, so we'll just wait a few
minutes there.
Cool!
So there you can see it says "successfully created Bengali Spy Pro on iTunes Connect".
If I go back over to iTunes connect here and i click on - let me just refresh -
you can see here it's already created Bengali Spy Pro.
So it's created it in both places using one command line and it only took a couple of
minutes there.
Now, it's done that but it hasn't given me the provisioning profile so that's another
command here.
So let me just go back to the terminal.
Let me type in the other command which is called fastlane sigh, I don't know why it's
called sigh.
So I put that in, again I'm using my parameters here so I don't have to keep entering them
again and again.
It says "starting the login", then it asks me for the bundle identifier.
So that was the same - com.overpass.bengalispy.pro . And then this will go and handle - if the
provisioning profile exists but it's expired, it will create a new one, and if it doesn't
exist it will create one.
It will download it, it will register it with xcode, all of those processes are taken care
of right there, so it's really cool.
There we go, a few seconds as opposed to the very manual steps!
But, that's not all!
So the other thing, probably the coolest thing, the thing that I found this weekend was the
one called deliver, so the command called deliver.
Let me just clear that.
Ok so basically what I have is a folder here, where I have a paid folder which I set up,
where I wanna store the metadata.
So let me just go over here and type in the command fastlane deliver, and that's from
within that folder, and it goes through and logs me into iTunes connect, asks me for the
bundle identifier, here we go.
com.overpass.begalispy.pro Now what this will do is it will downlaod all of the metadata
and the screenshots to that folder.
There we go, already finished!
There's not any screenshots because we just set it up, but let me just go back to that
folder here.
So you see here, it's downloaded it here, I've got metadata, category name, all this
stuff.
Everything's blank at the moment, but I can go in and fill it in here, or I can do that,
and I've got screenshots here, we don't have any screenshots yet, but if I were to create
some screenshots I could just put them in there and upload it.
Now let me show you what it looks like when it's full with my biggest app called Ear Spy.
So, this is the one I was really having trouble with this weekend because we have so much
data.
I downloaded this and what it does is it creates, for the metadata, it creates every single
language that I have it will create an individual folder, so the localisation.
And each one of these we have descriptions, so there's a text description.
Keywords, so if I was gonna change my keywords, like in any automated process, I could just
go through and update this.
the marketing URL - this is one of the things I hate about it, the marketing URL seems to
change, when you do localisation, like copy paste copy paste copy paste, and this is the
kinda thing where you take this and then copy it, the name, the privacy policy, the privacy
policy doesn't seem to take it across all the different ones, and the release notes.
So it does that for every language, and also for screenshots.
So you see here, all the screenshots were downloaded.
Now, if I were to make any changes to these files and then I call fastlane deliver a second
time, it will upload those changes to the server.
So it allows me to do everything here on my local machine rather than skipping between
screens and doing that drop down between the localisations, which is what takes so much
time.
So it's really powerful, and then before you upload it, before you do the upload process,
it will give a little preview here to show you what everything looks like for every language,
all the screenshots, you can approve it and then you say yes, let's go ahead, and then
upload that.
Now, they do have tools for...so that was really cool, that's the kind of thing that's
gonna save me loads of times.
This is what I spend most of my time doing, and I was really excited and I couldn't wait
to tell you guys about it, excuse me if you're bored.
If you only have one or two apps, it might not be that exciting, but if you're localising,
let's say you wanna localise into different languages, but you wanna do it just to test
it out with google translate to begin with, you could download all of those files, let
me just show you this.
For Spanish Bubble Bath, this is what I've done.
So I've downloaded it from Android, which I'll show you here in a minute, and then I
was able to take the English one and then based on the different languages just create
a folder, copy paste that folder, and then go into each one of these short descriptions,
update it, call the command again and have it uploaded.
And you can do the same thing with iOS, so rather than go through and copy paste copy
paste, it's just copy the folder, and then upload it again.
Now, what I showed you was the iOS side.
Now there's another command here called - there's a few android tools,it's not as involved - but
there's one here called supply which is really good and it works the same way as the deliver
one does.
So you call supply, it will download that information here from android, and then you
can go through and update that information, call supply again and have it upload that.
Anyway, it was just something that if you can get it set up, and I don't know if it
works on Windows, I'm using a Mac so you have to have x code and all this kind of stuff,
but it's the kind of thing that can save a lot of time if you spend a lot of time like
I do up until now.
I'm actually kind of angry I didn't know about this before.
I mean, my developer told me about it before but it looked like something that was more
for continuous integration.
A lot of the tools might not apply to us because we don't use x code, but again just those
few steps is gonna save me probably at least two hours a day, so that's gonna be awesome!
So anyway, that's it for today, I hope it's been interesting and I'll talk to you guys
next week!