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

Non-macOS platform support (Windows + Linux) #11687

Open
janpio opened this Issue Jan 24, 2018 · 42 comments

Comments

Projects
None yet
@janpio
Copy link
Collaborator

janpio commented Jan 24, 2018

We are actively working on 🐧 Linux and πŸ–₯️ Windows support for parts of fastlane. Some underlying software like Xcode or iTunes Transporter is only available for macOS, but many other tools and actions can theoretically also work on other platforms.

While we can't give a timeline or ETA, we are seeing good progress and want to start to connect to interested people. Please comment on this issue to indicate your interest and we will publish here when we have something to test.

If you have a need for Windows or Linux support for specific tool or action, please let us know as well so we can prioritize the implementation and testing.

@fastlane fastlane deleted a comment from fastlane-bot Jan 24, 2018

@fastlane-bot

This comment was marked as off-topic.

Copy link

fastlane-bot commented Jan 24, 2018

It seems like you have not included the output of fastlane env

To make it easier for us help you resolve this issue, please update the issue to include the output of fastlane env πŸ‘

@AlexZezekalo

This comment has been minimized.

Copy link

AlexZezekalo commented Jan 29, 2018

Cool! Awaiting for ubuntu 16.04

@ozmaat

This comment has been minimized.

Copy link

ozmaat commented Feb 10, 2018

Look forward for Windows support....

@finestructure

This comment was marked as off-topic.

Copy link

finestructure commented Feb 19, 2018

Would it be possible to package fastlane as a docker image? That way it could presumably easily integrated into various build pipelines (GitLab, BitBucket).

Happy to try and help - is there a good place to start and have a look around?

@janpio

This comment has been minimized.

Copy link
Collaborator Author

janpio commented Feb 19, 2018

Uh, I have 0 experience with Docker - but sounds interesting. Best create a new issue "Package fastlane as docker image" and keep a log of your investigation. First thing I would do is to find other CLI tools that are delivered as a docker image and find out how they did it.

@gnolmon

This comment has been minimized.

Copy link

gnolmon commented Feb 22, 2018

Look forward for Windows support.... :D thanks you

@simonbuchan

This comment has been minimized.

Copy link

simonbuchan commented Mar 5, 2018

We've run fastlane on gitlab's docker, it's pretty trivial to add, e.g. RUN apt-get-install -y ruby && gem install fastlane -NV to a Dockerfile - the real problem is having the android SDK with the right packages installed for your app.

@Purus

This comment has been minimized.

Copy link

Purus commented Mar 21, 2018

+1 for Windows Support.

@ozbek

This comment has been minimized.

Copy link

ozbek commented Mar 23, 2018

/sub

@hjanuschka

This comment was marked as off-topic.

Copy link
Member

hjanuschka commented Mar 23, 2018

@feinstruktur in fact i am using fastlane running inside a docker - (with socket mount) to build docker containers πŸ‘

FROM ruby:2.4-stretch

ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8

RUN mkdir ~/.ssh/
RUN ssh-keyscan -t rsa gitlab.krone.at >> ~/.ssh/known_hosts

RUN export LANG=en_US.UTF-8
RUN LANGUAGE=en_US.UTF-8
RUN LC_ALL=en_US.UTF-8
RUN gem install fastlane gitlab fastlane-plugin-docker semantic rest-client sentry-api

# ADD Docker itself
RUN apt-get update
RUN apt-get install -y \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg2 \
     software-properties-common

RUN curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | apt-key add -
RUN add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
      $(lsb_release -cs) \
         stable"

RUN apt-get update
RUN apt-get install -y docker-ce

inside the fastlane_runner docker i use https://github.com/milch/fastlane-plugin-docker to build another docker container. (❀️ ci worker running in docker, running fastlane in docker, building docker containers, docker inception πŸš€ )

@silwar

This comment has been minimized.

Copy link

silwar commented Apr 9, 2018

Looking forward to Ubuntu 16.04 support.

@henningBunk

This comment has been minimized.

Copy link

henningBunk commented Apr 10, 2018

If you need this feature but don't want to wait I have some good news. You can already use fastlane (or at least parts of it) on Windows and Linux.

I am using fastlane screengrab to take screenshots of an android app on windows. You will need the Ubuntu subsystem for windows. Install fastlane in the linux shell. I had some struggles while installing but could find a solution. Than you can call fastlane from your subsystem.

Works like a charm for me :-)

@fastlane-bot

This comment was marked as outdated.

Copy link

fastlane-bot commented May 10, 2018

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.

Please make sure to update to the latest fastlane version and check if that solves the issue. Let us know if that works for you by adding a comment πŸ‘

@Buraburaite

This comment has been minimized.

Copy link

Buraburaite commented May 14, 2018

Windows, Ubuntu 16.04, Docker... All are good ideas, I use all of them but would prioritize Windows. Thanks fastlane!

@24PaH

This comment has been minimized.

Copy link

24PaH commented May 19, 2018

