#pragma mark - 一. 静态库
#pragma mark 1. 创建.a静态库
1. 创建应该选择Framework一栏 --> static
2. 默认编译后(真机/模拟器分别运行)只会输入, 自带的.h, 不会输出新建类的.h
3. 应该选择项目--> Build Phases --> Copy file --> 添加.h即可
#pragma mark 2. 测试.a静态库
1. 模拟器的架构问题
1>. 常见报错: Undefined symbols for architecture arm64 / i386 /armv7s/ armv7
//architecture: 架构
解决方式: 检查静态库的架构问题 看看是否模拟器和真机导入错误
2>. 模拟器和真机的架构
//模拟器编译时只输出一种架构
//真机(不要插入iPhone),默认输出多种架构, 除了armv7s
//从2014年10月的某个版本更新中, 取消了armv7s为默认输出选项
//架构是支持低版本兼容
模拟器:2种架构
i386 : 4S ~ 5 --> 32
x86_64 : 5S ~ 6s --> 64
真机: 3种架构
armv7 :4 ~ 4s
armv7s : 5 ~ 5c
arm64 : 5S ~ 6s
2. 查看静态库支持的架构
cd到静态库目录下
查看架构: lipo -info lib.a
3. 架构的合成
方式一: 命令行, 两两合并 (真机不插iPhone, 默认已经多个架构 --> 模拟器合成一次, 再跟真机合成一次)
lipo -create 静态库1.a 静态库2.a -output 新静态库.a
方式二: 更改编译参数
点击库文件 --> Target --> Build Setting --> 只编译当前架构选项改为NO
如果是模拟器编译, 则直接编译成2个版本之和
如果是真机编译,仍然编译成2个版本之和
还需要跟真机合并一次
4. 合成静态库的优缺点
如何合成: 比如友盟 优点: 调试方便 缺点: 体积大
如果不合成: 比如百度2.8.1版本 优点:减少文件体积 缺点: 真机和模拟器切换调试非常不方便
*如何打包出armv7s架构
可以进入Build Setting --> 手动添加三个架构, 然后编译即可
5. Release和Debug模式的区别
Debug: 调试状态 NSLog 拥有丰富的调试代码, 用户不需要加载这些代码
Release: 发布状态 系统会在打包时取出一些调试代码, 文件体积变小, 运行速度变快(用户不会感受到明显的感觉)
最好发布Release版本
#pragma mark 3. 添加资源文件
一定要方法到bundle文件夹下, 保证路径加载是唯一的资源. 否则可能会跟项目里的同名文件发生冲突, 导致文件加载出错.
#pragma mark 4. 边开发边调试.a静态库
1. 创建普通的项目
2. 添加项目Target, 创建库文件, 并实现相关方法
3. 在项目中手动导入.a文件 (重要)
4. 此时.a是通用文件, 什么架构都可以使用.
5. 如果想导出静态库文件, 那么切换Target, 按照之前所学输出即可.
#pragma mark 5. 创建Framework静态库
1. 头文件跟.a一样, 默认只输出创建项目时自带的.h
2. 如果要导出头文件, 找项目--> Build Phases --> Headers --> 将Project的头文件拖拽到Public中即可
3. 其他的架构编译方式跟.a一样
4. Framework的形式 默认导出是动态库 (.dylib / Xcode7 .tbd) . 找到项目--> Embedded Binaries 添加Framework即可.
5. 动态库不能上架, 需要转换静态库 : --> Build Setting --> 搜索mach --> 修改成静态库即可
#pragma mark 6. 测试Framework静态库
1. 一定要注意头文件的导出 . 头文件如果敲不出来, 强制敲
2. 如果需要导出, 参考上面的导出方式即可(注意转换动态库)
#pragma mark - 二. Git
#pragma mark 1. Git介绍/Git与SVN区别
#pragma mark 2. Git命令行演练-单人
1. 常用命令
1>. 给文件夹增加git的支持 git init
2>. 查看状态 : git status 红色: 文件没有被添加到暂缓区 / 文件被修改也会变红色
3>. 添加到暂缓区: git add Person.h : 绿色: 文件已经添加到暂缓区
4>. 添加多个文件: git add .
5>. 查看帮助: git help
6>. 克隆项目(相当于svn的checkout, 第一次下载项目使用) git clone 路径(网址)
7>. 推送本地代码到远程仓库(相当于svn的commit) : git push
8>. 获取远程仓库的最新代码到本地(相当于svn的update): git pull
9>. 初始化目录为服务器目录(相当于搭建好了远程服务器) : git init --bare (bare: 空的/赤裸裸的)
2. 起别名
//alias别名
> git config alias.st "status"
3. 查看日志
> git log : 0193186a5532d8f869199e0f6d63a9a4b056001e
> 版本号 : 是一个40位的哈希值
> apple: user.name / <apple@appledeiMac-5.local>: user.email
> 配置全局log :
> 保留哈希值的前七位
> master = trunk 相当于主目录
4. 配置账户
配置单个目录
> 用户名: git config user.name "hui"
> 邮箱: git config user.email "hui@itcast.cn"
配置全局 --global
> 用户名: git config --global user.name "huizhubo"
> 邮箱: git config --global user.email "hui@itcast.com"
#pragma mark 3. Git工作原理
#pragma mark 4. Git多人开发
1. Xcode操作
2. 解决冲突
> 命令行: git pull --> 自己修改文件 --> git add . --> git ci --> git push (这样就解决了, 其他人pull)
3. 配置忽略文件
> echo -e"直接拼接github上拷贝的忽略文件" > .gitignore
Project Setting : 可以提交
#pragma mark 1. 创建.a静态库
1. 创建应该选择Framework一栏 --> static
2. 默认编译后(真机/模拟器分别运行)只会输入, 自带的.h, 不会输出新建类的.h
3. 应该选择项目--> Build Phases --> Copy file --> 添加.h即可
#pragma mark 2. 测试.a静态库
1. 模拟器的架构问题
1>. 常见报错: Undefined symbols for architecture arm64 / i386 /armv7s/ armv7
//architecture: 架构
解决方式: 检查静态库的架构问题 看看是否模拟器和真机导入错误
2>. 模拟器和真机的架构
//模拟器编译时只输出一种架构
//真机(不要插入iPhone),默认输出多种架构, 除了armv7s
//从2014年10月的某个版本更新中, 取消了armv7s为默认输出选项
//架构是支持低版本兼容
模拟器:2种架构
i386 : 4S ~ 5 --> 32
x86_64 : 5S ~ 6s --> 64
真机: 3种架构
armv7 :4 ~ 4s
armv7s : 5 ~ 5c
arm64 : 5S ~ 6s
2. 查看静态库支持的架构
cd到静态库目录下
查看架构: lipo -info lib.a
3. 架构的合成
方式一: 命令行, 两两合并 (真机不插iPhone, 默认已经多个架构 --> 模拟器合成一次, 再跟真机合成一次)
lipo -create 静态库1.a 静态库2.a -output 新静态库.a
方式二: 更改编译参数
点击库文件 --> Target --> Build Setting --> 只编译当前架构选项改为NO
如果是模拟器编译, 则直接编译成2个版本之和
如果是真机编译,仍然编译成2个版本之和
还需要跟真机合并一次
4. 合成静态库的优缺点
如何合成: 比如友盟 优点: 调试方便 缺点: 体积大
如果不合成: 比如百度2.8.1版本 优点:减少文件体积 缺点: 真机和模拟器切换调试非常不方便
*如何打包出armv7s架构
可以进入Build Setting --> 手动添加三个架构, 然后编译即可
5. Release和Debug模式的区别
Debug: 调试状态 NSLog 拥有丰富的调试代码, 用户不需要加载这些代码
Release: 发布状态 系统会在打包时取出一些调试代码, 文件体积变小, 运行速度变快(用户不会感受到明显的感觉)
最好发布Release版本
#pragma mark 3. 添加资源文件
一定要方法到bundle文件夹下, 保证路径加载是唯一的资源. 否则可能会跟项目里的同名文件发生冲突, 导致文件加载出错.
#pragma mark 4. 边开发边调试.a静态库
1. 创建普通的项目
2. 添加项目Target, 创建库文件, 并实现相关方法
3. 在项目中手动导入.a文件 (重要)
4. 此时.a是通用文件, 什么架构都可以使用.
5. 如果想导出静态库文件, 那么切换Target, 按照之前所学输出即可.
#pragma mark 5. 创建Framework静态库
1. 头文件跟.a一样, 默认只输出创建项目时自带的.h
2. 如果要导出头文件, 找项目--> Build Phases --> Headers --> 将Project的头文件拖拽到Public中即可
3. 其他的架构编译方式跟.a一样
4. Framework的形式 默认导出是动态库 (.dylib / Xcode7 .tbd) . 找到项目--> Embedded Binaries 添加Framework即可.
5. 动态库不能上架, 需要转换静态库 : --> Build Setting --> 搜索mach --> 修改成静态库即可
#pragma mark 6. 测试Framework静态库
1. 一定要注意头文件的导出 . 头文件如果敲不出来, 强制敲
2. 如果需要导出, 参考上面的导出方式即可(注意转换动态库)
#pragma mark - 二. Git
#pragma mark 1. Git介绍/Git与SVN区别
#pragma mark 2. Git命令行演练-单人
1. 常用命令
1>. 给文件夹增加git的支持 git init
2>. 查看状态 : git status 红色: 文件没有被添加到暂缓区 / 文件被修改也会变红色
3>. 添加到暂缓区: git add Person.h : 绿色: 文件已经添加到暂缓区
4>. 添加多个文件: git add .
5>. 查看帮助: git help
6>. 克隆项目(相当于svn的checkout, 第一次下载项目使用) git clone 路径(网址)
7>. 推送本地代码到远程仓库(相当于svn的commit) : git push
8>. 获取远程仓库的最新代码到本地(相当于svn的update): git pull
9>. 初始化目录为服务器目录(相当于搭建好了远程服务器) : git init --bare (bare: 空的/赤裸裸的)
2. 起别名
//alias别名
> git config alias.st "status"
3. 查看日志
> git log : 0193186a5532d8f869199e0f6d63a9a4b056001e
> 版本号 : 是一个40位的哈希值
> apple: user.name / <apple@appledeiMac-5.local>: user.email
> 配置全局log :
> 保留哈希值的前七位
> master = trunk 相当于主目录
4. 配置账户
配置单个目录
> 用户名: git config user.name "hui"
> 邮箱: git config user.email "hui@itcast.cn"
配置全局 --global
> 用户名: git config --global user.name "huizhubo"
> 邮箱: git config --global user.email "hui@itcast.com"
#pragma mark 3. Git工作原理
#pragma mark 4. Git多人开发
1. Xcode操作
2. 解决冲突
> 命令行: git pull --> 自己修改文件 --> git add . --> git ci --> git push (这样就解决了, 其他人pull)
3. 配置忽略文件
> echo -e"直接拼接github上拷贝的忽略文件" > .gitignore
Project Setting : 可以提交
#pragma mark 5. Git
远程服务器
-OSChina