Bolzplatzarena

Erstellen einer iOS App mit Capacitor & Angular

Ich habe ein Repository mit mehreren Applikationen und will daher mehrere Applikationen per Capacitor bereitstellen. Das Framework braucht einen eigenen Root-Order pro Applikation. Root-Ordner bedeutet, es muss eine package.json geben. Außerdem werden dort die restlichen Sachen, Scripte und erstellten Projekte abgelegt. 

In meiner Ordnerstruktur haben ich einen Ordner "apps" neben den "src" der jeweiligen Applikation gelegt. Das "dist" Verzeichnis von Angular liegt komplett außerhalb und damit zentral für alle.

Initialisiert in diesem Verzeichnis ein neues Package so dass eine package.json entsteht oder kopiert eine einfache Variante hinein.

package.json

json
1 2 3 4 5 6 7 8
{
  "name": "ultradice",
  "version": "1.0.0",
  "description": "ultradice",
  "main": "index.js",
  "author": "Thomas Renger",
  "license": "ISC"
}

Wechselt nun im Terminal in Euer "apps" Verzeichnis und initialisiert Capacitor:

npx cap init

Ihr müsst zwei Fragen beantworten, wobei die Frage nach dem Namen der App bereit vorausgefühlt ist, weil sich die CLI den namen aus der package.json nimmt.

Capacitor zeigt euch die nächsten Befehle direkt an, diese funktionieren allerdings nur, wenn man sein Projekt entsprechend vorbereitet hat. Es erwartet einen "www" Ordner, den man dann entsprechend nutzt. Wenn Ihr diesen nicht habt, oder eben woanders habt, passt einfach die Konfiguration von Capacitor entsprechend an. Dazu einfach die Konfigurationsdatei anpassen:

capacitor.config.json

json
1 2 3 4 5 6 7 8
{
  "appId": "net.bolzplatzarena.ultradice",
  "appName": "ultradice",
  "bundledWebRuntime": false,
  "npmClient": "npm",
  "webDir": "../../../dist/ultradice/public",
  "cordova": {}
}

Nun könnt Ihr den Befehl für eure Plattforma ausführen:

npx cap add ios

Habt Ihr Euer System gut vorbereitet (ich sagen nur "pod") dauert dieser Vorgang nur wenigen Sekunden und ich könnt mit

npx cap open ios

Xcode starten, um dort Eure Applikation direkt zu testen. Dies sollte im ersten Anlauf nicht wirklich lange dauern, weil keine Plugins & Co. geladen werden müssen. Am längsten dauert vermutlich das Laden des Emulator.