2009-04-04 9 views
1

Ich versuche, für mehrere Ziele in Xcode zu erstellen, um den Prozess der Erstellung einer "Lite" und "Pro" Version meiner Anwendung zu vereinfachen. In der Theorie ist das großartig und ich kann definiert GCC_PREPROCESSOR_DEFINITIONS für die Verwendung in meinem Code übergeben. Aber ich habe wirklich Probleme bekommen es aufgrund eines Fehlers zu arbeiten versuchen, das zweite Ziel in den Simulator zu starten: Failed to launch simulated application: Unknown error.Mehrere Ziele in Xcode: "Simulierte Anwendung konnte nicht gestartet werden: Unbekannter Fehler."

Hier ist der einfache Prozess, den ich das zusätzliche Ziel erstellen bin mit:

    In
  1. #ifdef MYAPP_PRO Dateien Quelle Verhalten zu ändern, basierend auf pro/lite-Version von app (und überprüfen Anwendung arbeitet wie erwartet)
  2. Wählen Project>New Target... aus dem Menü, und wählen Sie "Cocoa touch Application" (benannt MyAppPro“)
  3. Neue Zieleinstellungen bearbeiten, 012 hinzufügenbenutzerdefinierte Einstellung und setzen Sie den Wert auf "MYAPP_PRO" (keine Anführungszeichen)
  4. Setzen Sie aktives Ziel auf "MyAppPro"; bauen und rennen.
  5. Failed to launch simulated application: Unknown error.
  6. Kopieren Sie alle Einstellungen von Info.plist MyAppPro-Info.plist und versuchen Sie es erneut
  7. Failed to launch simulated application: Unknown error.

Der Build ganz gut abgeschlossen ist, aber ich bin nicht in der Lage in Simulator laufen.

Beim Bearbeiten der Datei project.pbxproj im Verzeichnis .xcodeproj merke ich, dass zwischen den Build-Einstellungen der beiden Zieldefinitionen einige wichtige Unterschiede bestehen. Ich habe versucht, die Datei manuell zu bearbeiten, muss aber etwas falsch gemacht haben, weil ich es später nicht in Xcode laden konnte.

Original "Debug" Zieleinstellungen bauen:

 buildSettings = { 
      ALWAYS_SEARCH_USER_PATHS = YES; 
      ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 
      "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 
      GCC_C_LANGUAGE_STANDARD = c99; 
      GCC_WARN_ABOUT_RETURN_TYPE = YES; 
      GCC_WARN_UNUSED_VARIABLE = YES; 
      ONLY_ACTIVE_ARCH = YES; 
      PREBINDING = NO; 
      SDKROOT = iphoneos2.2.1; 
     }; 

Thew neue MyAppPro Ziels "Debug" bauen Einstellungen:

 buildSettings = { 
      ALWAYS_SEARCH_USER_PATHS = NO; 
      CODE_SIGN_IDENTITY = "iPhone Developer"; 
      COPY_PHASE_STRIP = NO; 
      GCC_DYNAMIC_NO_PIC = NO; 
      GCC_OPTIMIZATION_LEVEL = 0; 
      GCC_PRECOMPILE_PREFIX_HEADER = YES; 
      GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/UIKit.framework/Headers/UIKit.h"; 
      INFOPLIST_FILE = "MyAppPro-Info.plist"; 
      INSTALL_PATH = "$(HOME)/Applications"; 
      OTHER_LDFLAGS = (
       "-framework", 
       Foundation, 
       "-framework", 
       UIKit, 
      ); 
      PREBINDING = NO; 
      PRODUCT_NAME = MyAppPro; 
      SDKROOT = iphoneos2.2.1; 
     }; 

Antwort

5

Sie nicht sagen, ob Sie tatsächlich jemals Quelldateien der addierte Ziel. Ein neues Ziel (im Gegensatz zu einem neuen Projekt) hat keine Quelldateivorlagen; Sie müssen sie selbst hinzufügen. Der Simulator könnte also sagen: "Sie haben erfolgreich gebaut, aber es gibt nichts zu laufen."

+2

Sie haben Recht. Ich bin mir nicht sicher, wie man Quelldateien zu einem Ziel hinzufügt, aber das vorhandene Ziel zu duplizieren und den Namen/die Einstellungen anzupassen, hat perfekt funktioniert. Vielen Dank! – pix0r

0

Duplizieren Sie das Ziel. Ich habe gerade den gleichen Fehler gemacht und realisiert, was ich getan habe: "New Target" erstellt ein leeres Blatt (obwohl das nicht sofort offensichtlich ist), selbst wenn Sie versuchen, Dinge einzuschließen, werden Sie wahrscheinlich etwas verpassen.

Verwandte Themen