Gitlab is a wonderful tool to create your own pipeline. Combined to Fastlane, you will be able to have quickly your own CI scalable and maintainable.

Image for post
Image for post

Register Gitlab Runner

In your Gitlab UI, go in Settings -> CI/CD


Image for post
Image for post

In this article, Self hosted CI will be installed on a MacOS.

Gitlab-Runner

GitLab Runner is an application that works with GitLab CI/CD to run jobs in a pipeline.

In order to perform your pipelines, we need to install runners with Homebrew:

brew install gitlab-runner

In some case, you could have your publisher emit some nullable value and don’t want it.

The operator compactMap publish all non-nil element. It can be useful if you don’t want to handle unwrapping in your sink or other combine operators.

Image for post
Image for post

You can find the playground here

More informations on Apple documentation


Firebase Test Lab is a cloud-based app-testing infrastructure. With one operation, you can test your Android or iOS app across a wide variety of devices and device configurations, and see the results — including logs, videos, and screenshots — in the Firebase console.

Image for post
Image for post

To ensure your app quality, Firebase Test Lab provides you with physical and virtual devices that allow you to run tests that simulate actual usage environments.

Build your project to test

To test Firebase Test lab, you can find a sample project here :

This app is composed of a label incremented by a button.

To make the application testable by Firebase, we need to compile it for Generic iOS…


In some case, when you want to use gem, it could be possible you are behind a proxy.

Image for post
Image for post

To avoid this case, you need to set your proxy’s information in your bash_profile.

Go to your home’s folder

cd ~/

Create your bash_profile

touch .bash_profile

Now you can edit your bash_profile and add this function

enableproxy() {
export HTTP_PROXY=http://my.proxy.here:port.number
export HTTPS_PROXY=http://my.proxy.here:port.number
export http_proxy=$HTTP_PROXY
export https_proxy=$HTTPS_PROXY
git config — global http.proxy http://my.proxy.here:port.number
git config — global https.proxy http://my.proxy.here:port.number
}
#Delete this line to proxy usage
enableproxy

Don’t forget to replace http://my.proxy.here:port.number with your own proxy’s URL

Back in your terminal, reload .bash_profile

. .bash_profile

That’s it


Sometimes, it could happened the Gradle Wrapper is not present in your project.

So it could be difficult to execute a specific gradle’s task

Image for post
Image for post

To generate your Gradle Wrapper, you have to insert this block on your build.gradle at the Project’s level, with your target gradle’s version

After this, run this task


Download the application “TestFlight” on the app store :

Image for post
Image for post

Open the invitation mail received from Eyelights :


Activate Bluetooth on MAC

Connect your device to your MAC by Bluetooth

Start a terminal et use this command :

screen /dev/tty.Bluetooth-Incoming-Port

Image for post
Image for post
Command to start screen

After this, you will see a blank screen :

About

Kevin ABRIOUX

Android & iOS, quality in software is 𝛼&ɷ

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store