Utilizzando la libreria statica e pacchetti di prodotti da Xcode 4 sottoprogetto
-
28-10-2019 - |
Domanda
Ho un lavoro contenente 2 progetti:
- Un progetto che ha 2 prodotti:una libreria statica e un pacchetto di risorse
- Un progetto che costruisce un'applicazione iOS.
Il primo progetto è stato aggiunto come un sottoprogetto di riferimento sotto il secondo progetto.Ho la libreria statica edificio fine, ma un link in app, tutto bene.Tuttavia, mi sembra di non riuscire a includere il pacchetto di risorse in app.
Il bundle è stato aggiunto per l'applicazione del 'Costruire' regime.
Ho provato trascinando le Risorse.bundle in app 'Copia Costruire Risorse' fase, ma che i risultati in questo errore in fase di compilazione:
.../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle: No such file or directory
Così ho guardato i dati derivati directory e vedo di Risorse.bundle in
MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug
non
MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator.
Presumo che questo è perché il bundle non è specifico della piattaforma.Così ho provato aggiunta di una fase di costruzione di copiare il pacchetto nella Directory di Prodotti.Il risultato è un errore di compilazione:
.../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle depends on itself. This target might include its own product.
Ma non c'è nessun Debug-iphonesimulator/Risorse.file bundle, quindi non vedo dove questo tipo di dipendenza è venuta da.Qualsiasi consiglio sarebbe molto apprezzato.
Soluzione
Ho capito.Il problema è (come detto sopra) che il bundle non è specifico della piattaforma in modo che le uscite per i Prodotti/directory di Debug, mentre l'app uscite per i Prodotti/Debug-iphonesimulator directory.Ho dovuto aggiungere un Eseguire Script fase di copiare la risorsa all'interno dell'applicazione in bundle:
SRC="$BUILD_DIR/$CONFIGURATION/Resources.bundle"
DEST="$BUILD_DIR/$CONFIGURATION$EFFECTIVE_PLATFORM_NAME/$FULL_PRODUCT_NAME"
cp -R "$SRC" "$DEST"