• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

Welches MacOS für App Deployment

Registriert
10.01.21
Beiträge
5
Hallo in die Runde,

ich möchte eine App im iOS AppStore publishen. Es handelt sich dabei um eine AngularApp die mit Cordova Apache gebaut werden soll. Für Android funktioniert alles bestens, auch für iOS soll dieser Weg kein Problem sein (soweit ich gehört habe)
Ich bin bisher allerdings eher in der Windows Welt unterwegs und habe kein MacOS System. Ich möchte zum App bauen und deployn einen Mac Mini oder günstiges MacBook kaufen. Dazu meine frage.
Welche Version vom MacOS sollte ich verwenden damit die App auf den neuesten iOS Systemen läuft oder ich in sonst irgendwelche Probleme laufe. Ich denke hauptsächlich geht es da um die Kompatibilität mit Xcode welches zum bauen gebraucht wird. Oder was sollte ich noch beachten?

Danke schon mal für jeden Hinweis
 

torben1

Celler Dickstiel
Registriert
05.08.08
Beiträge
796
Am 'einfachsten' ist es natürlich wenn Du immer da aktuellste System nutzt was gerade auf dem Markt ist. Xcode wird aus dem Appstore geladen kann also über diesen auch aktuell gehalten werden. Im Moment ist es MacOS 11.1 Big Sure.
 

Wuchtbrumme

Golden Noble
Registriert
03.05.10
Beiträge
21.522
Eigentlich geht es nur um die XCode-Version. Da gibt es dann wieder Abhängigkeiten zu den APIs und damit wiederum zum neuesten System.

Aber bist Du Dir sicher, dass es immer das neueste System sein muss? Ich meine, Zielsystem braucht ja nicht iOS14 sein, sondern um möglichst viele zu erreichen, würde ich so niedrig gehen wie technisch möglich.

Du nmusst dieses System auch archivieren bzw. immer nutzbar halten - oder ggfls. Deinen Code anpassen.
 

torben1

Celler Dickstiel
Registriert
05.08.08
Beiträge
796
Grundsätzlich, oder eigentlich hast Du Recht, aber mit jeder neuen Version von MacOS werden auch neue Features für die Zusammenarbeit mit iOS eingebaut. Um diese auch testen zu können ist ein aktuelles System nicht verkehrt. Es kommt halt immer sehr stark auf die App an.
Eine App die z.B. Lidar nutzt für ein iPhone 5 zu bauen macht halt keinen Sinn.

Das heißt ich habe entweder ein Pflichtenheft in dem genau festgehalten ist was ich brauche und kann dem entsprechend auch ein System suchen mit dem genau das funktioniert, oder aber ich nehme gleich ein aktuelles System und kann eventuell auch Dinge testen die ich vorher nicht auf dem Schirm hatte.
 

tkreutz

Roter Stettiner
Registriert
27.05.19
Beiträge
973
Genau,

also wie meine Vorposter bereits sagten, hängt es auch davon ab, mit welchen Geräten Deine Zielgruppe unterwegs ist. Nach Updates von Xcode (Vor zwei Tagen kam z.B. wieder eine Aktualisierung auf Xcode 12.4) sieht man ja immer, welche Änderungen hinzugekommen sind.

Die Frage ist aber, ob die Zielgruppe auch schon neuere Geräte oder iOS Versionen nutzt, oder ob dahingehend die App bereits vorbereitet werden soll. Sofern man die Unterstützung auch nach unten aufrecht erhalten will/muss, muss man sich auch mit den technischen Details rumschlagen und auch ggf. ältere Versionen startbereit halten.

Das Problem nach der Einführung von BigSur ist, dass man nicht mal eben auf die schnelle zurück nach Catalina, Mojave oder älter + passende Entwicklungsumgebung per Knopfdruck springen kann. Vielmehr braucht man ein komplett aufgesetztes System nebst entsprechenden Testgeräten (auch virtuell). Vor BigSur konnte man das über entsprechende Images mittels Time Capsule Backup realisieren (geht heute auch noch, der Workflow dazu ist aber etwas schwieriger geworden).

Es gibt mittlerweile sogar Dienstleister, die einen ganzen Park von Mac Minis in unterschiedlichen Versionen bereit halten, nur um mal eben auf die Schnelle unter einem bestimmten Szenario Code testen zu können. Denn jede Umstellung wirft auch Altlasten über Board. Also hier ist es wichtig, auch einen Fahrplan zur Pflege der Entwicklermaschine zu erstellen.

