2009-07-08 15 views
0

Meine App wurde mit SDK 2.2.1 Version noch vor 3.0 Beta erstellt.iPhone SDK 2.2.1 basierte App sollte auf dem iPhone 3.0 OS-Gerät gestartet werden

Benutzer wird meine App auf dem letzten iPhone 3Gs mit 3.0 FW-Version installieren. Wird sich meine App beim letzten iPhone anders verhalten? Werden die beschriebenen Artikel here (3.0 OS Release Notes) Einfluss auf meine App haben, die mit 2.2.1 SDK erstellt wurde?

Zum Beispiel Apple-doc tell:
FIXED: UINavigationController werden nicht Inhalt Ansicht Größe automatisch an, wenn barstyle zu/von UIBarStyleBlackTranslucent geändert wird.

Aber meine app diesen Stil verwenden, und ich sah, bevor Inhalte Ansicht Resize mit iPhone 2.2.1 OS ...


Was bedeutet es, wenn ich technisch 2.2.1 auswählen oder 3.0 SDK als aktiv in XCode für mein Projekt und Build? Entspricht das SDK Bibliotheken, die statisch verknüpft sind?

Vielen Dank.

Antwort

1

Wenn Sie ein aktives SDK in XCode auswählen, wählt es im Wesentlichen die zu kompilierenden Header aus. Die Bibliotheken sind dynamisch verknüpft. Wenn Sie also eine App ausführen, die mit Version 2.2.1 auf einem Gerät erstellt wurde, auf dem 3.0 ausgeführt wird, wird das Verhalten der Bibliothek 3.0 angezeigt.

Für die spezifische Fehlerbehebung, die Sie angegeben haben, konnte es vorkommen, dass der Inhalt unter bestimmten Umständen, die Sie nie von Anfang an beeinflusst haben, nicht angepasst werden konnte. Aber das lange und kurze ist, dass Sie nicht genau wissen, wie sich Ihre App unter 3.0 verhält, bis Sie es versuchen.

1

Die Auswahl eines aktiven SDK in Xcode teilt dem Compiler mit, auf welche Version von Apples Bibliotheken und Frameworks er aufbauen soll. Wenn Sie Code verwenden, mit dem Apple Bugfixes zwischen 2.2.1 und 3.0 geändert oder markiert hat, dann sehen Sie ein anderes Verhalten in Ihrer App.

Zum Beispiel, zwischen iPhone OS 2.2.1 und 3.0 Apple verwarf die Initialisierungsmethode UITableViewCell initWithFrame:. In 2.2.1 funktionierte Code, der Tabellenzellen mithilfe dieses Initializers erstellte, einwandfrei. Sie funktionieren immer noch in Version 3.0, Sie erhalten jedoch eine Verwarnungswarnung von Xcode und Sie sollten Ihren Code aktualisieren, da Apple veraltete Teile des Frameworks jederzeit entfernen kann.

Andere Änderungen sind verhaltensbezogener, wie der von Ihnen erwähnte. Wenn Ihre Anwendung beim Ändern des Balkenstils auf eine Größenänderung der Inhaltsansicht angewiesen war und diese Größenänderung nicht mehr auftritt, können unerwartete Dinge in Ihrer App auftreten.

Der beste Ansatz ist, Ihre App in 3.0 zu bauen und gründlich zu testen. Gehen Sie die Compilerwarnungen durch und aktualisieren Sie den Code nach Bedarf. Sehen Sie sich dann an, welche anderen Änderungen Apple vorgenommen hat und wo Sie diese Bits in Ihrem Code verwenden.

Seitennotiz: Wie ich es verstehe, akzeptiert Apple keine Anwendungen mehr im App Store, die nicht unter 3.0 getestet wurden (noch sind sie seit einiger Zeit).

+0

Vielen Dank für Ihre schnelle Antwort. Nur ein Kommentar ... Falls ich meine App mit 3.0 Headern (Active SDK) erstellen werde, ist meine App nicht länger für 2.2.1 Benutzer installierbar. Richtig? ... Also muss ich Apple-Dokumente sorgfältig lernen, aber 2.2.1 für eigenes Risiko lassen, falls ich sowohl für 2.2.1 als auch für 3.0 verwendbar sein möchte. – MikZ

+0

Richtig - eine App gegen die 3 gebaut.0-Header sind auf einem 2.2.1-Gerät nicht verwendbar (oder wenn dies der Fall ist, müssen Sie sehr vorsichtig mit dem Code sein, den Sie verwenden, mehr noch als bei einer 2.2.1-> 3.0-Bereitstellung). – Tim

Verwandte Themen