iOS Simulator CoreTelephony-Log-Spam reduzieren

In neueren Xcode-Versionen wurde ich oft mit Infos über CoreTelephony, wenn ich Apps im iOS Simulator getestet habe. Offenbar wird dieses Verhalten von manchen Frameworks hervorgerufen, u.a. Firebase. Dies habe ich kürzlich in einem GitHub Issue gelesen.

Dort findet man auch den nützlichen Tipp, um diese Log-Ausgaben zu deaktivieren. Im Terminal den folgenden Befehl ausführen:

xcrun simctl spawn booted log config --mode "level:off" --subsystem com.apple.CoreTelephony

Der Befehl muss jeweils auf jedem Computer ausgeführt werden, auf dem die App via iOS Simulator laufen soll.

Bye bye Crashlytics Beta

Jahrelang haben wir gerne Crashlytics Beta für die bereitstellung von iOS-App-Versionen für die interne Benutzung eingesetzt. Dieser Dienst wird Ende März 2020 von Google eingestellt.

Mit der internen Version lassen sich neueste Änderungen testen und man kann Entwickleroptionen aktivieren, die nicht für die Produktivversion vorgesehen sind.

Crashlytics Beta hatte u.a. gegenüber TestFlight die folgenden Vorteile
– Keine Apple-ID benötigt, daher einfacheres Einloggen auf Testgeräten möglich
– Keine Verzögerung, die manchmal entstand wenn TestFlight-Versionen erst automatisiert von AppStoreConnect verarbeitet werden
– Nicht auf eine Plattform beschränkt, es wird auch die Bereitstellung von Android-Appversionen unterstüzt

Durch das Crashlytics SDK in der App wurden die Tester außerdem per In-App-Dialog auf aktualisierte Testversionen hingewiesen. Da wir zeitweise viele Releasen erzeugt haben konnte dieses Feature schon den ein oder anderen nerven, da mit (fast) jedem Appstart zunächst ein Dialog weggeklickt werden musste. Aus Entwicklersicht war der Dialog sicherlich hilfreich, da man dadurch besser gewährleisten konnte, dass die Versionen einigermaßen aktuell bleiben.

Glücklicherweise bietet Google mit Firebase App Distribution einen Nachfolger an. Dieser neue Service ist u.a. besser in diverse Google-Dienste integriert. Auch weil Tester nun einen Google-Account für den Login verwenden müssen.

Textänderung in Datei auf Kommandozeile ausgeben lassen

Mit dem diff-Programm lassen sich in der Kommandozeile einfach Änderungen an Dateien ausgeben lassen. Dies nutze ich z.B. um alle Änderungen bei einem Übersetzungsupdate sehen zu können:

  • Datei.txt temporär kopieren nach AlteDateiversion.txt
  • Änderungen an Datei.txt durchführen
  • diff –side-by-side –suppress-common-lines AlteDateiversion.txt Datei.txt
  • AlteDateiversion.txt löschen

Mit den obigen Parametern zeigt diff nur gelöschte, hinzugefügt und geänderte Zeilen an und stellt die Änderungen zweispaltig da.