xcode怎么新建html5,《iOS创建Framework》Xcode 10超详细图文教程,创建一个库文件

已修复Xcode 10脚本执行错误的bug,重新复制第11步脚本,替换原来的代码即可,脚本运行时需选择真机,如下图:

f1d343719a39

真机运行脚本

1、新建Cocoa Touch Static Library工程

f1d343719a39

新建工程.png

2、删除.m,然后把.h替换为:#import

f1d343719a39

修改内容.png

3、BuildPhases -> Link Binary with Libraries -> 点击+ -> UIKit.framework -> add

f1d343719a39

添加库文件.png

4、Build Phases -> Editor -> Add Build Phase\Add Headers Build Phase

f1d343719a39

Add Headers Build Phase.png

5、把.h拖到Headers下的Public部分

f1d343719a39

拖动.h.png

6、将需要打包的文件入工程

f1d343719a39

拖入文件.png

7、配置Build Settings

1)Dead Code Stripping设置为NO

f1d343719a39

配置Build Settings.png

2)Mach-O Type选择static或者dynamic都行

3)Architectures下增加armv7s,并选中。将Build Active Architecture Only 设置为NO

f1d343719a39

增加armv7s.png

8、添加脚本并编译:Build Framework

f1d343719a39

创建运行脚本.png

set -e export FRAMEWORK_LOCN="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework" mkdir -p "${FRAMEWORK_LOCN}/Versions/A/Headers" /bin/ln -sfh A "${FRAMEWORK_LOCN}/Versions/Current" /bin/ln -sfh Versions/Current/Headers "${FRAMEWORK_LOCN}/Headers" /bin/ln -sfh "Versions/Current/${PRODUCT_NAME}" \ "${FRAMEWORK_LOCN}/${PRODUCT_NAME}" /bin/cp -a "${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}/" \ "${FRAMEWORK_LOCN}/Versions/A/Headers"

9、editor -> add target -> Cross-platform -> Aggregate -> 执行第7步操作

f1d343719a39

add target_0.png

f1d343719a39

add target_1.png

10、Build Phases -> Target Dependencies -> 添加刚创建的.a

f1d343719a39

添加.a.png

11、添加脚本并编译:MultiPlatform Build

set -e if [ -n "$RW_MULTIPLATFORM_BUILD_IN_PROGRESS" ]; then exit 0 fi export RW_MULTIPLATFORM_BUILD_IN_PROGRESS=1 RW_FRAMEWORK_NAME=${PROJECT_NAME} RW_INPUT_STATIC_LIB="lib${PROJECT_NAME}.a" RW_FRAMEWORK_LOCATION="${BUILT_PRODUCTS_DIR}/${RW_FRAMEWORK_NAME}.framework" function build_static_library { xcrun xcodebuild -project "${PROJECT_FILE_PATH}" \ -target "${TARGET_NAME}" \ -configuration "${CONFIGURATION}" \ -sdk "${1}" \ ONLY_ACTIVE_ARCH=NO \ BUILD_DIR="${BUILD_DIR}" \ OBJROOT="${OBJROOT}/DependentBuilds" \ BUILD_ROOT="${BUILD_ROOT}" \ SYMROOT="${SYMROOT}" $ACTION } function make_fat_library { xcrun lipo -create "${1}" "${2}" -output "${3}" } if [[ "$SDK_NAME" =~ ([A-Za-z]+) ]]; then RW_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 RW_SDK_VERSION=${BASH_REMATCH[1]} else echo "Could not find sdk version from SDK_NAME: $SDK_NAME" exit 1 fi if [ "$RW_SDK_PLATFORM" == "iphoneos" ]; then RW_OTHER_PLATFORM=iphonesimulator else RW_OTHER_PLATFORM=iphoneos fi if [[ "$BUILT_PRODUCTS_DIR" =~ (.*)$RW_SDK_PLATFORM$ ]]; then RW_OTHER_BUILT_PRODUCTS_DIR="${BASH_REMATCH[1]}${RW_OTHER_PLATFORM}" else echo "Could not find other platform build directory." exit 1 fi build_static_library "${RW_OTHER_PLATFORM}${RW_SDK_VERSION}" if [ "$RW_SDK_PLATFORM" == "iphonesimulator" ]; then build_static_library "${SDK_NAME}" fi make_fat_library "${BUILT_PRODUCTS_DIR}/${RW_INPUT_STATIC_LIB}" \ "${RW_OTHER_BUILT_PRODUCTS_DIR}/${RW_INPUT_STATIC_LIB}" \ "${RW_FRAMEWORK_LOCATION}/Versions/A/${RW_FRAMEWORK_NAME}" cp -a "${RW_FRAMEWORK_LOCATION}/Versions/A/${RW_FRAMEWORK_NAME}" \ "${RW_OTHER_BUILT_PRODUCTS_DIR}/${RW_FRAMEWORK_NAME}.framework/Versions/A/${RW_FRAMEWORK_NAME}" INSTALL_DIR=${SRCROOT}/Products/${RW_FRAMEWORK_NAME}.framework if [ -d "${INSTALL_DIR}" ]; then rm -rf "${INSTALL_DIR}" fi ditto "${RW_FRAMEWORK_LOCATION}" "${INSTALL_DIR}" open "${INSTALL_DIR}"

f1d343719a39

编译.png

12、验证

cd framework文件夹下

xcrun lipo -info 工程名称

f1d343719a39

验证.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值