Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fastlane for Android #169

Closed
11 of 12 tasks
KrauseFx opened this issue Apr 2, 2015 · 48 comments
Closed
11 of 12 tasks

fastlane for Android #169

KrauseFx opened this issue Apr 2, 2015 · 48 comments

Comments

@KrauseFx
Copy link
Member

KrauseFx commented Apr 2, 2015

Important tasks:

  • Provide the most important Android related actions:
    • Ruby Wrapper around the Google Play API (supply)
    • Tool for screenshots
    • Ruby Wrapper around a build tool to generate and sign an apk
  • Update fastlane init to ask for OS
  • Extend Appfile and CredentialsManager to store username and App ID of Google Play

Pretty important

  • Support for Windows Systems
  • Support for Linux Systems
  • Don't install the existing fastlane tools when installing on a non Mac environment
  • Extend lane syntax to allow declaration of the OS type (see below)
  • Extend action class to allow declaration of the supported OS type (see below)

Open Questions:

  • Everything in this repository? If so, we might have problems with the submitted issues all being in one repository - which might also be a good thing.

The idea is to integrate "fastlane for Android" into the same gem/repo as the iOS versions.

As most teams will have separate git repos anyway, there will be 2 Fastfiles probably.

@joshdholtz
Copy link
Member

@KrauseFx Did you want to add a checkbox for Support for OS X Systems?

@mRs-
Copy link

mRs- commented Apr 2, 2015

I think supporting windows / linux is obsolete in the first version.
IMHO fastlane will run on an mac anyway to compile apps for iOS. Step back from the features first, it will lead you on the wrong way and is a big task at the beginning.

@joshdholtz
Copy link
Member

I don't think looking at supporting windows / linux will lead you down the "wrong way" since that is the direction that we would need to go with this eventually. BUT it might be good to be conscious of things that won't work in windows / linux so they won't have to be reimplemented later on.

@dfranzi
Copy link

dfranzi commented Apr 2, 2015

With the prevalence of cross-platform frameworks for developing mobile applications, I'd advocate for not splitting this distinction across Fastfiles. I'd like to see support for both platforms in one fastlane configuration.

@KrauseFx
Copy link
Member Author

KrauseFx commented Apr 6, 2015

Started with the pull request: #179

@KrauseFx
Copy link
Member Author

Let's do this right!

before_all do
  puts "This block is executed before every action of all platforms"
end

platform :ios do
  before_all do
    cocoapods
  end

  lane :beta do
    ipa
    hockey
  end

  after_all do
    puts "Finished iOS related work"
  end
end

platform :mac do
  lane :beta do
    xcodebuild
    hockey
  end
end

lane :test do
  puts "this lane is not platform specific"
  xctool
end

after_all do
  puts "Executed after every lane of both Mac and iPhone"
  slack
end

More details: https://github.com/KrauseFx/fastlane/blob/feature/android/docs/Platforms.md

@KrauseFx
Copy link
Member Author

The cross platform Fastfile configuration is already finished, now the Android actions need to be implemented.

@z-br
Copy link

z-br commented Jun 3, 2015

This is really exciting. Are there parts of this that work now?

@gunta
Copy link

gunta commented Jun 8, 2015

+1

@RamboPeet
Copy link

@KrauseFx How's things going with getting Android supported?
What still needs to be done?

@KrauseFx
Copy link
Member Author

@DarkReaper101 there are not enough android integrations available yet

@McSurf84
Copy link