Ohnehin arbeiten Entwickler auch immer mit dem Blick nach vorne oder hinten. Also testen rechtzeitig sofern möglich mit den neuesten Versionen oder kommenden RC Kandidaten. Der Zugang dazu läuft ja über den Entwickler-Account im App-Store.

Viele Entwickler installieren Xcode aber nicht über den Appstore, da dieser wegen dem recht großen Paket öfters mal Probleme macht (Überlastung Download Center bei Apple). Daher sei an dieser Stelle noch gesagt, dass man das auch als gezipptes Paket laden kann und separat installieren, was ich auch empfehlen würde.

Zur Bereinigung von Xcode reicht es dann aus, über die Kommandozeile folgende Befehle einzugeben:

- sudo rm -rf /Applications/Xcode.App
- sudo rm -rf Library/Developer
-sudo rm -rf ~/Library/Developer
- anschließend einen Reboot ausführen

Wichtig ist es außerdem, die Abhängigkeit mit externen Paketen zu pflegen und diese Pflege aufrecht zu erhalten.

Wie gesagt, meine Empfehlung wäre, je nach Bedarf für ein bestimmtes Projekt, die Komplettumgebung des Rechners mit allen eingestellten Abhängigkeiten und Versionen via TC Backup zu sichern und auch wenigstens einen Rücksicherungstest davon zu machen. Das Szenario ist mitunter auch recht lustig und es ist blöd, wenn man unter Zeitdruck erst rausfinden muss, wie das alles so funktioniert.

Sofern die App allerdings auch die Fähigkeit besitzen soll, auf Apples Silicon (M1 Arm) zu laufen, wird man auch nicht um ein entsprechendes Testgerät herum kommen (M1).

Viel Erfolg !

Gruß
Thorsten
 
Registriert
10.01.21
Beiträge
5
Vielen Dank für eure ausführlichen Antworten. Ich werde mich wohl für ein Mac Mini mit einem Big Sure System entscheiden. Welche iOS Version meine Nutzer haben kann ich nicht wissen, ich denke sehr weit gefächert. Deshalb wollte ich schon dass die App sowohl auf dem neusten iOS, als auch älteren Versionen fehlerfrei läuft. Ich kenne xCode noch nicht, aber ich hatte gedacht dort kann ich verschiedene Umgebungen simulieren und meine App testen.
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
Wir nutzen für verschiedene Build & Tests verschiedene MacOS in Parallels VMs auf einem "dickem" Mini und können so auch noch OS Versionen testen die wir auf aktueller Hardware, mangels Treiber, gar nicht mehr installieren könnten. Die Lizenzbestimmungen von MacOS decken das auch ab, solange es auf einem MacOS Host läuft.
 
  • Like
Reaktionen: tkreutz

tkreutz

Roter Stettiner
Registriert
27.05.19
Beiträge
973
aber ich hatte gedacht dort kann ich verschiedene Umgebungen simulieren und meine App testen.

Kommt darauf an, was Du unter "verschiedene Umgebungen" simulieren meinst. Du kannst alle Versionen von Xcode im Download Bereich laden als XIB File (komprimiertes Format) laden und jederzeit auf dem bestehenden Mac austauschen mit der Anleitung, wie ich es geschrieben hatte. Also XIB Datei auspacken und Xcode in das App-Verzeichnis ziehen.

Für jedes Gerät (iOS) kann man im Simulator entsprechende "simulierten" Umgebungen laufen und auch für zusätzliche Geräte weitere Images laden. Aber - jetzt kommt's - nicht jede Version von iOS läuft auf jeder Version von Xcode. Und nicht jede Version von Xcode läuft auf jeder Version von MacOS.

Dazu muss man dann ggf. das Host-System auf den entsprechenden Stand stellen. Krasses Beispiel, will man eine Software pflegen, die unter Snow Leopard entwickelt worden ist, braucht man ein entsprechendes Xcode mit einem entsprechenden Mac OS mit einem entsprechendem Mac. Sonst wird daraus nix. Aber ihr fangt ja dann im heute an und müsst euch zunächst keine Gedanken über die Vergangenheit machen. Sonst ist man bei lustigen Migrationsprojekten. Denn jetzt kommt's Snow Leopard könnte ich auf einem aktuellem Mac gar nicht mehr installieren, weil die Hardware sich geändert hat mittlerweile. Also selbst, wenn ich eine VM zum Laufen bringen würde, könnte die Entwicklung daran scheitern.

