Xcode6 Creando la biblioteca estática grasa Marco universal de iOS
Desde la actualización a Xcode y iOS8, he tenido problemas para construir una biblioteca estática y gruesa. Hay algunas muy buenas instruccionesaquí yaquí pero creo que partes de las primeras instrucciones y todas las segundas instrucciones están fechadas. Las primeras instrucciones dicen usarMarco iOS estático y las segundas instrucciones dicen usarBiblioteca estática Cocoa Touch. Antes de Xcode6, usaría elMarco iOS estático pero ahora que lo han renombrado aMarco táctil de cacao No estoy seguro.
Entonces, para empezar, ¿qué debo usar para crear unbiblioteca estática gorda? Lo esMarco táctil de cacao? OBiblioteca estática Cocoa Touch?
Luego creo un nuevo objetivo agregado:
Luego creo un script de ejecución:
Aquí está el script de ejecución que estoy usando (en su totalidad):
# This script is based on Jacob Van Order's answer on apple dev forums
https://devforums.apple.com/message/971277
# See also http://spin.atomicobject.com/2011/12/13/building-a-universal-framework-for-ios/ for the start
# To get this to work with a Xcode 6 Cocoa Touch Framework, create Framework
# Then create a new Aggregate Target. Throw this script into a Build Script Phrase on the Aggregate
######################
# Options
######################
REVEAL_ARCHIVE_IN_FINDER=true
FRAMEWORK_NAME="${PROJECT_NAME}"
SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework"
DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework"
UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal"
FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${FRAMEWORK_NAME}.framework"
######################
# Build Frameworks
######################
xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphonesimulator -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphonesimulator | echo
xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphoneos -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphoneos | echo
#xcodebuild -target ${PROJECT_NAME} ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" | echo
#xcodebuild -target ${PROJECT_NAME} ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" | echo
######################
# Create directory for universal
######################
rm -rf "${UNIVERSAL_LIBRARY_DIR}"
mkdir "${UNIVERSAL_LIBRARY_DIR}"
mkdir "${FRAMEWORK}"
######################
# Copy files Framework
######################
cp -r "${DEVICE_LIBRARY_PATH}/." "${FRAMEWORK}"
######################
# Make fat universal binary
######################
lipo "${SIMULATOR_LIBRARY_PATH}/${FRAMEWORK_NAME}" "${DEVICE_LIBRARY_PATH}/${FRAMEWORK_NAME}" -create -output "${FRAMEWORK}/${FRAMEWORK_NAME}" | echo
######################
# On Release, copy the result to desktop folder
######################
if [ "${CONFIGURATION}" == "Release" ]; then
mkdir "${HOME}/Desktop/${FRAMEWORK_NAME}-${CONFIGURATION}-iphoneuniversal/"
cp -r "${FRAMEWORK}" "${HOME}/Desktop/${FRAMEWORK_NAME}-${CONFIGURATION}-iphoneuniversal/"
fi
######################
# If needed, open the Framework folder
######################
if [ ${REVEAL_ARCHIVE_IN_FINDER} = true ]; then
if [ "${CONFIGURATION}" == "Release" ]; then
open "${HOME}/Desktop/${FRAMEWORK_NAME}-${CONFIGURATION}-iphoneuniversal/"
else
open "${UNIVERSAL_LIBRARY_DIR}/"
fi
fi
Pero cuando intento construir, recibo este mensaje:
fatal error: lipo: can't open input file: /Users/pdl/Library/Developer/Xcode/DerivedData/innerIDMobileLicense-blnxjfvoxnqfelftmzojgdwhvazk/Build/Products/Debug-iphonesimulator/innerIDMobileLicense.framework/innerIDMobileLicense (No such file or directory)
Eso es correcto, el archivo no está allí! Observe que en la primera imagen a continuación, hay un archivo ejecutable de UnixIdAirOpenCv. Luego mira la segunda imagen y observa queIdAirOpenCv no esta ahi
Esto es lo que estoy acostumbrado a ver antes de actualizar:
Esto es lo que tengo ahora:
Según el script, el archivo ejecutable de UnixinnerIDMobileLicense debe ubicarse dentro de las tres carpetas del marco al mismo nivel que las carpetas de Encabezados y Módulos.
¿Alguien tiene idea de lo que estoy haciendo mal?