Looking forward for Linux support 🐧

@fastlane-bot

This comment was marked as outdated.

Copy link

fastlane-bot commented Jun 21, 2018

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.

Please make sure to update to the latest fastlane version and check if that solves the issue. Let us know if that works for you by adding a comment πŸ‘

@danpe

This comment has been minimized.

Copy link

danpe commented Jul 1, 2018

Any linux support?

@girishghoda

This comment has been minimized.

Copy link

girishghoda commented Jul 10, 2018

Any news for a window?

@Aravindios

This comment has been minimized.

Copy link

Aravindios commented Jul 27, 2018

Cool! Awaiting for linux.

@rogerdavis198

This comment has been minimized.

Copy link

rogerdavis198 commented Jul 29, 2018

Centos or any Linux system, mind u any images out there for Mac and install it that way as a virtual machine ?

@i-need-to-tell-you-something

This comment has been minimized.

Copy link

i-need-to-tell-you-something commented Sep 10, 2018

+1 Linux

@yvolk

This comment has been minimized.

Copy link

yvolk commented Oct 16, 2018

@janpio Reading this thread I've got an impression that actually there is no visible progress in Windows/Linux support since January, when this thread (issue) was created :-(
As explained in #11579 (comment) using Ruby as an underlying language/framework is a cause of this pain. And if so, the only real way forward would be to re-implement Fastlane on a platform/language with better OS support?!
Did Fastlane team consider that option?!

@janpio

This comment has been minimized.

Copy link
Collaborator Author

janpio commented Oct 31, 2018

There is progress, just nothing that would justify updating here (at least not just yet).
For example all code changes on fastlane are already fully tested on both Linux and Windows, but it is not ready enough yet.

Fastlane will not be reimplemented in another language, it is a few ten thousands lines of ruby code after all, but of course feel free to create a new project with the same goals as Fastlane if you want.

@fastlane-bot

This comment was marked as outdated.

Copy link

fastlane-bot commented Dec 23, 2018

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.

Please make sure to update to the latest fastlane version and check if that solves the issue. Let us know if that works for you by adding a comment πŸ‘

@fastlane-bot

This comment was marked as outdated.

Copy link

fastlane-bot commented Jan 1, 2019

This issue will be auto-closed because there hasn't been any activity for a few months. Feel free to open a new one if you still experience this problem πŸ‘

@janpio

This comment has been minimized.

Copy link
Collaborator Author

janpio commented Jan 2, 2019

There is still progress being made here, several PRs were recently merged or are waiting to be merged to further improve on Windows support.

@phillipleblanc

This comment has been minimized.

Copy link

phillipleblanc commented Jan 10, 2019

Transporter is supported on Windows & Linux, according to this link: https://help.apple.com/itc/transporteruserguide/#/itc0d5b535bf
Does that mean that we could one day use fastlane to upload to App Store without requiring macOS?

@janpio

This comment has been minimized.

Copy link
Collaborator Author

janpio commented Jan 10, 2019

You can do that right now. It's just not fully tested and documented @phillipleblanc.

@raveesh-me

This comment has been minimized.

Copy link

raveesh-me commented Jan 11, 2019

I used Fastlane with flutter recently for continuous delivery to clients for internal testing. This helps save so much time and allows for so much faster feedback cycles! I have fallen in love with your work. This is awesome.

Just hope I could run the same thing on my Linux machine on which I do most of the coding. +1 for Linux support. Waiting eagerly!!

@janpio

This comment has been minimized.

Copy link
Collaborator Author

janpio commented Jan 11, 2019

