Ich habe kürzlich das Xcode 4.2 mit iOS 5 SDK-Paket heruntergeladen und sofort festgestellt, dass ich meine iPhone 3Gs mit iOS 4.2.1 nicht zum Debuggen verwenden kann. Ich kann nur auf meinem iPhone 4 mit installiertem iOS 5 debuggen und testen.
Für alle meine Geräte mit iOS unter 5.0 sagt Xcode nur "Fertig für iPhone3GS ausgeführt" und führt es nicht aus. Ich habe mein Bereitstellungsziel auf 3.0 festgelegt, da ich in meiner App keine Funktionen über 3.0 verwende und auf alle Versionen 3.0 oder höher abzielen möchte. Ich habe alle meine Bereitstellungsprofile installiert und bin auf dem neuesten Stand.
Ich habe xcode beendet und neu gestartet. Ich habe den Build mehrmals bereinigt. Ich habe versucht, armv6 in den Einstellungen für die Erstellung von Architekturen hinzuzufügen, aber nichts erlaubt mir, meine App auf meinem alten Telefon mit ios 4.2.1 zu erstellen und auszuführen.
Meine Frage ist, ist es möglich, Apps mit dem neuen SDK für iOS-Versionen unter 5 noch funktionsfähig zu machen? Wie kann ich sicher sein, dass meine App weiterhin auf niedrigeren iOS-Versionen ausgeführt wird, wenn ich sie nicht auf meinem alten Telefon installieren kann?
Bearbeiten: OK, es sieht so aus, als hätte iOS SDK 5 die Unterstützung für armv6 standardmäßig eingestellt. Sie müssen armv6 im Feld Architekturen unter Build-Einstellungen für Ihr Ziel und Ihr Projekt hinzufügen. Dann kann Ihre App auf iPhone 3G-Geräten ausgeführt werden. Die Antwort finden Sie hier. So erstellen Sie für armv6- und armv7-Architekturen mit iOS 5
iOS
Versionen ein separates Problem darstellt . Fügen Sie außerdem die Bearbeitung als Antwort hinzu, damit Sie die gefundene Lösung akzeptieren und diese Frage als beantwortet markieren können.Antworten:
Ich hatte das gleiche Problem beim Versuch, ein neu erstelltes Xcode 4.2-Projekt auf einem iPhone 3G 4.2.1 zum Laufen zu bringen. Hier ist, wie ich es zum Laufen bringen konnte.
1) Ändern Sie die "Build-Einstellungen" des Ziels ==> "Architektur" von "Standard (armv7)" in "andere". Fügen Sie armv6 und armv7 hinzu.
2) Ändern Sie die "Build-Einstellungen" des Ziels ==> "Gültige Architektur" in armv6 und armv7.
3) Ändern Sie die "Build-Einstellungen" des Ziels ==> "iOS-Bereitstellungsziel" in iOS 4.2.
4) Öffnen Sie die Projekte * -Info.plist, entfernen Sie die Einstellung "Erforderliche Gerätefunktionen" (beachten Sie, dass armv7 erforderlich ist).
Übrigens habe ich das herausgefunden, als ich versucht habe, die App manuell über den Organizer hinzuzufügen, und es wurde berichtet:
Danach sollten alle funktionieren. Sprechen Sie über eine PITA.
quelle
Gehen Sie zu Xcode> Einstellungen> Downloads und installieren Sie die Debugging-Unterstützung für ältere iOS-Versionen.
quelle
mmorris hat mich fast an die Lösung des Problems gebracht ... In der Info.plist musste ich die erforderlichen Gerätefunktionen auf armv6 und nicht auf armv7 setzen. Ich hoffe, dies hilft auch anderen.
quelle
Sie müssen das Telefon anschließen und dann zum Organizer gehen. Xcode sollte automatisch die ältere Version anfordern.
Weitere Informationen finden Sie auf der Entwicklerseite. Es wurde im Anhang zur 4.2 Beta beschrieben
quelle
Beim Versuch, meine App auf einem alten iPod Touch auszuführen, ist ein ähnliches Problem aufgetreten. Ich habe ein Upgrade auf Xcode 4.3.3 durchgeführt und die App wurde auf älterer Hardware für mich nicht mehr im Debugger ausgeführt.
Ich glaube, die anderen Kommentare hier zu "Architekturen" und "Erforderliche Gerätefunktionen" sind wichtige Details, die korrekt angegeben werden müssen. Leider reichten sie nicht aus, um mein Problem zu beheben.
In meinem Fall war das Build-Schema der Schuldige. Xcode 4.3.3 hat mich aufgefordert, beim Upgrade meines Projekts vom GDB-Debugger zur LLDB zu wechseln. Als ich die Aktion "Ausführen" meines Schemas wieder in "GDB" änderte , konnte ich die App auf meiner alten Hardware von Xcode aus erneut ausführen.
quelle
Ich fand heraus, dass ich Architekturen armv6 hinzufügen musste, aber es funktionierte immer noch nicht. Und jetzt habe ich armv7 von den erforderlichen Fähigkeiten entfernt, und das war es! Es funktionierte!
quelle
Dies hat bei mir funktioniert und sollte bei Ihnen funktionieren, wenn Sie zuvor eine ältere Version von Xcode hatten. Wenn nicht, sollten Sie den Ratschlägen anderer folgen, um das SDK von einer älteren Version des SDK zu erhalten:
sudo cp -a /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPh
Dieser Befehl unterscheidet sich nur ein wenig von dem, den andere zeigen, aber diese Befehle haben die Dateien für mich im SDKs-Ordner selbst abgelegt - wir möchten, dass ein Unterverzeichnis davon mit dem entsprechenden Namen erstellt wird.
quelle
In meinem Fall gab es eine redundante Zeile in den erforderlichen Gerätefunktionen
Ich habe es gerade entfernt ...
Hoffentlich hilft es jemand anderem.
quelle