Ruby ist eine dynamische interpretierte Sprache mit eleganter Syntax, bekannt für das Framework Ruby on Rails. In der mobilen Entwicklung wird Ruby vor allem durch Fastlane verwendet — das Standardwerkzeug zur Automatisierung von Builds, Tests und Deployment von iOS- und Android-Anwendungen. Laut der offiziellen Fastlane-Dokumentation wird das Tool in über 100.000 Projekten weltweit eingesetzt.
Wichtige Punkte
Ruby ist eine dynamische interpretierte Open-Source-Sprache, die 1995 von Yukihiro Matsumoto entwickelt wurde. Das Kernprinzip von Ruby ist die optimale Einfachheit (Prinzip der geringsten Überraschung). Die Sprache ist bekannt für Blöcke (Closures), einen rein objektorientierten Ansatz (alles ist ein Objekt, einschließlich Zahlen) und ein leistungsstarkes Metaprogrammierungssystem.
Ruby läuft auf dem YARV-Interpreter (Yet Another Ruby VM) mit JIT-Kompilierung seit Version 3.1. Die aktuelle Version Ruby 3.4 (2025) enthält Dekorateure, einen verbesserten Prism-Parser und experimentelle Typunterstützung durch RBS. RubyGems — der Paketmanager — enthält über 200.000 Gems.
Ruby on Rails ist das bekannteste Web-Framework, das mit Ruby erstellt wurde, aber in der mobilen Entwicklung wird Ruby anders eingesetzt. Seine Hauptnische ist Fastlane: ein Ökosystem von Ruby-Skripten und Gems zur Automatisierung aller Phasen des mobilen App-Lebenszyklus — von der Codesignierung bis zur Veröffentlichung in den Stores.
Für die Arbeit mit Fastlane reicht ein grundlegendes Verständnis von Ruby aus: Methoden, do-end-Blöcke, Symbole (:symbol) und Hash-Syntax { key: value }. Im Gegensatz zu Python verwendet Ruby end zum Schließen von Blöcken anstelle von Einrückungen. Methoden können ohne Klammern aufgerufen werden — dies wird im Fastlane-DSL aktiv genutzt.
# Grundlegende Ruby-Syntax, die in Fastlane verwendet wird
def download_assets(version, platform: "ios")
paths = {
ios: "ios/Assets.car",
android: "android/app/src/main/assets"
}
url = "https://cdn.example.com/assets/#{version}/#{paths[platform.to_sym]}"
puts "Downloading from: #{url}"
unless File.exist?("temp/assets")
Dir.mkdir("temp/assets")
end
result = system("curl -o temp/assets.zip #{url}")
raise "Download failed" unless result
end
download_assets("1.2.3", platform: "android")Im Beispiel nimmt die Methode download_assets ein version-Argument und einen optionalen benannten Parameter platform (Standard ios). String-Interpolation mit #{...} bettet Werte direkt in Strings ein. unless ist das Gegenteil von if — es führt Code aus, wenn die Bedingung falsch ist.
Fastlane ist ein Open-Source-Tool, das in Ruby geschrieben ist. Installiert über gem install fastlane, bietet es eine Reihe von Befehlen zur Automatisierung der routinemäßigsten Aufgaben mobiler Entwickler: Erstellen von Screenshots, Codesignierung, Veröffentlichung in TestFlight und Google Play Console.
Fastlane besteht aus Tools: sigh (Zertifikatsverwaltung), match (Zertifikatssynchronisation in Teams), gym (iOS-Builds), gradle (Android-Builds), deliver (iOS-Veröffentlichung), supply (Android-Veröffentlichung), snapshot (Screenshots), scan (Tests). Alle Tools sind über eine einzige Fastfile zugänglich.
In großen Projekten verarbeitet Fastlane über 50 Aktionen in einer einzigen Pipeline: Versionserhöhung, Asset-Download von CDN, Build, Signierung, Upload zu App Store Connect, Senden von Slack-Benachrichtigungen. Die gesamte Pipeline wird mit einem einzigen Befehl ausgeführt: fastlane release.
Fastfile ist eine Ruby-ähnliche DSL-Datei, die eine Abfolge von Aktionen (Lanes) beschreibt. Jede Lane ist eine separate Aufgabe: beta (Test-Build), release, screenshots. Lanes können andere Lanes mit übergebenen Parametern aufrufen.
# Fastfile — Konfiguration der iOS-App-Build-Pipeline
fastlane_version "2.220.0"
default_platform :ios
platform :ios do
desc "Erstellen und Bereitstellen des TestFlight-Builds"
lane :beta do |options|
increment_build_number(
build_number: options[:build]
)
match(type: :appstore)
gym(
scheme: "MyApp",
export_method: "app-store",
configuration: "Release"
)
upload_to_testflight(
app_identifier: "com.example.myapp"
)
slack(
message: "Build #{options[:build]} in TestFlight hochgeladen"
)
end
endDie beta-Lane führt nacheinander aus: Build-Nummer erhöhen (increment_build_number), Zertifikate synchronisieren (match), Archiv erstellen (gym), zu TestFlight hochladen (upload_to_testflight) und Slack-Benachrichtigung senden. Der Parameter :build wird als benanntes Argument an die Lane übergeben.
Fastlane unterstützt beide Plattformen in einer einzigen Fastfile. Für Android verwenden Sie eine Lane innerhalb von platform :android mit den Aktionen gradle, supply und google_play_track_version_codes.
platform :android do
desc "APK erstellen und in Google Play Internal Testing veröffentlichen"
lane :beta do
gradle(
task: "assemble",
build_type: "Release",
flavor: "Production"
)
supply(
track: "internal",
apk_paths: ["app/build/outputs/apk/release/app-release.apk"]
)
end
endFastlane enthält über 200 integrierte Aktionen. Nachfolgend die wichtigsten für die mobile Entwicklung, nach Kategorien geordnet.
| Aktion | Plattform | Zweck |
|---|---|---|
| match | iOS | Zertifikate und Provisioning-Profile über Git synchronisieren |
| gym | iOS | .app- und .ipa-Archive erstellen |
| scan | iOS | UI-Tests auf dem Simulator ausführen |
| snapshot | iOS | Automatische Screenshot-Erstellung auf verschiedenen Geräten |
| deliver | iOS | Build, Screenshots und Metadaten zu App Store Connect hochladen |
| pilot | iOS | TestFlight-Verwaltung: Builds hochladen, Tester hinzufügen |
| gradle | Android | Gradle-Aufgaben ausführen: assemble, test, bundle |
| supply | Android | APK/AAB und Metadaten zu Google Play Console hochladen |
| screengrab | Android | Automatische Screenshots für Google Play |
| firebase_app_distribution | Beide | Build zu Firebase App Distribution hochladen |
match ist ein Fastlane-Gem zur Synchronisierung von iOS-Zertifikaten und Provisioning-Profilen zwischen Entwicklern. Alle Geheimnisse werden in einem verschlüsselten Git-Repository oder S3 gespeichert. Match generiert automatisch Zertifikate, wenn sie fehlen, und erneuert sie bei Ablauf.
# Initialisierung von match für ein neues Projekt
$ fastlane match init
# Erstellen und Synchronisieren von App Store-Zertifikaten
$ fastlane match appstore
# Entwicklungszertifikate für das Team erstellen
$ fastlane match development
# Alle Zertifikate bei Ablauf erneuern
$ fastlane match --forceMatch speichert private Schlüssel mit einer Passphrase, die nur Entwickler kennen. Jeder Entwickler klont das Zertifikatsrepository und führt match aus, um die aktuellen Profile zu installieren. Apple-Zertifikate sind 1 Jahr gültig; match erneuert sie automatisch.
Fastlane integriert sich in jede CI/CD-Plattform: GitHub Actions, GitLab CI, CircleCI, Bitrise, Jenkins und Xcode Cloud (über xcode-build). Fastlane wird auf CI mit fastlane <lane_name> ausgeführt und gibt bei Fehlschlagen eines Schritts einen Fehlercode zurück.
Die Einrichtung für GitHub Actions umfasst die Installation von Ruby, fastlane und die Ausführung der Lane über bundle exec fastlane. iOS-Builds erfordern einen macOS-Runner. Android-Builds können ubuntu-latest verwenden, was günstiger ist.
# .github/workflows/deploy.yml — CI/CD mit Fastlane
name: Deploy Mobile App
on:
push:
branches: [main]
jobs:
ios-deploy:
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.3"
- run: bundle install
- run: bundle exec fastlane beta
- env:
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}Der Workflow wird bei Push auf main ausgeführt. Der macOS-Runner führt bundle exec fastlane beta aus der Fastfile aus. MATCH_PASSWORD wird über GitHub Secrets zur Zertifikatsentschlüsselung übergeben. Nach Abschluss der Lane sendet eine Slack-Aktion eine Benachrichtigung.
RubyGems ist der Paketmanager für Ruby. Fastlane wird durch Plugins erweitert — Gems, die neue Aktionen hinzufügen. Das Plugin fastlane-plugin-versioning verwaltet Versionen, fastlane-plugin-firebase_app_distribution lädt Builds zu Firebase hoch. Auf GitHub gibt es über 500 Fastlane-Plugins.
Die Gemfile im Projektroot fixiert die Versionen aller Abhängigkeiten für reproduzierbare Builds. bundle install installiert Gems aus der Gemfile.lock. Zu den wichtigsten Gems für die mobile Entwicklung gehören: fastlane, cocoapods (iOS-Abhängigkeiten), xcodeproj (.xcodeproj-Manipulation).
# Gemfile für ein mobiles Projekt
source "https://rubygems.org"
gem "fastlane", "~> 2.220"
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)Fastlane ist nicht das einzige Automatisierungstool. Vergleichen wir es mit den wichtigsten Alternativen anhand von Kriterien, die für ein mobiles Team wichtig sind.
| Kriterium | Fastlane (Ruby) | Bitrise (Web) | Xcode Cloud (Apple) | GitHub Actions (YAML) |
|---|---|---|---|---|
| Flexibilität | Maximal (Code) | Mittel (Schritte) | Niedrig (begrenzt) | Hoch |
| iOS | Volle Unterstützung | Vollständig | Vollständig (integriert) | Über selbstgehostetes macOS |
| Android | Volle Unterstützung | Vollständig | Nein | Vollständig |
| Zertifikate (match) | Integriert | Über Code Signing | Automatisch | Über fastlane |
| Lokale Ausführung | Ja | Nein (nur CI) | Nein | Über act |
| Plugins | 500+ | 200+ Integrationen | Keine | 20.000+ Aktionen |
Fastlane bleibt das flexibelste Tool für komplexe Pipelines. Bitrise ist praktisch für Teams ohne Ruby-Entwickler. Xcode Cloud eignet sich für einfache iOS-Projekte. GitHub Actions ist ideal, wenn das Team bereits GitHub verwendet.
Häufig gestellte Fragen
Ruby wird nicht zum Schreiben mobiler Anwendungen verwendet, sondern zur Automatisierung von Build-, Test- und Bereitstellungsprozessen über Fastlane. Fastlane ist der De-facto-Standard für CI/CD in der iOS- und Android-Entwicklung.
Fastlane funktioniert auf macOS, Linux und Windows, aber iOS-Builds erfordern Xcode und macOS. Android-Builds können auf jeder Plattform ausgeführt werden. Entwickler verwenden lokal macOS und auf CI — macOS für iOS und Linux für Android.
Ein grundlegendes Verständnis von Ruby reicht für die Arbeit mit Fastlane aus. Fastlane verwendet ein Ruby-ähnliches DSL in der Fastfile. Für typische Aufgaben reichen Kenntnisse über Gems, do-end-Blöcke und grundlegende Syntax. Tiefgehende Ruby-Kenntnisse sind nicht erforderlich.
Alternativen: Gradle für Android (integriert), Xcode Cloud (Apple), Bitrise (Web-Oberfläche), GitHub Actions (YAML). Fastlane bleibt dank seines reichhaltigen Ökosystems an Aktionen und Plugins das flexibelste Tool.
Ja, Fastlane wird von großen Unternehmen verwendet. Alle Aktionen und Konfigurationsdateien werden im Repository versioniert, und match gewährleistet die sichere Speicherung von Zertifikaten in einem Repository oder S3.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch