2012-04-07 7 views
2

gemacht Ich habe eine App für ios 4.1 mit Basis-SDK ios 5.0 und getestet es mit 3G (iOS 4.3.3) 3GS (5.1) 3GS (5.0) iPad (5.1) . Meine App hat sich auf all diesen Geräten gut verhalten. Wenn Apple die App jedoch endlich akzeptiert hat und ich sie auf die gleichen Geräte heruntergeladen habe, hat sich das Verhalten geändert. Das Problem ist, dass die Seiten, die angezeigt werden, übergroß sind, aber wenn ich sie bewege, fangen sie richtig an, den Bildschirm anzupassen. Hat jemand von Ihnen eine ähnliche Situation erlebt, als die App nach der Veröffentlichung ihr Verhalten änderte?iOS-App hat Verhalten geändert, nachdem auf appStore

Und am wichtigsten. Wie kann ich diesen Fehler reproduzieren, wenn die gleiche App von Mac auf echten Geräten läuft? Ich kann hinzufügen, dass das Basis-SDK auf den neuesten Stand (5.0) gesetzt wurde, aber die App wurde mit XCode 4.2 archiviert, das nicht iOS 5.1 unterstützt.

ich Seien Sie freundlich, das ist meine erste Frage :)

EDIT: Nach HotPaw des hilfreichen Hinweis, ich habe überprüft, dass das Problem die Release-Build war. Ich kann den Fehler auf dem Gerät nach dem Ändern des Ziels in Run Conf reproduzieren. vom Debug bis zur Veröffentlichung.

Was ist interessant und frustrierend, kann ich das Problem nicht lösen, jedoch habe ich meine Anwendung im Freigabemodus auf xcode 4.3 getestet und es funktioniert perfekt. Ich habe nichts geändert, aber es funktioniert. Es kann den Build nicht packen (siehe Problem Xcode 4.3.1 - Packaging operation failed), also bin ich mit xcode 4.2 fest

Für eine Weile habe ich vermutet, dass der Fehler durch den Compiler beim Kompilieren für den Daumen verursacht wird, und die Lösung wäre hinzuzufügen -mno-thumb zu anderen c flags. Aber ich kann diese Flagge nicht erzwingen. Siehe: iOS5 Xcode4.2 floating-point byte align error?

Wenn ich das Kompilierungsprotokoll vergleiche, kann ich sehen, dass xcode 4.3 kompiliert mit -arch armv6 wenn xcode 4.2 mit -arch armv6. Aber es ist das gleiche Gerät, das ich mit dem Computer verbinde. Ich habe keine anderen Unterschiede entdeckt, aber sie können existieren. Ich kann das Kompilierungsprotokoll für Beispieldatei einfügen, wenn es helfen würde.

Antwort

1

Das Problem war mit dem fehlerhaften Compiler!

Ich konnte den Unterschied nicht bemerken, nachdem ich -mno-thumb auf mein Projekt angewendet habe, weil die Bibliothek, die ich verwendete (Three20), nur für armv6 kompiliert wurde, was das Problem verursachte und nicht mein Projekt. Nach dem Hinzufügen von -mno-thumb zu allen Projekten von Three20 ist der Fehler verschwunden!

Ich werde das Three20-Team über das Problem bemerken.

4

Dies kann passieren, wenn Sie nur Debug Builds testen und dann einen Release Build an den App Store senden. Für den abschließenden Test müssen Sie Xcode zwingen, mit einem Release-Build zu testen (möglicherweise durch Bearbeiten der Standardschemas) und dann diesen Build mit absolut keinen Änderungen an den Build-Einstellungen senden, mit Ausnahme der Codesignierung.

Sie möchten vielleicht auch Ihre Version, die durch Ad-hoc-Installation über iTunes erstellt wurde, auf einem frisch zurückgesetzten Gerät testen, von dem alle früheren Versionen der App gelöscht wurden. Siehe Apple's directions for doing this.

+0

Danke, Ihre Hilfe hat mich dazu gebracht, das Problem zu lösen :) – poioi

Verwandte Themen