Library静态库Shell脚本

#!/bin/bash

#要build的target名
target_Name="IFlyMSC" #编译模式 Release、Debug
build_model=Release #获取工程当前所在路径
project_path=$(pwd) #编译文件路径
buildPath=${project_path}/build #导出sdk地址
exportSdkPath=~/Desktop/${target_Name}-SDK/${build_model} if [ ! -d $exportSdkPath ]; then
mkdir -p $exportSdkPath;
fi #真机sdk路径
iphoneos_path=${buildPath}/${build_model}-iphoneos/lib${target_Name}.a
#模拟器sdk路径
simulator_path=${buildPath}/${build_model}-iphonesimulator/lib${target_Name}.a
#合并后sdk路径
merge_path=${exportSdkPath}/lib${target_Name}.a #build之前clean一下
xcodebuild -target ${target_Name} clean #模拟器build
xcodebuild -target ${target_Name} -configuration ${build_model} -sdk iphonesimulator ARCHS="i386 x86_64" VALID_ARCHS="i386 x86_64" #真机build
xcodebuild -target ${target_Name} -configuration ${build_model} -sdk iphoneos "ARCHS=armv7 arm64" "VALID_ARCHS=armv7 armv7s arm64" #复制头文件到目标文件夹
cp -R ${buildPath}/${build_model}-iphoneos/include/${target_Name} ${exportSdkPath} #合并模拟器和真机.a包
lipo -create ${iphoneos_path} ${simulator_path} -output ${merge_path} #压缩合并后的文件 #压缩后的文件名
package_date=`date '+%Y-%m-%d日%X'`
sdk_zip_name=lib${target_Name}_${build_model}_${package_date}.zip
#跳转到sdk的输出路径
cd ${exportSdkPath}
#压缩sdk输出路径下的所有文件
zip -r ~/Desktop/${target_Name}-SDK/${sdk_zip_name} ./* #打开合并后的sdk所在路径
open ${exportSdkPath} #删除build文件
if [ -d ${buildPath} ]; then
rm -rf ${buildPath}
fi

Framework静态库Shell脚本编译

#!/bin/bash

#要build的target名
target_Name="HTKit" #编译模式 Release、Debug
build_model=Release #获取工程当前所在路径
project_path=$(pwd) #编译文件路径
buildPath=${project_path}/build #导出sdk地址
exportSdkPath=~/Desktop/${target_Name}-SDK/${build_model} if [ ! -d $exportSdkPath ]; then
mkdir -p $exportSdkPath;
fi #真机sdk路径
iphoneos_path=${buildPath}/${build_model}-iphoneos/${target_Name}.framework/${target_Name}
#模拟器sdk路径
simulator_path=${buildPath}/${build_model}-iphonesimulator/${target_Name}.framework/${target_Name}
#合并后sdk路径
merge_path=${exportSdkPath}/${target_Name}.framework/${target_Name} #build之前clean一下
xcodebuild -target ${target_Name} clean #模拟器build
xcodebuild -target ${target_Name} -configuration ${build_model} -sdk iphonesimulator ARCHS="i386 x86_64" VALID_ARCHS="i386 x86_64" #真机build
xcodebuild -target ${target_Name} -configuration ${build_model} -sdk iphoneos "ARCHS=armv7 arm64" "VALID_ARCHS=armv7 armv7s arm64" #复制真机.framework到目标文件夹
cp -R ${buildPath}/${build_model}-iphoneos/${target_Name}.framework ${exportSdkPath} #合并模拟器和真机.a包
lipo -create ${iphoneos_path} ${simulator_path} -output ${merge_path} #删除framework下的Info.plist
rm -r -f ${exportSdkPath}/${target_Name}.framework/Info.plist #删除framework下的Modules
rm -r -f ${exportSdkPath}/${target_Name}.framework/Modules #压缩合并后的文件 #压缩后的文件名
package_date=`date '+%Y-%m-%d日%X'`
sdk_zip_name=lib${target_Name}_${build_model}_${package_date}.zip
#跳转到sdk的输出路径
cd ${exportSdkPath}
#压缩sdk输出路径下的所有文件
zip -r ~/Desktop/${target_Name}-SDK/${sdk_zip_name} ./* #打开合并后的sdk所在路径
open ${exportSdkPath} #删除build文件
if [ -d ${buildPath} ]; then
rm -rf ${buildPath}
fi

iOS开发系列-Shell脚本编译SDK的更多相关文章

  1. iOS开发系列-Shell脚本生成IPA

    概述 在公司开发到了测试阶段需要频繁打包交付给测试,看似简单的工作,重复的流程总是感觉不是那么好,我们可以借助苹果提供的编译指令编译项目. 自动化脚本编译打包IPA 常见的iOS项目就是基于xcode ...

  2. iOS开发系列--Swift进阶

    概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...

  3. iOS开发系列

    因为最近面试了一些人,校招.初中级.高级.架构师,各种级别的,发现大家水平差异很大,有的高级的工程师很多问题都回答不上来,所以想梳理下iOS的知识点,写成一个系列,如果时间允许的话,会录制成视频放到网 ...

  4. iOS开发系列--Swift语言

    概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...

  5. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

  6. iOS开发系列--C语言之基础知识

    概览 当前移动开发的趋势已经势不可挡,这个系列希望浅谈一下个人对IOS开发的一些见解,这个IOS系列计划从几个角度去说IOS开发: C语言 OC基础 IOS开发(iphone/ipad) Swift ...

  7. 李洪强iOS开发之-环信02_iOS SDK 介绍及导入

    李洪强iOS开发之-环信02_iOS SDK 介绍及导入 iOS SDK 介绍及导入 iOS SDK 介绍 环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架.包括以下几个部分: SD ...

  8. iOS开发系列文章(持续更新……)

    iOS开发系列的文章,内容循序渐进,包含C语言.ObjC.iOS开发以及日后要写的游戏开发和Swift编程几部分内容.文章会持续更新,希望大家多多关注,如果文章对你有帮助请点赞支持,多谢! 为了方便大 ...

  9. iOS开发系列--通知与消息机制

    概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地 ...

随机推荐

  1. 5. Jmeter常用快捷键

    快捷键 功能 备注 Ctrl + C 复制 可复制组件 Ctrl + V 粘贴 可粘贴组件 Ctrl + Shift + C 复制粘贴当前组件到下一行   Ctrl + R 运行测试计划   Ctrl ...

  2. poj 1905 图形推算+二分

    参考博客: 题意: 一根两端固定在两面墙上的杆 受热弯曲后变弯曲 求前后两个状态的杆的中点位置的距离 分析:见博客 代码: #include<stdio.h> #include<io ...

  3. hdu6395 /// 分块矩阵快速幂

    题目大意: F(1)=A, F(2)=B,  F(i)=C*F(i-2)+D*F(i-1)+p/i(向下取整) 给定A B C D p n 求F(n) 构造 矩阵A *   矩阵B        =  ...

  4. USACO 2001 OPEN earthquake /// 最优比例生成树

    题目大意: https://www.cnblogs.com/forever97/p/3603572.html 讲解:https://www.jianshu.com/p/d40a740a527e 题解: ...

  5. Jmeter+ant

    1.下载 ant,解压到非中文目录,并配置环境变量,不会的自行 google 2.将 jmeter 中 extras 子目录里的 ant-jmeter-1.1.1.jar 复制到 ant 中的 lib ...

  6. RTL_PROCESS_MODULE_INFORMATION

    typedef struct _RTL_PROCESS_MODULE_INFORMATION { HANDLE Section; // Not filled in PVOID MappedBase; ...

  7. linux crontab 计划任务编写

    在linux中启动crontab服务: /etc/init.d/crond start crontab的命令格式 crontab -l 显示当前的crontab 文件(默认编写的crontab文件会保 ...

  8. SolidWorks直线命令快捷转换为圆弧命令

    在进行草图绘制的时候,有时候需要切换到圆弧命令,此时来回切换比较麻烦, 我们可以将鼠标回碰线段起点,此时便成为了圆弧工具. 再次回碰,可改变圆心方向 利用鼠标操作,快捷切换绘图工具.

  9. leetcood学习笔记-501- 二叉搜索树中的众数

    题目描述: 方法一: class Solution: def findMode(self, root: TreeNode) -> List[int]: if not root: return [ ...

  10. Grafana + Influxdb Android性能监控部署

    目录 前言 一.前提准备 二.安装 Grafana 三.安装 Influxdb 四.Grafana 添加 Influxdb 数据源 五.Shell 脚本写入数据到 Influxdb 前言 你是否为了数 ...