Usando biblioteca estática e produtos de pacote do subprojeto Xcode 4
-
28-10-2019 - |
Pergunta
Eu tenho um espaço de trabalho contendo 2 projetos:
- Um projeto que tem 2 produtos: uma biblioteca estática e um pacote de recursos
- Um projeto que constrói um aplicativo iOS.
O primeiro projeto foi adicionado como uma referência de subprojeto no segundo projeto. Eu tenho a biblioteca estática construindo bem, ele se conecta ao aplicativo, está tudo bem. No entanto, não consigo incluir o pacote de recursos no aplicativo.
O pacote foi adicionado ao esquema 'Build' do aplicativo.
Eu tentei arrastar o Resources.bundle para a fase 'Copiar recursos de compilação' do aplicativo, mas isso resulta neste erro em tempo de compilação:
.../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle: No such file or directory
Então, olhei para o diretório de dados derivados e vejo Resources.bundle em
MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug
não
MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator.
Presumo que seja porque o pacote não é específico da plataforma. Então, tentei adicionar uma fase de construção para copiar o pacote para o diretório de produtos. Resultando neste erro de compilação:
.../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle depends on itself. This target might include its own product.
Mas não há nenhum arquivo Debug-iphonesimulator / Resources.bundle, então não vejo de onde vem essa dependência. Qualquer conselho seria muito apreciado.
Solução
Eu descobri.O problema é (conforme mencionado acima) que o pacote não é específico da plataforma, então ele sai para o diretório Products / Debug enquanto o aplicativo sai para o diretório Products / Debug-iphonesimulator.Tive que adicionar uma fase Run Script para copiar o recurso para o pacote de aplicativos:
SRC="$BUILD_DIR/$CONFIGURATION/Resources.bundle"
DEST="$BUILD_DIR/$CONFIGURATION$EFFECTIVE_PLATFORM_NAME/$FULL_PRODUCT_NAME"
cp -R "$SRC" "$DEST"