首页 > 解决方案 > Jenkins iOS 为模拟器和设备构建

问题描述

首先让我说我知道如何手动创建胖库,如本文所述:如何为 iPhone 模拟器和设备构建库?

我的问题是,有人知道如何配置 Jenkins 来完成同样的工作吗?

一点背景:我正在创建一个库,因此每次发布时,我都必须完成模拟器和设备的所有构建过程,然后进入它们各自的文件夹中获取生成的框架,并将它们放在一起使用 lipo 工具。

我能够通过脚本自动化集总过程,所以我想知道我是否可以自动化 Jenkins 以输出两种架构类型的框架并调用然后调用这个自定义脚本。

谢谢

标签: iosjenkinsbuild

解决方案


您可以一个一个地构建它们。跟随,通过 lipo 将它们组合起来。

CURRENTPATH=`pwd`

xcodebuild -project ${PROJECT_NAME}.xcodeproj -configuration 
  ${CONFIGURATION} - 
  sdk iphoneos clean build ARCHS='armv7 armv7s' 
  IPHONEOS_DEPLOYMENT_TARGET='5.0' 
  TARGET_BUILD_DIR='./build-arm' BUILT_PRODUCTS_DIR='./build-arm'

 xcodebuild -project ${PROJECT_NAME}.xcodeproj -configuration ${CONFIGURATION} 
  -sdk iphoneos clean build ARCHS='arm64' IPHONEOS_DEPLOYMENT_TARGET='7.0' 
   TARGET_BUILD_DIR='./build-arm64' BUILT_PRODUCTS_DIR='./build-arm64'

xcodebuild -project ${PROJECT_NAME}.xcodeproj -configuration ${CONFIGURATION} - 
  sdk iphonesimulator clean build ARCHS='i386' IPHONEOS_DEPLOYMENT_TARGET='5.0' 
  TARGET_BUILD_DIR='./build-i386' BUILT_PRODUCTS_DIR='./build-i386'

xcodebuild -project ${PROJECT_NAME}.xcodeproj -configuration ${CONFIGURATION} - 
  sdk iphonesimulator clean build ARCHS='x86_64' VALID_ARCHS='x86_64' 
  IPHONEOS_DEPLOYMENT_TARGET='7.0' TARGET_BUILD_DIR='./build-x86_64' 
  BUILT_PRODUCTS_DIR='./build-x86_64'

cp -r "${CURRENTPATH}/build-arm64/include" "${CURRENTPATH}/build-universal"

lipo -create ./build-arm/lib${PROJECT_NAME}.a ./build- 
  arm64/lib${PROJECT_NAME}.a ./build-i386/lib${PROJECT_NAME}.a ./build- 
   x86_64/lib${PROJECT_NAME}.a -output ./build-universal/lib${PROJECT_NAME}.a

希望这会有所帮助。


推荐阅读