Ich suchte weit und breit nach einer Antwort auf diese weil ich wirklich nicht die Idee mag, zusätzliche Ziele oder zusätzliche Konfigurationssätze zu erstellen. Beide Optionen verursachen nur ein großes Konfigurationssynchronisierungsproblem.
So, nach Xcode für ein paar Stunden Hacking, ist das, was ich kam mit:
Schritt 1: Fügen Sie den Schlüssel „Scheme“, um Ihren Info.plist mit Typ-String.
Schritt 2: Ihr Standardschema bearbeiten und auf Erstellen -> Pre-Aktionen fügen Sie einen neuen Run Script mit dem folgenden:
/usr/libexec/PlistBuddy -c "Set :SchemeName \"$SCHEME_NAME\"" "$PROJECT_DIR/$INFOPLIST_FILE"
Stellen Sie sicher, und ein Ziel wählen unter „Provide Buildeinstellungen von ".
Schritt 3: Jetzt duplizieren diese Regelung so oft, wie Sie möchten (Schemata verwalten ... -> bestehendes Schema auswählen -> Zahnrad-Symbol klicken -> Duplizieren) Zum Beispiel können Sie erstellen, Entwicklung, Staging , Produktion, App Store, usw. Vergessen Sie nicht, auf "shared" zu klicken, wenn Sie möchten, dass diese Schemata in der Versionskontrolle mitgeführt werden.
Schritt 4: Im Code, können Sie den Wert wie folgt abrufen:
NSString *schemeName = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"SchemeName"];
Nun kann der Code selbst zur Laufzeit korrekt konfigurieren. Keine fiesen Preprocessor-Makros, mit denen man umgehen muss, und keine spröden Konfigurationsfehler, die man beibehalten könnte.
ah, ich wusste das nicht, thx für super schnelle Antwort :) – user390687
Ja, dies mit der ** Build-Konfiguration ** ist wahrscheinlich besser als Schlussfolgerung über das Scheme, da Build-Konfiguration auch viele andere beeinflusst Einstellungen erstellen –