我试图在Xcode 6中使用现有的静态库构建一个可可触摸框架。我已经在"其他链接器标志中链接了所有必需的静态库"选项,框架构建。
然而,框架的大小太小,所以它看起来似乎没有正确构建。此外,我有很多缺少的符号应该包含在静态库中。
有没有人知道如何使用现有的静态库构建可可触摸框架?我需要将所有静态库中的所有符号都包含在我的框架中?
谢谢!
答案 0 :(得分:0)
如果您只有一个库文件(.a),则必须执行以下操作:
###################### # Options ###################### 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 -scheme ${PROJECT_NAME} -sdk iphonesimulator -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphonesimulator 2>&1 xcodebuild -scheme ${PROJECT_NAME} -sdk iphoneos -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphoneos 2>&1 ###################### # 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 an universal binary ###################### lipo "${PROJECT_DIR}/YOURFOLDER/YOURLIBRARY.a" -create -output "${FRAMEWORK}/${FRAMEWORK_NAME}" | echo open "${UNIVERSAL_LIBRARY_DIR}/"
答案 1 :(得分:0)
您应该按照上述步骤创建聚合目标。
然后选择聚合目标=>构建设置=> Mach-O类型,将动态库更改为静态库。此选项确定您的框架是否包含静态库的符号。
答案 2 :(得分:-1)
动态库仅适用于ios 8.如果需要在项目中使用动态库,请在“常规”选项卡中添加框架“链接框架”和“库”以及“嵌入式二进制文件”。它将起作用。
您可以更改静态库而不是动态库。构建设置 - > Mach-O - >静态库,以及将部署目标更改为iOS 7.0。更改后,在您的框架中完成这两项工作是在iOS 7.0及更高版本上工作。然后包含静态库以将二进制文件与库链接。