ios - Jenkins iOS 为模拟器和设备构建
问题描述
首先让我说我知道如何手动创建胖库,如本文所述:如何为 iPhone 模拟器和设备构建库?
我的问题是,有人知道如何配置 Jenkins 来完成同样的工作吗?
一点背景:我正在创建一个库,因此每次发布时,我都必须完成模拟器和设备的所有构建过程,然后进入它们各自的文件夹中获取生成的框架,并将它们放在一起使用 lipo 工具。
我能够通过脚本自动化集总过程,所以我想知道我是否可以自动化 Jenkins 以输出两种架构类型的框架并调用然后调用这个自定义脚本。
谢谢
解决方案
您可以一个一个地构建它们。跟随,通过 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
希望这会有所帮助。
推荐阅读
- ios - 如何将值附加到模型类
- python - 使用 Python 按标签文本对 xml 文件进行排序
- r - Geom_txt 在动画中无法正确显示
- c - 当我们将 char * 转换为 int * 时,后台或内存中会发生什么
- javascript - 如何在 nodejs 后端使用 Dropbox API v2 上传图片
- swift - `return nil` 和 `return` 可以互换吗?
- angular - ngIf 的行为和 Angular 中的属性绑定
- c# - 如何在 C# 中模拟快捷方式?
- r - 在 mutate 中使用引号:mutate_(.dots = ...) 的替代方法
- java - 假的 RestTemplate ajax 端点上有 77 个卡住的线程