Im Windows Bereich geht das relativ einfach mit VMs (da kann ich auch noch einen Win 98 PC emulieren) und im Mac Bereich muss man es halt entsprechend organisieren. Entweder hat man einen dicken Host, wie FrankR sagte, oder man hat sein System eingerichtet und von verschiedenen Kombinationen ein Backup gemacht, welches man nach Bedarf zurückspielt (das dauert dann halt länger).

Ich würde erst mal anfangen und mir nicht schon am Anfang zu viele Gedanken darüber machen.
 
Registriert
10.01.21
Beiträge
5
Genau, ich denke wenn ich mir zu viele Gedanken darüber mache werden es zu viele Baustellen für mich als Neuling. Ich bin erstmal sehr dankbar für eure Beiträge und werde es im Hinterkopf behalten. Mein eigentlicher Plan war es eine Progressive Web App zu nutzen (das geht für ein Angular Projekt ziemlich einfach). Allerdings scheinen mit einer PWA die älteren iOS ab 12 noch Probleme zu haben. (https://medium.com/@firt/pwas-on-io...bad-and-the-not-sure-yet-if-good-a37b6fa6afbf)

Aber sowieso finde ich eine native App cooler, von daher ist die Entscheidung gefallen ;)
 
  • Like
Reaktionen: tkreutz

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
- sudo rm -rf ~/Library/Developer
Achtung: damit löschst du aber auch diverse persönliche Einstellungen, wie eigene Farbschema, Keybindings, Code-Snippets oder File-Templates.

Aber - jetzt kommt's - nicht jede Version von iOS läuft auf jeder Version von Xcode
Das iOS läuft nicht auf Xcode ;), sondern Xcode startet Simulatoren, die das iOS dann ausführen. Das aktuelle Xcode 12.4 unterstützt Simulatoren bis runter zu iOS 10.3.

Auch auf dem Mac erlaubt die aktuelle Xcode Version das Deployment bis runter zu OS X Mavericks 10.9, was ja auch schon über sechs Jahre alt ist. Zum Testen braucht man natürlich entsprechende Systeme.

Wenn man Apps im App-Store veröffentlichen will, kommt man mit alten Xcode Versionen nicht lange aus. Apple setzt da recht flott die neuesten Versionen voraus.
 
  • Like
Reaktionen: tkreutz

Scotch

Bittenfelder Apfel
Registriert
02.12.08
Beiträge
8.055
sudo rm -rf ~/Library/Developer

Der Befehl sudo soll hier was genau bewirken?

sudo rm -rf Library/Developer

Den Befehl nutzt man, weil die Fehlmermeldung so cool ist? 😂 Und mit richtigem Pfad lässt man das schön bleiben, wenn man nicht der einzige Benutzer des Systems ist, oder ganz genau weiß, was man da tut.

anschließend einen Reboot ausführen

Der soll im Zusammenhang mit deinen wirren Befehlen genau was bewirken?
 

tkreutz

Roter Stettiner
Registriert
27.05.19
Beiträge
973
Der Befehl sudo soll hier was genau bewirken?

Den Befehl nutzt man, weil die Fehlmermeldung so cool ist? 😂 Und mit richtigem Pfad lässt man das schön bleiben, wenn man nicht der einzige Benutzer des Systems ist, oder ganz genau weiß, was man da tut.

Der soll im Zusammenhang mit deinen wirren Befehlen genau was bewirken?

Der Tipp ist auf Stackoverflow und auch im Developer Forum gegeben worden.


Eigentlich gehe ich davon aus, dass Leute, die seit über 10 Jahre im Xcode Development tätig sind, wissen was sie tun.

Aber ja, Du hast natürlich Recht. Man sollte immer alles in Frage stellen. Ich habe auch in der Vergangenheit festgestellt, dass ein CleanUp beim Wechsel verschiedener Xcode Versionen nicht immer sauber läuft.

Ich hatte Artefakte / Reste, die sich nur via Sudo bereinigen ließen. Aber richtig, sehr gefährlich und sollte man nicht anwenden, ohne zu wissen, was man tut.

Was ist denn Deine Empfehlung / Methode, um verschiedene Xcode Varianten im Wechsel zu betreiben und ggf. Third-Party Libraries z. B. Cocoapods vollständig wieder zu bereinigen ?