Is there anything we can do to help speed up the things? I`m really interested and would like to support you :-)

@KrauseFx
Copy link
Member Author

@McSurf84 Sure, every help is appreciated. Do you know some Ruby?

@spidfire
Copy link

I'll also like to help but I'm a bit new to ruby, Maybe I could try to look up the API calls needed for uploading? Or are you going to use the lib provided by google?

@joonty
Copy link

joonty commented Jun 30, 2015

I'm just looking into this at work. I've been looking into the official google-api-client gem, and found this after searching for something that already existed to make things a bit simpler. @KrauseFx we're already using fastlane for our iOS stuff, so I'd be happy to help get Android support to a similar place.

@RamboPeet
Copy link

I've learned a bit of ruby myself now in the couple of weeks, I will also be willing to help out.

@KrauseFx
Copy link
Member Author

@spidfire @joonty @DarkReaper101 thanks, that sounds great. Please send me your email addresses to [email protected] and I'll send you an invite to the Slack group to discuss it further.

Uploading metadata and builds is already done. The next steps are:

  • A ruby wrapper around Spoon for screenshots
  • An action for building the apk file

@mRs-
Copy link

mRs- commented Jul 1, 2015

A complete todo list would be great to get an overview about things that are done and what we can contribute to make this thing happen :)

@KrauseFx
Copy link
Member Author

KrauseFx commented Jul 1, 2015

@mRs- it's on the top of this issue, if you want to contribute you can fork fastlane to add a build action for android (e.g. Maven)

@mRs-
Copy link

mRs- commented Jul 1, 2015

Oh completely missed that. My fault :]

@spidfire
Copy link

spidfire commented Jul 1, 2015

@KrauseFx & @mRs- Probably you want to support Gradle too and maybe sbt for the really eccentric people 😄 and maybe @mRs- can join the slack chat?

@KrauseFx
Copy link
Member Author

KrauseFx commented Jul 1, 2015

@spidfire I'm fine with both build tools 😉 Feel free to submit a pull request to this repository.

@Khronoss
Copy link

Hi :) How are stuffs going Android ? Are there any actions possible for Android ? (even if it's just uploading the .ipk =x) I think the documentation will come with the actions, but still asking by hope ^^
By the way...you're doing an REALLY amazing work with this set of tools :D

@KrauseFx
Copy link
Member Author

@Khronoss sorry, not working on this right now. But it's almost finished, just a few integrations left.

@Khronoss
Copy link

Okay thanks :) Will patiently wait for it :)

@chaitanyakuber
Copy link

+1 on waiting paitently... we are looking at using fastlane for our iOS app and would love to use it for android as well

@GlaucoNeves
Copy link

+1! Expecting it since Google Play API doesn't allow you to create new apps.

@KrauseFx
Copy link
Member Author

@chaitanyakuber @Khronoss @spidfire @mRs- @joonty I'm curios on why and how you'd want to use fastlane for Android.

The most established solution for Android projects is gradle which is basically something similar to fastlane. It lets you define different steps to execute.

Or do you only need tools like deliver and snapshot for Android, but not fastlane itself?

@spidfire
Copy link

@KrauseFx for me it's mainly for delivery to the play store but snapshot would be nice for android.
But currently I've created my own solution for delivery because we have many similar apps who need to be delivered and one central database. I'm also interested if someone can figure out a way to put new apps into the play store (saves me time).

@z-br
Copy link

z-br commented Sep 22, 2015

I would love to unify tool chains. There is a google play upload library,
there is the Square snapshot stuff, but it would be nice to have
same/similar expectations, directory structures, the text files for deliver
are really nice. I just like the idea of 1 tool chain, even if it defers to
gradle for the actual building etc.

On Tue, Sep 22, 2015 at 2:33 PM, Spidfire [email protected] wrote:

@KrauseFx https://github.com/KrauseFx for me it's mainly for delivery
to the play store but snapshot would be nice for android.
But currently I've created my own solution for delivery because we have
many similar apps who need to be delivered and one central database. I'm
also interested if someone can figure out a way to put new apps into the
play store (saves me time).


Reply to this email directly or view it on GitHub
#169 (comment).

@tabrindle
Copy link

Just want to jump in on the conversation here - a huge use case here is hybrid development - mostly Apache Cordova. I am one person developing 3 apps, and in charge of releasing others. All three of mine are iOS and Android, in several languages. Just the content alone (Screenshots, App store descriptions etc) is hours of work.

I would certainly be willing to contribute to the project - hit me up.

@ismaarten
Copy link

Same as tabrindle.
We are using Apache Cordova and currently have 25 apps, which all use the same codebase but different styling.
When we release a new update, we have to update 25 apps in the Play Store and App Store.
So we need to change 50 descriptions/change logs, build 50 apps, make screenshots for all 50 applications etc.

Fortunately with Fastlane we now have the iOS side automated.

So some kind of deliver and snapshot functionality would be a big plus.

@chaitanyakuber
Copy link

I responded to questions from @KrauseFx offline in an email, but for the benefit of this conversation I will add here as I think I have more to contribute now.

  1. One build and release management toolchain for both iOS and Android means
    • we can cross pollinate team members a little bit easier
    • as we grow the teams its one less variable to worry about
    • teams can share learnings across projects
  2. We are also doing some cross platform dev using a Cordova container and web application. If fastlane supported both that would be hugely useful.

@spidfire
Copy link

spidfire commented Oct 7, 2015

@tabrindle @ismaarten Maybe this will help, It's still really unstable and dirty, but with a little effort we can fix it https://github.com/spidfire/php-android-delivery (oh yea it's in php 😈)

@KrauseFx
Copy link
Member Author

Almost forgot to update this issue, here we go: https://github.com/KrauseFx/fastlane/releases/tag/1.34.0

@azgul
Copy link
Contributor

azgul commented Mar 4, 2016

@KrauseFx do you have any clue what needs to be done to support Windows?

KrauseFx added a commit that referenced this issue Mar 7, 2016
Fixed issue with creating ipa and dsym for tvos
@ravishtiwari
Copy link

@TKBurner
Copy link

@vazra
Copy link

vazra commented Jun 30, 2016

@TKBurner can I use this in Windows?

@KrauseFx
Copy link
Member Author

@arv1989 Windows is not officially supported yet

@matteo-harpoon
Copy link

Hi guys,
I've worked with Fastlane for iOS until last week and today I'm starting a similar project to upload and update our Android App.

I've noticed the following missing features on Fastlane for Andorid, I don't know if all of them or even one is possible but I'd like to give my support by showing you the differences between Fastlane for iOS and Android:

  • Create Google Play Store App (on iOS I can easily create the app in case isn't available)
  • Allow first-time upload of an APK (right now I need to upload an APK to Google Play Store to utilize supply)
  • Keystore management (similar to pem for iOS)
  • Setup Closed Beta Testing (select type, upload/edit list)
  • Setup Open Beta Testing (Maximum number of testers, Feedback channel and return Opt-in URL)
  • Setup Closed Alpha Testing (select type, upload/edit list)
  • Setup Open Alpha Testing (Maximum number of testers, Feedback channel and return Opt-in URL)

@kdawgwilk
Copy link

@matteo-harpoon I think most of those missing features are due to the limitations of the Google Play Developer Console API but I wouldn't be surprised if the Fastlane team doesn't find a way to work around those issues 😉

@spidfire
Copy link

I've tried to make a selenium script for a few those things but gave up because doing it once manually per app is too easy compared to keeping up with updates to the changes in the interface of play store.

@KrauseFx
Copy link
Member Author

Yeah, most of those things are not available on the Google Play API. We don't want any web scraping, since this is super hard to maintain, and introduces with issues with new security features like 2 factor and automatic bot detection by Google.

@kdawgwilk
Copy link

@KrauseFx is there a "radar" like portal for Android developer tools where we can report issues like these to Google so they know that they are things the community wants?

@wangxf1030
Copy link

@KrauseFx
Sorry one more question regarding Fastlane android, is there any Fastlane command/action to query the status of an app? For example, Draft, Published, Pending.

@KrauseFx
Copy link
Member Author

@wangxf1030 Sorry, currently no
@kdawgwilk I honestly don't know, I'm usually running around more on the iOS side.

@fastlane fastlane locked and limited conversation to collaborators Jan 18, 2017
@KrauseFx
Copy link
Member Author

KrauseFx commented Jun 28, 2017

For people coming from Google, fastlane fully supports Android, check out the Getting started with fastlane for Android guide 🚀

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests