2013-01-08 10 views
12

Ich habe eine iOS-Anwendung mit einem TestFlight-Build-Schema. In diesem Schema habe ich eine Umgebungsvariable namens TESTFLIGHT mit einem Wert von 1 in der Registerkarte "Run" eingerichtet. Außerdem ist auf der Registerkarte "Profil" des Build-Schemas die Option "Argumente und Variablen der RUN-Aktion verwenden" aktiviert, und ich sehe den entsprechenden EV in der Liste.Xcode-Umgebungsvariablen, die während des Archivs nicht vorhanden sind

Dies funktioniert gut, wenn Sie die App von Xcode ausführen, aber wenn ich ein Archiv erstellen und die App auf meinem Gerät ausführen, ist die Umgebungsvariable TESTFLIGHT nicht vorhanden. Meine Frage ist eine Option/Schema Registerkarte, die ich hier vermisse?

Der EV wird auf der Registerkarte "Ausführen" festgelegt und für die Debug-Build-Konfiguration ausgewählt. Muss ich dies ändern, um zu veröffentlichen?

Danke euch allen!

Antwort

20

Die Umgebungsvariable wird nur festgelegt, wenn Sie die App über Xcode ausführen. Wenn Sie die gleiche App direkt vom Gerät aus aufrufen, indem Sie auf das Symbol tippen, werden sie nicht eingerichtet. Sie sind nicht Teil der App. Wie ihr Name andeutet, sind sie Teil der Umgebung, die Xcode vor dem Ausführen von ihnen spezifisch eingerichtet. (Wenn Sie auf dem Mac entwickeln, können Sie sie in einer Shell vor dem Start einer ausführbaren Datei setzen, aber das ist nicht auf dem iPhone möglich.)

+2

Vielen Dank für Ihre Erklärung. Was ich versuche todo ist, habe ein Build-Schema, das ich für TestFlight-Bereitstellung verwenden kann, die die App verwenden eine Entwicklungs-URL zum Abrufen von Daten verwenden, und dann ein anderes Build-Schema für die Produktion, die die Produktions-URL verwenden wird, wenn die App verwendet läuft. Irgendwelche Vorschläge, wie dies umgesetzt werden könnte? –

+7

Verwenden Sie Präprozessor-Makros. In den Ziel-Build-Einstellungen müssen Sie eine neue Build-Konfiguration "TestFlight" erstellen (standardmäßig sind dies "Debug" und "Release"), dann fügen Sie in Preprocessor-Makros ein neues Makro (zum Beispiel 'TESTFLIGHT = 1') hinzu die Konfiguration "TestFlight". Verwenden Sie in Ihrem Code Präprozessoranweisungen wie '#ifdef TESTFLIGHT ... #else ... # endif'. In Ihren Schemas können Sie die Build-Konfiguration "TestFlight" auf der Registerkarte "Info" für die gewünschte Aktion auswählen. – Guillaume

+0

(Um die Build-Konfiguration zu erstellen, müssen Sie das Projekt auswählen und dann auf die Registerkarte Info gehen.) – Guillaume

Verwandte Themen