Allerdings muss ich zugeben, dass ich diese Methode auch nur im Sonderfall anwende, i.d.R. wechselt man ja eher nicht dauernd zwischen verschiedenen Xcode Versionen hin und her. Zudem bevorzuge ich vollständige Systemsicherungen mittels Time Capsule. Ich gehe auch nicht davon aus, das im iOS Segment Apps mit Long-Term-Support benötigt werden, hier ist eher ein Fast Forward Programming angesagt, als Asbach Uralt Anwendungen nach hinten zu Supporten.

Allerdings bedeutet es im Umkehrschluss auch, im Workflow ständig verschieden konfigurierte Hardware vorrätig zu haben oder eben zu Virtualisieren, was ja auch gewissen Grenzen unterliegt.

Mein Workflow ist, dass jeweilige OS sauber aufzusetzen, ab dem Stand eine Vollsicherung zu machen und anschließend die Dev-Umgebung einzurichten.

Bisher hat mich dieser Workflow dahingehend gerettet, dass ich problemlos zwischen verschiedenen Dev-Umgebungen "Switchen" konnte.

Bei Bedarf dann nach Einrichtung des Dev-Environments eine entsprechende Sicherung.

Nach BigSur hat sich aber das Thema Vollsicherung / vollständige Rücksicherung geändert, d.h. man muss den Workflow überdenken, ab dem Punkt, wo man eben Vor oder nach Big Sur ein Dev-Environment mit unterschiedlichen Konfigurationen aufrecht erhalten will.

Beispiel. Wenn ich jetzt das Dev-Environment nach der Anleitung der Blender Gruppe einrichten möchte, scheitert der Prozess, da sich die darunter liegende Infrastruktur mittlerweile verändert hat. Oder ich muss mein System auf genau die Umgebung zurückstellen. Oder die Blender Leute müssen die Installationsanleitung mit jedem OS Release neu aufsetzen usw.

In der Vergangenheit konnte man via Command-Line Tools und Homebrew Abhängigkeiten recht gut pflegen. Leider berücksichtigen auch einige Prozesse in dieser Community nicht, wenn sich Abhängigkeiten im OS geändert haben. So lassen sich zwar Anwendungen builden, viele davon berücksichtigen aber nicht veränderte Prozesse im OS z.B. in den Sicherheitsrichtlinien. Entsprechend funktionieren via Homebrew neu kompilierte Tools eben nicht, obwohl ein Builden möglich ist.

Warum ich das Thema in dieser Richtung ausdehne ? Nun, meiner Meinung nach beinhaltet das Thema Entwicklung auch die Pflege der Entwicklungsumgebung und meine Erfahrung in der Vergangenheit ist die, dass der Augenmerk bei vielen Entwicklern nicht über den Rand des Tellerrandes reicht. Sonst würde es nicht so viele Apps im Homebrew geben, die alle auf BigSur mit OK getestet worden sind, aber überhaupt nicht nutzbar sind.
 
Zuletzt bearbeitet:

torben1

Celler Dickstiel
Registriert
05.08.08
Beiträge
796
@tkreutz wie bekommst Du Deine iOS-Apps mit einer 'alten' Xcode Version in den App-Store?
 

tkreutz

Roter Stettiner
Registriert
27.05.19
Beiträge
973
@tkreutz wie bekommst Du Deine iOS-Apps mit einer 'alten' Xcode Version in den App-Store?

iOS Apps betrifft diese Thematik nicht. Aber man kann mit Xcode auch MacOS Apps entwickeln. Auch wenn dieser Markt vielleicht zukünftig unbedeutend werden wird, in der Vergangenheit gab es einen Markt abseits des AppStores. Daneben gibt es eine Menge an Opensource Projekten, die außerhalb des AppStores stattfinden.
 

torben1

Celler Dickstiel
Registriert
05.08.08
Beiträge
796
Ah, ok. Da es dem Fragesteller um iOS ging und Du beschrieben hast das Du dazu alte Versionen nutzt war mir nicht klar das Du Dich nicht darauf bezogen hast. Dachte schon Du kennst ein Weg

BTW, hast Du ein konkretes Beispiel für mich warum ein Projekt das neu erstellt wird ein ‚altes‘ Xcode und ein altes System benötigt. Wir haben das bei der Entwicklung noch nie nutzen müssen.
 

tkreutz