Same as for Windows, you can already do most of the things on Linux. (Exceptions are everything that requires Xcode - and the stuff I couldn't fix yet). Let me know if something does not work that you would like to have working and I will look into it @raveesh-me!

@raveesh-me

This comment has been minimized.

Copy link

raveesh-me commented Jan 14, 2019

Se here are the installation steps for anyone stumbling here trying to figure out how to do this on Ubuntu 18.04:

Install ruby and ruby-dev headers

sudo apt install ruby ruby-dev

Set environment language variables

Add these lines to the top of ~/.profile

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Check that you didn't break the environment and restart

run source ~/.profile in the terminal. If no output, you are safe. Otherwise, check for what you broke in the .profile file πŸ˜†

Install fastlane

sudo gem install fastlane -NV

From there do the normal Fastlane Setup:
https://docs.fastlane.tools/getting-started/android/setup/

@MIna-Maher

This comment has been minimized.

Copy link

MIna-Maher commented Feb 6, 2019

Hi I have a big problem when i install fastlane using this command
#gem install fastlane -NV
I got this problem
ERROR: While executing gem ... (NameError)
uninitialized constant Gem::SafeYAML
Iam using gem version 2
and ruby version 2

@janpio

This comment has been minimized.

Copy link
Collaborator Author

janpio commented Feb 6, 2019

@MIna-Maher Please create a new issue for this and include all the information the bug issue template asks for - then we will be able to help you. If this is on Windows or Linux, please mention me directly with @janpio so I get a notification. Thanks!

@RomuloVHSYS

This comment has been minimized.

Copy link

RomuloVHSYS commented Feb 15, 2019

Same as for Windows, you can already do most of the things on Linux. (Exceptions are everything that requires Xcode - and the stuff I couldn't fix yet). Let me know if something does not work that you would like to have working and I will look into it @raveesh-me!

@janpio here you quote "everything that requires Xcode - and the stuff I couldn't fix yet", is there a chance to fastlane do an implementation to install xcode command line tools on linux or maybe theres a way to dribble that?

@janpio

This comment has been minimized.

Copy link
Collaborator Author

janpio commented Feb 15, 2019

None that I know of. Xcode and its command line tools are macOS only - and you also don't want to mess with Apple here, or they can just remove/delete your app.

(I am personally working on a workaround for that on the side, but that's nothing official from fastlane.)

@TPXP

This comment has been minimized.

Copy link

TPXP commented Feb 16, 2019

Hello, and thank you very much for your work, it is very helpful!

I'm trying to upload an IPA to Testflight, and it looks like it's not working properly. Here are the logs:

$ fastlane pilot upload --username "$FASTLANE_APPLE_LOGIN" --ipa "myapp.ipa"
[11:58:48]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
[11:58:48]: Sending anonymous analytics information
[11:58:48]: Learn more at https://docs.fastlane.tools/#metrics
[11:58:48]: No personal or sensitive data is sent.
[11:58:48]: You can disable this by adding `opt_out_usage` at the top of your Fastfile
[11:58:48]: Login to App Store Connect (****@example.com)
[11:58:52]: Login successful
[11:58:52]: Ready to upload new build to TestFlight (App: 1453045438)...
[11:58:53]: Going to upload updated app to App Store Connect
[11:58:53]: This might take a few minutes. Please don't interrupt the script.

[11:58:53]: Error accessing file, this might be due to fastlane's directory handling
[11:58:53]: Check out https://docs.fastlane.tools/advanced/#directory-behavior for more details

/usr/local/lib/ruby/2.6.0/fileutils.rb:128:in `chdir': No such file or directory @ dir_chdir -  (Errno::ENOENT)
	from /usr/local/lib/ruby/2.6.0/fileutils.rb:128:in `cd'
	from /usr/local/bundle/gems/fastlane-2.116.0/fastlane_core/lib/fastlane_core/itunes_transporter.rb:293:in `execute'
	from /usr/local/bundle/gems/fastlane-2.116.0/fastlane_core/lib/fastlane_core/itunes_transporter.rb:387:in `upload'
	from /usr/local/bundle/gems/fastlane-2.116.0/pilot/lib/pilot/build_manager.rb:38:in `upload'
	from /usr/local/bundle/gems/fastlane-2.116.0/pilot/lib/pilot/commands_generator.rb:66:in `block (2 levels) in run'
	from /usr/local/bundle/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
	from /usr/local/bundle/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
	from /usr/local/bundle/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
	from /usr/local/bundle/gems/fastlane-2.116.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
	from /usr/local/bundle/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
	from /usr/local/bundle/gems/fastlane-2.116.0/pilot/lib/pilot/commands_generator.rb:166:in `run'
	from /usr/local/bundle/gems/fastlane-2.116.0/pilot/lib/pilot/commands_generator.rb:18:in `start'
	from /usr/local/bundle/gems/fastlane-2.116.0/fastlane/lib/fastlane/cli_tools_distributor.rb:105:in `take_off'
	from /usr/local/bundle/gems/fastlane-2.116.0/bin/fastlane:23:in `<top (required)>'
	from /usr/local/bundle/bin/fastlane:23:in `load'
	from /usr/local/bundle/bin/fastlane:23:in `<main>'

This is running under Gitlab-CI on a Linux host. Is pilot expecting some Xcode dependency? It would help a lot if we could upload builds directly from our Linux CI!

@janpio

This comment has been minimized.

Copy link
Collaborator Author

janpio commented Feb 16, 2019

Can you create a new issue for this @TPXP? I can look into this and offer a workaround probably. Thanks.

@TPXP

This comment has been minimized.

Copy link

TPXP commented Feb 16, 2019

@janpio Wow, didn't expect such a quick reply, thanks <3
I'm opening a new issue right now πŸ˜„
Edit: ➑️ #14256

@RomuloVHSYS

This comment has been minimized.

Copy link

RomuloVHSYS commented Feb 18, 2019

@janpio Where can i get updated about that "workaround"? I'm curious about that, and i'm looking for the better solution to implement a CI to iOS projects, but without a macOS server.

@janpio

This comment has been minimized.

Copy link
Collaborator Author

janpio commented Feb 18, 2019

@RomuloVHSYS The issue @TPXP created and linked to: #14256

@RomuloVHSYS

This comment has been minimized.

Copy link

RomuloVHSYS commented Feb 18, 2019

Thanks for your reply

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment