2013-10-03 18 views
5

i geändert, um die Basis SDK für IOS 6.1 in xcode 5.obwohl ios 6.1 als Basis sdk xcode 5 build ipa für ios 7

Wenn ich mein Projekt auf einem iOS 6.1-Simulator oder auf einem iOS 6.1-Gerät simuliere funktioniert alles gut. Aber wenn ich ein ipa baue und es auf einem iOS 7 Gerät das Gerät benutze das iOS 7 SDK und meine Hole App sieht seltsam aus. Ich habe meine Basis SDK für iOS 6.1 geändert, warum also mein Gerät die iOS 7 SDK verwenden?

Ich habe gelesen, dass iOS 7 iOS 6.1 SDK für alte veröffentlichte Anwendungen verwenden. Was muss ich tun, dass iOS 7 das auch für meine App macht? Meine einzige Idee ist Xcode 4 erneut zu installieren ...

Antwort

6

ich habe das gleiche Problem erlebt - leider nur nach der Einreichung zum App Store entdeckt und die App genehmigt und freigegeben werden, so dass alle Arten von Chaos wegen Pannen zu verbinden.

Das Problem tritt aufgrund eines Fehlers in XCode 5 (einschließlich in XCode 5.0.2 es scheint), die ausgelöst wird, wenn man älter wird SDKs installieren.

Wenn Sie mehrere SDKs installiert, werden Sie feststellen, dass, wenn Sie Ihr Gerät mit XCode verbinden, gibt es mehrere Einträge für das Gerät, ohne die Möglichkeit, sie auseinander zu halten. Aber es scheint, dass der TOP-Eintrag für das OLDEST SDK ist, das Sie installiert haben, der BOTTOM-Eintrag für das NEWEST SDK.

Ich habe festgestellt, dass, wenn ich zuerst "Test" -Projektoption verwende, um die App auf dem Gerät mit dem SDK auszuführen, das ich verwenden möchte (in meinem Fall der oberste Eintrag, der für iOS6.1 SDK ist) ist das SDK, das später beim Archivieren der App verwendet wird.

+0

Wow, wie hast du das herausgefunden? Vielen Dank! Die scheinbare Zufälligkeit meiner App zwischen iOS6/7 Look & Feel machte mich verrückt! – elsurudo

+0

Apple muss ab Februar 2014 mit dem iOS7 SDK kompiliert werden. Wenn Sie also Ihre App veröffentlichen möchten, ist die Installation älterer SDKs sinnlos. Ich denke, das ist der Grund, warum Apple diesen "Bug" nicht angesprochen hat - seine Absicht war, dass Entwickler nur das neueste SDK verwenden. –