Roter Stettiner
Registriert
27.05.19
Beiträge
973
Normalerweise ruft man den dafür vorgesehenen Befehl "xcode-select" auf.

Ich hatte Schwierigkeiten, mit der aktuellen Xcode Version ein Environment einzurichten, deren Anleitung sich auf eine ältere Version bezog. Aber es ist auch nicht auszuschließen, dass der Fehler in meiner Vorgehensweise lag. Normalerweise starte ich immer mit einem "Blank" System, wenn ich ausschließen möchte, dass Bugs vorheriger Installationen dafür sorgen können, dass etwas nicht rund läuft. Dann probiere ich das nächstes Mal mit xcode-select, lerne ja gerne hinzu.
Ah, ok. Da es dem Fragesteller um iOS ging und Du beschrieben hast das Du dazu alte Versionen nutzt war mir nicht klar das Du Dich nicht darauf bezogen hast. Dachte schon Du kennst ein Weg

Nein, danke. Die Frage des Fragestellers hat damit natürlich nichts mehr zu tun. War vielleicht unglücklich, den Thread zu kapern. Macht man ja auch nicht. Danke für Deine Hilfe, ich denke die Fragen des Fragestellers sind hinreichend geklärt. Er nimmt einfach die aktuelle Xcode Version und legt damit los.
 

Scotch

Bittenfelder Apfel
Registriert
02.12.08
Beiträge
8.055
Der Tipp ist auf Stackoverflow und auch im Developer Forum gegeben worden.

Machst du hier copy & paste ohne zu verstehen, was du kopierst? Verstehst du meine Einlassungen?

Eigentlich gehe ich davon aus, dass Leute, die seit über 10 Jahre im Xcode Development tätig sind, wissen was sie tun.

Ja, in deiner unreflektiert kopierten Quelle sogar so sehr, dass sie stillschweigend voraussetzen, dass man weiß, wie Benutzerverzeichnisse unter macOS funktionieren, das man im richtigen Verzeichnis ist, bevor man Befehle eintippt und vor allem was man davon im Dateisystem und was im App-Container macht.

Im Stackoverflow-Artikel sind keine der Schnitzer, die du in deinem Artikel hast. Aber abgesehen davon: Du weisst wie Stackoverflow funktioniert und dass der von dir verlinkte Artikel nicht als eine Lösung für das Problem betrachtet wird?! U.a. wegen der expliziten Warnungen bzgl. "einfach mal" /Library/Developer zu löschen, die ich auch ausgesprochen habe? Oder hast du die Beiträge auf der Seite gar nicht erst gelesen?

Ich hatte Artefakte / Reste, die sich nur via Sudo bereinigen ließen.

Du hast wirklich keine Ahnung, was ich meine bzw. wie das mit Benutzerrechten funktioniert, oder? Tip: Wenn du 'sudo' im Baum '~/' brauchst, dann ist da sehr viel größerer Unsinn passiert, als eine Xcode-Installation, die sich breit macht.

Was ist denn Deine Empfehlung / Methode, um verschiedene Xcode Varianten im Wechsel zu betreiben und ggf. Third-Party Libraries z. B. Cocoapods vollständig wieder zu bereinigen ?

Sich durchlesen, wie man mehrere Xcode-Versionen parallel installiert und dann das dafür von Apple vorgesehene Tool xcode-select benutzen. Libraries löscht man und räumt die zugehörigen Umgebungsvariablen auf (Kommandozeile), oder man passt halt die entsprechende Umgebung in Xcode an, wenn man lieber klickt.

Ist ja seit Xcode alles im Container ablegt (V3? V4? Auf jeden Fall schon ewig.) recht einfach geworden.
 

tkreutz

Roter Stettiner
Registriert
27.05.19
Beiträge
973
Machst du hier copy & paste ohne zu verstehen, was du kopierst? Verstehst du meine Einlassungen?

Sich durchlesen, wie man mehrere Xcode-Versionen parallel installiert und dann das dafür von Apple vorgesehene Tool xcode-select benutzen. Libraries löscht man und räumt die zugehörigen Umgebungsvariablen auf (Kommandozeile), oder man passt halt die entsprechende Umgebung in Xcode an, wenn man lieber klickt.

Ist ja seit Xcode alles im Container ablegt (V3? V4? Auf jeden Fall schon ewig.) recht einfach geworden.

Du hast ja Recht, ich habe Deine Einlassung verstanden.