Xcode把.a静态库和.h头文件打包成framework的脚本
来源:互联网 发布:传奇霸业珠子数据 编辑:程序博客网 时间:2024/05/18 10:05
个人备忘
1.以下这段加到静态库target的run script里
set -e
mkdir -p "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Versions/A/Headers"
# Link the "Current" version to "A"
/bin/ln -sfh A "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Versions/Current"
/bin/ln -sfh Versions/Current/Headers "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Headers"
/bin/ln -sfh "Versions/Current/${PRODUCT_NAME}""${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/${PRODUCT_NAME}"
# The -a ensures that the headers maintain the source modification date so that we don't constantly
# cause propagating rebuilds of files that import these headers.
/bin/cp -a "${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}/""${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Versions/A/Headers"
set -e
set +u
# Avoid recursively calling this script.
if [[ $SF_MASTER_SCRIPT_RUNNING ]]
then
exit 0
fi
set -u
export SF_MASTER_SCRIPT_RUNNING=1
SF_TARGET_NAME=${PROJECT_NAME}
SF_EXECUTABLE_PATH="lib${SF_TARGET_NAME}.a"
SF_WRAPPER_NAME="${SF_TARGET_NAME}.framework"
# The following conditionals come from
# https://github.com/kstenerud/iOS-Universal-Framework
if [[ "$SDK_NAME" =~ ([A-Za-z]+) ]]
then
SF_SDK_PLATFORM=${BASH_REMATCH[1]}
else
echo "Could not find platform name from SDK_NAME: $SDK_NAME"
exit 1
fi
if [[ "$SDK_NAME" =~ ([0-9]+.*$) ]]
then
SF_SDK_VERSION=${BASH_REMATCH[1]}
else
echo "Could not find sdk version from SDK_NAME: $SDK_NAME"
exit 1
fi
if [[ "$SF_SDK_PLATFORM" ="iphoneos" ]]
then
SF_OTHER_PLATFORM=iphonesimulator
else
SF_OTHER_PLATFORM=iphoneos
fi
if [[ "$BUILT_PRODUCTS_DIR" =~ (.*)$SF_SDK_PLATFORM$ ]]
then
SF_OTHER_BUILT_PRODUCTS_DIR="${BASH_REMATCH[1]}${SF_OTHER_PLATFORM}"
else
echo "Could not find platform name from build products directory: $BUILT_PRODUCTS_DIR"
exit 1
fi
# Build the other platform.
xcrun xcodebuild -project "${PROJECT_FILE_PATH}" -target"${TARGET_NAME}" -configuration"${CONFIGURATION}" -sdk ${SF_OTHER_PLATFORM}${SF_SDK_VERSION} BUILD_DIR="${BUILD_DIR}" OBJROOT="${OBJROOT}" BUILD_ROOT="${BUILD_ROOT}" SYMROOT="${SYMROOT}" $ACTION
# Smash the two static libraries into one fat binary and store it in the .framework
xcrun lipo -create "${BUILT_PRODUCTS_DIR}/${SF_EXECUTABLE_PATH}""${SF_OTHER_BUILT_PRODUCTS_DIR}/${SF_EXECUTABLE_PATH}" -output"${BUILT_PRODUCTS_DIR}/${SF_WRAPPER_NAME}/Versions/A/${SF_TARGET_NAME}"
# Copy the binary to the other architecture folder to have a complete framework in both.
cp -a "${BUILT_PRODUCTS_DIR}/${SF_WRAPPER_NAME}/Versions/A/${SF_TARGET_NAME}""${SF_OTHER_BUILT_PRODUCTS_DIR}/${SF_WRAPPER_NAME}/Versions/A/${SF_TARGET_NAME}"
- Xcode把.a静态库和.h头文件打包成framework的脚本
- ios学习--XCode打包.a静态库文件&正确导出.h头文件
- .h头文件和.a静态库文件问题记录
- xcode 7 打包静态库 .a 文件
- Xcode 创建.a和framework静态库
- Xcode 创建.a和framework静态库
- Xcode 创建.a和framework静态库
- Xcode 创建.a和framework静态库
- Xcode 创建.a和framework静态库
- Xcode 创建.a和framework静态库
- 如何封装.h和.a静态库使得头文件中不含有暴露内部实现的private成员变量
- 经验分享:Xcode 创建.a和framework静态库【转载】
- XCode打包静态库文件
- 教你轻松打包.a和framework静态库
- 一个工程如何直接引用另一个工程? 如何打包静态库.a? 如何打包静态库.frameWork? .a和.framework的区别?
- 打包静态库.a文件
- 静态库 .a 和 framework
- 把Opencv生成的.a文件打包成so文件
- opencv
- 五分钟学会使用spring-data-cassandra快速实现数据的访问
- 无锡华翎钢管舞酒吧领舞性感热舞爵士舞火热报名中
- 黑马程序员——Java基础---自定义异常类
- 《山东工业技术》征稿函
- Xcode把.a静态库和.h头文件打包成framework的脚本
- log4j.properties配置详解
- android.os.NetworkOnMainThreadException
- 《中国化工贸易》征稿函
- 【iOS开发】判断iOS设备是否越狱
- 在maven中新建hadoop项目说明与mapreduce.framework.name的initialize异常
- linux命令(10)——touch命令
- jquery对象和dom对象
- jQuery.easyui与jQuery UI冲突