Build Library By xcodebuild

#!/bin/bash
#
# 介绍:
# 这个脚本全部自动化编译各指令集静态库后合并。现在支持指令集有armv7 armv7s arm64 i386 x86_64

# 使用:
#  首先cd 到xcode工程目录 然后运行 "sh ./build.sh"  PS:xcode不能含有xcodebuild的Runscript切记!
#
# 验证:
#  cd 到静态库目录  然后 "lipo -info 静态库名称.a "
#
# TODO :
# 1.完成宏定义,解决多次修改工程名字的问题
# 2.增加SVN、GIT版本号
# 3.增加Buildnotes
# 4.完成规范化命名
#

#工程的名字
MY_PROJECT_NAME="ProjectName.xcodeproj"
#编译target的名字
MY_TARGET_NAME="ProjectName"
#LIB名字
MY_STATIC_LIB="lib${PROJECT_NAME}.a"
#编译路径
# 编译静态库名称路径
LIB_DIR = 'tmp/'
#合并静态库文件路径
LIB_FINAL_PATH= "${LIB_DIR}/FinalLib"

#如果目标文件不存在则创建
if [ ! -d "${LIB_DIR}" ]; then
  mkdir -p "${LIB_DIR}"
fi
if [ ! -d "${LIB_FINAL_NAME}" ]; then
  mkdir -p "${LIB_FINAL_NAME}"
fi

# armv7 armv7s

MY_ARMV7_BUILD_PATH='temp/armv7'
MY_CURRENT_BUILD_PATH="${MY_ARMV7_BUILD_PATH}"

xcodebuild -project "${MY_PROJECT_NAME}" -target "${MY_TARGET_NAME}" -configuration 'Release'  -sdk 'iphoneos7.0' CONFIGURATION_BUILD_DIR="${MY_CURRENT_BUILD_PATH}" ARCHS='armv7 armv7s'  VALID_ARCHS='armv7 armv7s' IPHONEOS_DEPLOYMENT_TARGET='5.0' clean build

MY_ARMV7S_BUILD_PATH='temp/armv7S'
MY_CURRENT_BUILD_PATH="${MY_ARMV7S_BUILD_PATH}"

xcodebuild -project "${MY_PROJECT_NAME}" -target "${MY_TARGET_NAME}" -configuration 'Release'  -sdk 'iphoneos7.0' CONFIGURATION_BUILD_DIR="${MY_CURRENT_BUILD_PATH}" ARCHS='armv7s'  VALID_ARCHS='armv7s' IPHONEOS_DEPLOYMENT_TARGET='5.0' clean build

# arm64  代码未修改所以报错

MY_ARM64_BUILD_PATH='temp/arm64'
MY_CURRENT_BUILD_PATH="${MY_ARM64_BUILD_PATH}"

xcodebuild -project "${MY_PROJECT_NAME}" -target "${MY_TARGET_NAME}" -configuration 'Release' -sdk 'iphoneos7.0' CONFIGURATION_BUILD_DIR="${MY_CURRENT_BUILD_PATH}" ARCHS='arm64' IPHONEOS_DEPLOYMENT_TARGET='7.0'  clean build
 
# i386
MY_I386_BUILD_PATH='temp/i386'
MY_CURRENT_BUILD_PATH="${MY_I386_BUILD_PATH}"

xcodebuild -project "${MY_PROJECT_NAME}" -target "${MY_TARGET_NAME}" -configuration 'Release' -sdk 'iphonesimulator7.0' CONFIGURATION_BUILD_DIR="${MY_CURRENT_BUILD_PATH}" ARCHS='i386' VALID_ARCHS='i386' IPHONEOS_DEPLOYMENT_TARGET='5.0' clean build

# x86_64 代码未兼容所以报错

MY_X86_64_BUILD_PATH='temp/x86_64'
MY_CURRENT_BUILD_PATH="${MY_X86_64_BUILD_PATH}"

xcodebuild -project "${MY_PROJECT_NAME}" -target "${MY_TARGET_NAME}" -configuration 'Release' -sdk 'iphonesimulator7.0' CONFIGURATION_BUILD_DIR="${MY_CURRENT_BUILD_PATH}" ARCHS='x86_64' VALID_ARCHS='x86_64' IPHONEOS_DEPLOYMENT_TARGET='7.0' clean build


# #####################
#
# # # 需要重新设置编译target的名字,
#
# #####################
# TARGET 名字
MY_TARGET_NAME="AudioService"
#LIB名字
MY_STATIC_LIB="lib${MY_TARGET_NAME}.a"

#最终静态库路径
MY_FINAL_BUILD_PATH='lib/'
#最终静态库名字
MY_FINAL_STATIC_LIB="AudioService.a"
if [ ! -d "${MY_FINAL_BUILD_PATH}" ]; then
  mkdir -p "${MY_FINAL_BUILD_PATH}"
fi

# 合并不同版本的编译库
lipo -create "${MY_ARMV7_BUILD_PATH}/${MY_STATIC_LIB}" "${MY_ARMV7S_BUILD_PATH}/${MY_STATIC_LIB}" "${MY_ARM64_BUILD_PATH}/${MY_STATIC_LIB}" "${MY_I386_BUILD_PATH}/${MY_STATIC_LIB}" "${MY_X86_64_BUILD_PATH}/${MY_STATIC_LIB}" -output "${MY_FINAL_BUILD_PATH}${MY_FINAL_STATIC_LIB}"

# lipo -create "${MY_ARM_BUILD_PATH}/${MY_STATIC_LIB}" "${MY_I386_BUILD_PATH}/${MY_STATIC_LIB}" -output "${MY_FINAL_BUILD_PATH}${MY_FINAL_STATIC_LIB}"
     
  
# rm -rf 'temp'
# rm -rf 'build'

open "${MY_FINAL_BUILD_PATH}"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值