¿Cómo distribuir un SDK de iOS en forma de biblioteca estática?

Actualmente estoy comstackndo una biblioteca estática para iOS, llamémosle libMySDK.a. Copio los files de encabezado que necesitará el usuario final y los coloco en una carpeta con libMySDK.a. Esta carpeta se puede arrastrar a un nuevo proyecto Xcode y todo funciona como se espera si configuro el indicador -all_load linker en la configuration de compilation del nuevo proyecto (en "Otros indicadores de enlace").

Nunca he distribuido una biblioteca estática: ¿hay una carpeta con algunos files de cabecera y un file .a qué esperas recibir si quieres usar MySDK?

Openfeint proporciona su marco como un marco estático. Podemos utilizar el marco como Framework desde iOS SDK.

  • "Agregar OpenFeint como marco" en Readme para OpenFeint iOS SDK 2.10.1

Emita un vistazo a github – Eskipol / OpenFeint-iOS-Framework . Abra el proyecto OpenFeint y sumérjase en el objective "OpenFeint-iOS". Tiene las versiones 'Crear lib estática', 'Crear lib universal', 'Copiar encabezados' y 'Copiar resources'. Estas fases tienen un script de shell para crear un marco estático. Le ayudaría a distribuir su biblioteca estática.

EDITADO:

Lo esencial está en la secuencia de commands del shell para la fase 'Construir lib universal'. Cree correctamente el directory de estructura (Versiones / A / Encabezados y resources), cree binary universal de las bibliotecas estáticas comstackdas, copie los encabezados y el binary universal y cree enlaces simbólicos correctamente.

# Create framework directory structure. rm -rf "${FRAMEWORK}" &>/dev/null mkdir -p "${UNIVERSAL_LIBRARY_DIR}" mkdir -p "${FRAMEWORK}/Versions/A/Headers" mkdir -p "${FRAMEWORK}/Versions/A/Resources" # Generate universal binary from desktop, device, and simulator builds. lipo "${SIMULATOR_LIBRARY_PATH}" "${DEVICE_LIBRARY_PATH}" -create -output "${UNIVERSAL_LIBRARY_PATH}" # Move files to appropriate locations in framework paths. cp "${UNIVERSAL_LIBRARY_PATH}" "${FRAMEWORK}/Versions/A" cd "${FRAMEWORK}" ln -sf "A" "Versions/Current" ln -sf "Versions/Current/Headers" "Headers" ln -sf "Versions/Current/Resources" "Resources" ln -sf "Versions/Current/${PRODUCT_NAME}" "${PRODUCT_NAME}"