Implementing fastlane from nothing to App Store, Josh Holtz (English)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

Hello, everyone!

I'm Josh Holtz and I'm lead maintainer of _fastlane_. This talk is a demo of implementing _fastlane_ from nothing to uploading to App Store. I gave this talk for CocoaHead Netherlands in April and figured I'd share it.

Let me know if you have any questions or comments! I'd be happy to answer :)

πŸ‘οΈŽ︎ 4 πŸ‘€οΈŽ︎ u/joshdholtz πŸ“…οΈŽ︎ Dec 31 2020 πŸ—«︎ replies

I've never done any CI before, but have seen it around. What is the difference between Fastlane and Jenkins, do they do the same thing or different things?

πŸ‘οΈŽ︎ 1 πŸ‘€οΈŽ︎ u/KarlJay001 πŸ“…οΈŽ︎ Jan 02 2021 πŸ—«︎ replies

Hi Josh,

Could you update the docs for match(git_basic_authentication: ) to expect $Username:$token as 64bit encoded string. Spend untold billable github actions minutes on this..

πŸ‘οΈŽ︎ 1 πŸ‘€οΈŽ︎ u/kenichinisan88 πŸ“…οΈŽ︎ Jan 02 2021 πŸ—«︎ replies
Captions
hello everyone I'm Josh Holtz [Music] fools and today we're going to be talking about going from nothing to the app store gonna give some little paddling tips with information along the way and it's going to be a live code session so I'm Josh Schultz I started a rock alright started a software consulting company called the rocking cat in 2011 I do software consulting mainly iOS Mac OS and Vaseline consulting and I've been working with Fastlane since it started in 2015 - again that's okay I've been core contributors since 2015 and I'm the lead maintainer since March of 2018 and just another thing about me I do have a stutter and a fear of public speaking but I'm here anyway so we'll see how this comes let's get started so I'm gonna give a quick intro on what fast lane is fast lane is mobile app automation done right easiest way to build and release mobile apps going from I can't point at the screen screenshots deployment app store and code signing and we're going to be going through most of that today except for automating screenshots we don't have time for that so today's goal we're going to start off with a swift UI app that has a iOS and Mac OS build target it's pretty simple there's just a single like a label on the screen that says hello world nothing too complex because we're not actually gonna get into any swift code there's no fast lane integration nothing else going on nothing created and the developer website yet this is like as basic as you can start off from Xcode and we're going to end up with a created apps on developer portal app store connect with certificates provisioning profiles it's gonna build coincide code sign submit binaries to the App Store and then if we have time we'll do a little a little extra fun fast line stuff on top of that and as I mentioned we are not going to touch the developer portal at all we may go look at it as proof that there is something there but we're not gonna go edit things unless things go horribly which they shouldn't hopefully go horribly so today's process we're gonna install Fastlane bundler is the way we're going to do that I'll talk about that more later we're gonna initialize Fastlane get our fast file created we're gonna step out the fast file with the lanes that we're going to use for both iOS and mac OS and then we're going to incrementally implement and test each step so that we know that the first things work and then they're all gonna add after each other until we have one final working thing we'll add extra functionality if we have time some stuff that kind of helps with the whole deploy process and then we'll have a Q&A session so let's code we're going to use bundler to install Fastlane bundler manages our dependencies for us it makes sure that our Fastlane is on the correct version that we're using and all of its dependencies too so we're gonna get a terminal over here I believe it is a big enough font if it's not just yell and chat and we we should see and if I don't see it I'll be told that I need to make it bigger so I think this is good we'll go with this so we have an empty repository here there is not much we have a workspace our app it's called hobby workspace we have a framework our mac OS app and our iOS app that's all we got so we're going to start with bundler something get Fastlane install and then get into the fun stuff so to get into oh I have to disable that there we go bundle and it is how we're going to install bundler and we have a gem file in there we're gonna go into them and this is where we got to be we have a gem file this is where we will install fast lane from we're gonna delete this extra stuff we aren't doing rails gem fast gem fast lane is all we need we're going to go back over here and run bundle install bundle install will install fast lane and all this dependencies and we're there we're using fast lane version 2.1 for 6.2 which is about a half an hour old so the next step let's go back to our slides here so we create a gem file it creates this gem dialog for us which we don't really need to look at and then we've installed fast lane with bundle install so our next step is to initialize Fastlane what we're going to do is run fast line in it fat oh I lost my there it is fast lane and it it will ask us for ways to install it you want automate screenshots automate beta distribution it test flight automate apps for distribution or manual setup yes to them I see chat them that's that's how I roll we're going to run manual setup since we're gonna do this by hand it's gonna ask us some things and then we have we have a Fastlane directory we'll see it here but we'll go we'll go to see it over in vim so I think I need to refresh this there it is so we have our gem file or dem file that lock our Fastlane directory with our app file our fast file we're actually not going to be using the app file today we're gonna stick with we are going to be using the app file we're gonna be using dot V and V files instead but we are gonna spend a lot of time in the fast file where are we here here we are so we're gonna delete all of the comments up here we're not going to delete it we're not going to default platform because we're going to treat iOS and Mac OS equally so here it is our our pretty basic fast file that doesn't really do anything yet we're going to go back to our slides so we initialize Fastlane not not not super hard to do we're going to step out the fast file now I did put links in the slides I'll post lines up somewhere later so that you can see that is duplicate links that should not be right I'll update the slides later as well but I have linked to the docs where I pulled these things from we're going to stub out the lanes that we want and then comment the lane so we know what they're going to do and then we're gonna hook the lanes up to each other because our lanes are actually going to have a composition form where they one calls the one before it so they have one one one good process and we're gonna start something out fast or fast file so what we are going to do is we're gonna have two platforms I'm gonna we're gonna have platform iOS and we're going to have platform I believe it's Mac it could be Mac OS I think it's Mac we're just gonna delete this for now we'll do a little bit of copy and pasting later so our first lane that we are going to do it's going to be called no it's here it is hope that's the wrong one there it is signing signing is going to sink our signing for us we're also going to have a lane that is called build that's gonna build and compile build compile our app for us and export the binaries and then we're going to have a lane called release which will send our binaries to the app store will comment here that this will do it'll just supposed to do sync signing it's in the name but I mean well we'll add to it this is going to build the binary and then this will release the binary this de SC is a very fast lane way to add comments to your lanes I'll show you what this looks like right now so we can run fast lane lanes and for iOS we have sync signing build binary and release they don't do anything yet but at least it at least shows us what lanes we have we can add more information on what they do later but we're just gonna we're just gonna go with this for now let's see we are then going to do the same thing for Mac we won't do a whole bunch of editing and Mac yet we're gonna do iOS first but if we go over now and run fast lane lanes again we'll see we have our iOS lanes for signing build release and our Mac forward assigning build released cool so I can actually run fast lane build oh I should buy spell it right fast lane build nope fast lane iOS build cool so it did absolutely nothing and that is fine because that is what it's going to do so we stubbed out the the lanes that we want we commented the lanes and now we're gonna put the lanes up to each other so the way this is going to work is our signing is going to lead and to build and build is going to lead into release so in order to build we are going to need to call signing and then in order to release we're going to need to call build so we can call we'll be able to call signing by itself to make sure that signing is totally fine we're going to then call build which we will which requires signing but we know that signing is going to be great and then we're gonna call release eventually that which we'll call build which we'll call signing and this kind of allows us to test all the different steps so that's how we're gonna set about those lines we are now going to do some configuration with Doc env in preparation for calling our Fastlane actions so the first line actions we're going to be calling are create create a pond line which will create the app on the developer portal and Appstore connect we're also going to be using a match which is also called sync code signing that will create our permission profiles and certificates for us and we're going to be calling build iOS app and build Mac OS set which will build the binaries and then upload to App Store and all these require configurations two configurations to be set and these configurations can be set from within the fast file by hard coding things or we can do it through our dotty and V files which will prefer to do it makes a fast file cleaner and it makes things a little bit easier to change up and see the different configurations for all the unities we're using so by default Fastlane will load just a dot me in V file automatically so we can put stuff in here that is that is shared between iOS and Mac and things that aren't secret that we can commit we're going to create an emu dead secret file which I'm actually not going to edit on screen because it has my secrets but that will have a github API token it'll have the application specific password which we need to upload to the App Store and then this file we're not going to commit to the repository because it's secret it shouldn't be there and then we're gonna have our dot env iOS and dot and V dot Mac which will load in the in their specific platforms so iOS iOS will have some of its own configurations makkal have some of its own and they'll all get loaded depending on which platform we're going to run I did forget a line we are going to have one that's outside the platforms that is called create app and this will start I'm going to start coding here it's gonna call produce or create app online this is also called produce and this is going to create the this is gonna create the app create app on developer portal at store connect for us so this is all this Lane is gonna have we're not going to configure it here we're gonna configure it in our dot env files so we're going to create a new file for Fastlane env we're going to create a new file for fast line NV dot secret we actually need secret yes don't think we don't need I always see well yeah what's great them all tab edit Fastlane dot indeed Mac and Rincon new on Fastlane need to be that secret all right cool so that's all we need um we're gonna put here now we're gonna put a whole bunch of secrets that we need when communicating with produce the or create app online the first thing we need is we are going to need our Fastlane account info so we're gonna use my personal info my personal team name and my team mate cool so this will get used by almost all the tools and Fastlane that need it it'll be used by create up online by sync code signing and by upload to test flight this is that's the thread a that's my it tells it tells Fastlane which which user and which team to upload things to for produce we are going to put information here about our app I'll show you our Xcode app now let's here's our bundled in a fire I actually had my prep demo bundle that bundle identifier in there so we're going to change that now for both Mac and iOS they are the same bundle identifier so we're gonna put this bundle identifier in to produce a panel down here we're gonna give it a name Josh Koko heads and I'll demo we're gonna give an initial version of zero point one point zero this is what I'll create as on the App Store we're gonna give it some SKU which I still don't know what a good SKU scheme is so we're gonna go that and then for platforms we are going to go iOS and OS X I think that is all we need for that yeah so what we're gonna do now is our I think everything is correct yeah yeah so everything to create our app online should be there we have our account to log into our is pelipper account and we have our produce options for have identified our app name app version our SKU and we're gonna create a combined iOS and Mac app let's give it a shot what I call you an F shoot with it FL create app okay so fast lane create app this should should create it for us on the developer portal and app store connect a little bit of a little bit of smokiness so we created it on the dev Center it's creating it on Appstore Connect now and the boom we have we have the app on the App Store I never open it we are not going to I'm not going to show it yet I said I didn't want to go to the go to the app stores or to the web sites but this looks this looks good enough we got an ID here so this it would take a whole bunch of clicks on the developer portal we didn't click at all really we just type some stuff and this is nice repeatable between projects so this is what I always use now our next step is to do our signing so we're going to go back to our fast file and our signing is going to happen and ours signing line and for signing we call match so that's all we're gonna do for signing - not we will add more in here later but right now we're just gonna call match or I think it's call this sync code signing we're gonna go with that because that's makes a little more sense it's also called match okay so for this one we will need some shared shared environment variables that both Mac and iOS will use where are they here uh-uh-uh-uh-uh here we go okay so it's gonna require our match username which the match username for me it is this it this is your Apple Developer account so we have me at Josh Holtz are have identifier is going to be the same from up here and then our app type is going to be app store I don't think there's a dash in there there is not a dash in there okay and then I'm not gonna type my match repository but here we go alright so we have my match username this is once you just going to sign in to that for developer portal we have my git repo which is private don't bother going there you won't get access to it we have our identify ur this is what's going to create the profiles with and we're gonna create app store profile types and it'll verify that we have a [Music] distribution certificate we need a little bit more information for iOS not much not much but we are going to tell it we're using match platform iOS match should technically no because we're in platform iOS but I still like to do things explicitly and I wanted to make sure things really worked for this demo so now we have everything we need for signing I think we can run this we're going to run fast lane iOS signing will see some output here and I won't super read through it because I wanna make sure it enough time for all the other fun stuff but it is cloning my existing repo I do have a distribution cert already made that I was testing with today I didn't feel like revoking it but now it's creating our provisioning profile called match app store calm KOCO has demo L provides an L demo so we now have a distribution cert that is installed in my keychain and then our profile is also downloaded all stored encrypted on a git repository perfect so the next fun bit now that's the here here we are okay so after we're not fully done with code signing it this part gets a little bit weird it's pretty specific to how I like this process but right now our code signing is set to automatically manage signing this is not exactly what I want I don't like to sign into my iOS developer account in Xcode and automatically signing does not work ci because you can't sign in to Xcode with your account so we're going to use manual signing I could configure manual signing the code sign identity the provisioning profile specifier and the code sign style and build settings manually I don't want to do that so I'm going to use Fastlane to do that for me um we're gonna go over here and I'm just gonna copy for the sake of time oh we're gonna put forth four lines in here and I have really messed up having so let's fix that okay whereas there yeah okay so this looks a bit weird I think I can make it look like this there we go okay so what this is going to do is after our sync code sign runs it puts the what's called the provisioning profile mapping and actions Lang context this is a singleton global access thing to information after actions run this mapping it has a key of a bundle ID and the profile that was created so what we're doing is we're getting this dictionary of mapping we're going to give it a key of our epidemic fire and it's gonna return the profile name so update code signing settings it's going to modify my Xcode project which is usually not great but this is we're gonna add some things later on at the end that will allow us to do a nice git reset and just ignore that after a release is done but we're gonna go and put some of these configurations and our and side of our dot env file I'm gonna copy and copy and paste these and this is going in iOS so what we're doing is these are environment variables that are specified or that are used within this update code signing action in order to see them we can run fast lane action update code signing settings and this will show us all the environment variables that that we need over here I copy and paste them from my other monitor but we're going to give them a project path the target is how be iOS the signing build configuration we only want to modify is release we're going to turn automatic code signing off and we're going to tell it that we want to use Apple distribution as our as our profile type I believe that's the only thing that we need for that one yes okay so what we're going to do we're gonna run signing again it's gonna pull down our building configure our our certificates and provisioning profiles and this will update our excellent project I'm gonna undo the changes once we're done but they will they will update so let's go in here apparently I modified oh I didn't modify this already I think I modified this yeah okay so well-well we'll commit that first that was another bundle change we don't want to undo that later okay so now we're gonna run Fastlane iOS signing again and it's going to modify it's gonna turn off automatic signing for release and set our booting profile information oh so apparently I entered something wrong because our pets Xcode project is not showing up what did I do oh I know what I did we are so we aren't actually loading our env iOS I forgot a step we're going to do we have to do before all here and run dot E and V dot load dot V dot IO s and then we also need to go open our gem file gem Navy you've got a required dot env all right fast file ok so what this will do now is when we get into the platform for iOS it's going to load our dot V and V dot io s let's bundle install to make sure we have that env alright now this should work you all right so we can see that it updated code sign identity for Apple distribution or tablet app distribution for our release target update the profile name if we go over here now for iOS will see that our release is not automatically signed and we have carbono the identifier is wrong for some reason I thought we committed that there we go our signing is is now working for for our iOS project for some reason that didn't get committed so we're gonna undo these changes cuz I don't want to commit those code signing changes and we're gonna there we go thought I'd change that I might not have okay let's commit this again oh all right bundle change okay now we should be good we're going to run this one more time to make sure that we are still good Fastlane iOS signing so now that we have the signing done I'll go over here and it should show that everything is good now maybe os signing there we go okay no errors we can totally build this on our local machine and then also on a CI no problem so we're gonna remove those changes okay it's status okay the next step that we're going to do I might have skipped here so we created the app online developer portal in the App Store we are using sink code-signing to create our certificates or profiles and store them in a git repository we are using update co-signing settings to modify the build settings which we won't commit after we're done we'll do that later now we're going to use build iOS app to make our assigned IPA it calls Xcode build under the hood it installs SVM dependencies it compiles the app and signs and exports the binary so we're going to go back into our fast file now we're going to go into our build lane that is already calling signing that we don't just got working and we're going to call build iOS app and the cool thing is that's all we're gonna need to do in our fast file we're going to go put some configurations in our dot and V file now we copy and paste them for the sake of time again so we have originated called iOS scheme we're gonna export to App Store I'm just gonna put in and out and to a custom output directory that's build iOS so we're gonna save that and then we're going to run fast letting iOS what I call it program I called it build makes sense all right Fastlane iOS building so we're gonna go through the same thing that we saw before it's gonna make sure that we have our proper certs and profiles installed it's going to modify a project and now it's using Xcode build to compile the app which has almost nothing in it and cool we actually compiled a and signed an IPA on the first try I don't know how many times I've done that it hasn't been many but here's our IP you know so that is what we're going to end up sending to App Store connect and our next step we're gonna go back over here we have sort of we're gonna call our release line now our release line is gonna make use of everything we did already it's gonna call build which calls signing which calls all of which calls a match to do all the certificate profile work so in here we are going to run where is it here we're going to run I think it's upload to App Store also called deliver that's right this one is also called gem okay so that's all we need to put into our release line like of course like the rest we got to put some configurations into our dot dot a and V file the only thing which we don't actually need to put is our delivery platform because this is taken from the platform iOS that is used above and now we're going to submit to the app store Fastlane iOS release so we will go through this again but we should we should end up seeing a a little bit of waiting time when it uploads the sign IPA to the App Store it's actually gonna fail yep I totally forgot a thing so we're gonna cancel okay I did forget a few more settings there we go I don't know what I was thinking we're gonna go back into our just our normal dining interview file I'm gonna put a few things in here we need the identifier I totally forgot that this was going in here we need my team names again team name we are not going to run pre-check which does a little bit checking for her like metadata and stuff like that don't really care about that today we're skipping screenshots and we're going to skip metadata and then we're also going to do this other cool parameter called additional upload parameters it's going to be using a different upload service with an apple called SP rec which I actually find quicker so we're gonna use that the other thing we need to do is we need some secret information that I said I wouldn't I wouldn't actually edit on screen but oh because the account I'm using for uploading this is a has to FA enabled I need to set a Apple application-specific password so that it can authenticate that I am me and that it can upload the binary so I'm going to set this offline and off on the other screen and then we can try uploading again alright let me do this for a second all right now we should be good hopefully we can at least App Store now nope I lied we forgot one more thing we need to actually load our dot V and V dot secret and that is going to happen up here we're going to call before all do n dot E and V dot load dot and V dot secret so this will load our secret environment variables which we only have one right now before any of the lanes are used and then just for safety which it does this automatically but we're gonna require data nvm now we can upload to the App Store so you're getting it calling Xcode build right now from within build the build iOS app action we export an IPA we're uploading to App Store it's setting the latest version to one point zero point four zero point one point zero it's fetching our environment variable with our application password and now it's uploading the binary Oh No nope that is okay we air it out when we were out on oh all right okay why did that not work did I type it wrong oh I I had a K on the end whoops all right no one saw that now now it should work I'm gonna log in to my developer account um where if I can find a safari window a developer so this is going I'm going to log into my App Store Connect account over here get the right team selected we failed again you oh I know what I did one more time I copy that wrong all right KOCO heads SNL okay now it's gonna work I think let's just copy and paste this to make sure to the right thing alright one more time one more time yep this will happen copy and paste airs you know all right so all right we have it going I have my window over here for when it succeeds this time hopefully not too much longer all right there we go okay we have we have App Store so if I go over into our App Store connect now we should see some activity of our build boom it's processing cool so we have an iOS app now on the App Store now it is time to do the exact same thing for Mac for Mac I am going to change the button the build ID because it will yell at me when her sorry the the build number could will yell at me um oh so for mac we are going to do stuff really similar our Mac platform is going to meet for matches me Mac OS this is Mac o Mac OS this is Mac OS I could probably do some fancy replace but I don't trust myself right now I don't trust myself doing this either Mac OS and then deliver is OSX there is one more thing that we need to add for match Mac OS apps need a Mac installer distribution sir there's an additional cert and we'll have match make that and fetch that for us but we have Mac Mac Mac Mac ok so that's everything we need to do for Mac OS and it's real similar to iOS just things slightly tweaked a little bit now we're going to copy or just we're just gonna delete everything we have in Mac a little bit of copy-paste there are ways to make it a little bit better but we're just gonna go with this the only change we have to do is tell it to load dot e NV dot Mac instead of that iOS and now what we should be able to do Fastlane Mac release and it should create signing build give us a sign pkg that the that it's going to upload to the App Store so hopefully this one works right away nope we that's nice I told it to build I OSF not madcap this is gonna this is gonna break my break it might work actually this might actually work yeah build iOS app and fastly might be smart enough to not realize that we're going to find out you you looks like it both the pkg all right so let's go change that first because I don't like that we're in changeable Mac app but if we now go over to our oh that's oh let's see what we got here Oh iOS Mac OS there we go we got our Mac build actually we're to first try even though I made a mistake so I think that is mostly that was the point of the whole demo I'm gonna add a few more lines into the fast file we're not going to test them because I think we're running a little bit low on time for Q&A but we are using upload to App Store now it's also called the liver and upload the binary to the App Store one thing I mentioned earlier that I was gonna say I was gonna retouch up upon was this where's my cursor this update code-signing settings this modifies our Xcode project and I don't like having a Fastlane process that modifies and leave stuff unchanged at the end it makes it really weird to release release things you want to make sure that you have a nice clean repository before you're releasing and also after so what I like to do is in my release line call ensure get status clean just make sure everything is committed nothing hanging out and then we also call ensured get it branch I don't know why that tad funny so what these two lines does do do is they make sure that our git repository is clean and also that we are on master because we only want we only release this when were on master and a good good stay and then at the end of this what we would do is call reset git repo and reset git repo would just do a git checkout - - of any change files that we have it's not it's not cleaning I wish there were better ways to dynamically set build settings / configuration through Xcode build maybe WWDC 2020 that'd be super nice for me but if if we can't do that this this will work a few other things that I have had that I added in here which I will have this repo public later on we add a get tag and then push the get tag this will allow us to take the version a zero point zero point one point zero and get and then after this after this I also end up setting set github release which will create a github release for our tag or you can put notes you can attach a a maket if you want to it or something this is kind of my my standard approach of kind of creating Fastlane from nothing to something I start with the DES stub see kind of what what lanes I all want to call start with the most basic part and just keep building on top of that and when I have my final like working approach kind of decorate that with all the nice extras that I have and I think that it is that's it I we we started off with nothing basic app that had no no changes to it besides me having the wrong bundle ID and then added produce to create the app we created our distribution starts and profiles we then built it through Xcode build command-line tool with Jim slash build iOS app and then submitted it to the App Store for both iOS and Android you can follow me on Twitter github I'm super active on both to active probably on Twitter I take Fastlane questions and all the stuff on Twitter so feel free to hit me up there too but I think now it's also time for questions I think I think I'm gonna be sent some questions to answer all right oh there we go okay so we have one question I'm gonna put it on the screen here we go so key way what is current plan for fast lane to adopt the AppStore tax api that is a loaded question that I have opinions on so I I love the app store Connect API I think it was a great ad and I would love to see more of it but right now the apartment API is really only covering maybe 10% of what Fastlane does it it really it really helped when using things that interacted with TestFlight that was the first part of the API that they released and it was it was nice but in Fastlane we still can't use the JWT off format that the new API uses since when it was first released that was kind of a feature that they only allowed some people to use but all of Fastlane still needs the standard web off so we have to still use the web off but the App Store Connect api's are proxied through web off through some of the through through some end points it doesn't give us the full app store connect API but we do get to use some of it and the test flight one is pretty good the developer part of the API that was released and the second phase is still not fully functional it's missing being able to create Apple distribution and Apple developer certs through the JWT off it's it's only working through web off through another like proxy layer API kind of thing it's kind of weird so I would totally love to go full app store tonight API if we can the hard part is it's only covering a little bit personal bit of Fastlane what I would love to see is if we could get rid of using the standard web off altogether if Apple could take the JWT off and allow us to access the private legacy ApS that we were using with that jbt off that would be a huge win I believe for a fast lane community I have a blog post and I'm working on that kind of explains that too but adapting the app store tonight API is a whole thing I could find you another hour on that we'll go to the next question is fast lane a copy this one can't convey it is that is small I don't like that anyway I'll make this bigger later is fastlane able to deal with push notification push notification tokens so fast Lang can wear supports my web browser fast line fast lane 10 create certs for push notifications if that's what that question is asking the tool is called PEM PEM automatically generates and renews your push notification profiles it's not necessarily tokens the tokens are what the apps use when you register for notifications but Fastlane does have PEM also called get pushed certificates for dealing with those for gently push notifications how long have you been working on Fastlane I've been working on Fastlane since it was that's also small since about 2015 at the beginning when Felix first created all the tools were separate in their in their own gems and in their own repositories but I've been pretty active in Fastlane since then and heavily active since I've took over lead maintain our role in 2018 some plugins slash some plugs I suggest well using them for iOS and Mac OS development oof that is that's that's a thing so I actually don't do iOS or Mac OS development directly and them I do use Xcode still all my other development are you I do in vim what I don't know exactly what it's called so uh since I installed it but my favorite plugin is dealing with Ag slash Silver Surfer I can do what ctrl P to do search for file names and then I can do a ctrl T to open things in a new tab or I have control tea which there's a fuzzy search over the whole repo it's pretty much only plugin I use the biggest thing to use that I do with command-line his team bucks I can't not use team bucks I use fast line without dot E&V files where else can be stored data if you had where else can you store data in the Navy of house okay so fastly if you want to be in V files we're just totally fine you we have canceled over its app file we have something called an app file which does something similar you can you can set your Apple ID in here there's also I think a for free the syntax but like for platform iOS where you can then set a app identifier in here this is all in the docs under the app file section which I can go to over here app file explains how to store it it does store things similarly as as you would any and Vees in a more ruby fast file syntax some people prefer this I I prefer using dot dot env files but totally for some preference if you want you can even totally hard code stuff from your fast file no one will judge I use fast lane without even 500 is that one I heard last what that fasting is being a rewritten go is that correct I don't know who's trolling me but go is not yeah is is not what we're rewriting in because we're also not rewriting Fastlane it is staying in Ruby because there is a lot there there's been a lot of questions about if we're gonna rewrite in Swift because that makes sense but that would probably take years and there is enough enough backlog and things that we can do in the current version that are that also take years so it is totally gonna stay in Ruby we do have a swift interface if you want to use that but fast lane isn't just for iOS so I'm side tracking into Swift because I assume I'm being trolled by this go question but it's it's not gonna get rewritten in Swift because fast lane is is used across platform for multiple different at platforms so I mean it's it's used in Linux Mac and Windows which I guess they can probably all use swift now but it's not just iOS or Mac OS it's also Android Ruby or fast lines also used to deploy fast lane and other Ruby gems I use fast lane to deploy King development so it's rubies are pretty good scripting language and we're going to stay with Ruby to the Swift version of Fastlane it's still totally there it is where is it there's a there's a spot here we're just going to search for it swift getting started the fast lane and swift beta so you can you can write your fast file and Swift I still do it in Ruby it's quicker for me I like Ruby's syntax especially I'm dealing with scripting stuff well I like sort of syntax when I'm doing app stuff but you can run fast line and it's Swift creates an Xcode project with a fast file that Swift file that you can create it looks real similar it's a little more verbose but it is what it is it's a little bit slower because it has to has to send the the Swift through a socket to the Ruby stuff that then sends it back up into Swift when it's done so they it totally works for some people it's fun we we do still maintain it but it's gonna the core of it will stay in Ruby I think that is potentially all of the questions I don't see any more funneling in through comments or through slack someone's typing at me we might have one more that was it all right cool all right well I thank you for everybody's time again you can follow me on Twitter and github interact with everybody that I can and let's do this again thanks for having me everyone you
Info
Channel: CocoaHeadsNL
Views: 15,699
Rating: 4.9504952 out of 5
Keywords: CocoaHeadsNL, CocoaHeads, iOS
Id: 6Jz-Ywxki0U
Channel Id: undefined
Length: 56min 20sec (3380 seconds)
Published: Mon Apr 27 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.