Frage

Ich habe einen Arbeitsbereich mit 2 Projekten:

  1. Ein Projekt mit zwei Produkten: einer statischen Bibliothek und einem Ressourcenpaket
  2. Ein Projekt, das eine iOS-App erstellt.

    Das erste Projekt wurde als Teilprojektreferenz unter dem zweiten Projekt hinzugefügt. Ich habe die statische Bibliothek gut gebaut, sie ist mit der App verbunden, alles ist gut. Ich kann das Ressourcenpaket jedoch nicht in die App aufnehmen.

    Das Bundle wurde dem Build-Schema der App hinzugefügt.

    Ich habe versucht, das Resources.bundle in die Phase "Build Resources" der App zu ziehen, aber dies führt zu diesem Fehler beim Erstellen:

    .../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle: No such file or directory
    

    Also habe ich mir das abgeleitete Datenverzeichnis angesehen und sehe Resources.bundle in

    MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug 
    

    nicht

    MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator.  
    

    Ich gehe davon aus, dass das Bundle nicht plattformspezifisch ist. Daher habe ich versucht, eine Erstellungsphase hinzuzufügen, um das Bundle in das Produktverzeichnis zu kopieren. Daraus resultiert dieser Buildfehler:

    .../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle depends on itself.  This target might include its own product.
    

    Es gibt jedoch keine Debug-iphonesimulator / Resources.bundle-Datei, sodass ich nicht sehe, woher diese Abhängigkeit stammt. Jeder Rat wäre sehr dankbar.

War es hilfreich?

Lösung

Ich habe es herausgefunden.Das Problem ist (wie oben erwähnt), dass das Bundle nicht plattformspezifisch ist und daher in das Verzeichnis Products / Debug ausgegeben wird, während die App in das Verzeichnis Products / Debug-iphonesimulator ausgegeben wird.Ich musste eine Run Script-Phase hinzufügen, um die Ressource in das App-Bundle zu kopieren:

SRC="$BUILD_DIR/$CONFIGURATION/Resources.bundle"
DEST="$BUILD_DIR/$CONFIGURATION$EFFECTIVE_PLATFORM_NAME/$FULL_PRODUCT_NAME"
cp -R "$SRC" "$DEST"

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top