iOS xcode创建静态库封装自己的SDK及使用
https://www.cnblogs.com/JustForHappy/p/5773039.html
一,静态库和动态库的区别在这里就不说了,个人感觉如果是自己封装提供别人下载的话应该是静态库比较方便.(本文就是创建静态库及使用)
二,使用Xcode创建静态库
1,首先创建静态库工程
xcode ---->选择IOS下的Framework&Library ----->选择Cocoa Touch Static Library (记得这里确定是IOS下的,不是watchOS下的,小编第一次就是不注意创建错.)

2,创建完成之后,我们可以看一下界面顺便再.h和.m里面分别创建方法和输出信息

.h界面 创建方法
1 #import <Foundation/Foundation.h>
2
3 @interface logNews : NSObject
4 -(void)logNewsA;
5 +(void)logNewsB;
6 @end
.m界面实现方法

1 #import "logNews.h"
2
3 @implementation logNews
4 -(void)logNewsA{
5 NSLog(@"--------A");
6 }
7
8 +(void)logNewsB{
9 NSLog(@"--------B");
10 }
11
12 @end

3,点击 Build Phases -Copy Files 点击左下角的+号,会弹出项目中所有的文件.h和.m文件,这里的意思是要你添加你完成封装之后让别人能够看到的文件,这里我只选择 .h文件,选中文件之后点击add进行添加 如图(我添加的是logNews.h)

注:我在一篇帖子中看到过,如果项目中使用类目的话,会碰到链接问题,解决的办法就是需要同时在生成静态库的工程和使用静态库的工程中使用“-all_load”编译选项,即在对应target的"Build Settings"中的“Other Linker Flags”选项添加“-all_load”,使用静态库的工程中是一定要加该编译选项的!至于生成静态库的工程中加不加没有试过,不过建议还是加上该编译选项.下面是原帖子地址:
(文/Shelin(简书作者)
原文链接:http://www.jianshu.com/p/656ba8094d1d)
4,选择Edit Scheme 将BuildConfiguration下的Debug更改为Release之后close


5,之后进行模拟器编译和真机编译,你会发现左侧的liblogNews.a文件由原来的红色变为现在的黑色
6,将模拟器.a文件和设备真机.a文件合成一个文件
首先找到对应项目的模拟器.a文件和真机.a文件
(1)打开终端在终端输入 open /Users/smile/Library/Developer/Xcode/DerivedData/ (smile 是自己的电脑名字)在打开的文件夹中找到自己对应的文件,logNews-hiakdvdtfjbhsjanpxkvmfmavmcb ------->Build ------>Products 在里面我们看到两个文件夹,这里面就是模拟器.a文件和真机.a问价(这里我就不截图了)
(2)在终端输入 lipo -create 模拟器.a文件的路径 真机.a文件的路径 -output 合并后的保存路径 我们就得到合并之后的.a文件
三,静态库的使用
1,新建文件夹命名为logNewsSDK,把我们获得的.a文件和我们需要显示的.h文件拷贝进去,就行了
2,把logNewsSDK导入新建的项目中.
(1),首先导入.h文件
(2)创建对象,创建对象之后,调用加好方法和减号方法
1 logNews * p = [[logNews alloc]init];
2 [p printA];
3 [Print printB];
3,最后输出结果
iOS xcode创建静态库封装自己的SDK及使用的更多相关文章
- Xcode 创建静态库和动态库
1.linux中静态库和动态库区别: 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. 静态库:这类库的名字一般是libxxx.a:利用静态函数库编译成的文件 ...
- iOS:创建静态库及其使用
本篇来自转载,原创链接为:http://my.oschina.net/leejan97/blog/284193 摘要: 静态库文件可以有效的将功能封装和细节隐藏 ios 静态库 static lib ...
- 在iOS中创建静态库
如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加入我们的翻译小组(联系qq:2408167315). =========================================== ...
- iOS开发之静态库(五)—— 图片、界面xib等资源文件封装到静态框架framework
编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 一.首先将资源文件打包成bundle 由于bundle是静态的,所以可以将 ...
- iOS开发之静态库(三)—— 图片、界面xib等资源文件封装到.a静态库
编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 一.首先将资源文件打包成bundle 新建工程:File -> Ne ...
- iOS 元件组件-创建静态库static library
概述 在项目开发的过程中,经常使用静态库文件.例如两个公司之间业务交流,不可能把源代码都发送给另一个公司,这时候将私密内容打包成静态库,别人只能调用接口,而不能知道其中实现的细节. 库是一些没有mai ...
- iOS 创建静态库文件时去掉当中的Symbols
在project中创建静态库文件时.默认会将一些Symbols加到静态库文件里.这样做有两个缺点: 1.假设引用静态库文件的project中发生了bug.就会直接跳转到静态库的源代码. 也许有人问:静 ...
- iOS开发中静态库制作 之.a静态库制作及使用篇
iOS开发中静态库之".a静态库"的制作及使用篇 一.库的简介 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的类型? 根据源代码的公开情况,库可以分为2种类 ...
- iOS开发之静态库(二)—— .a
前面已经介绍了iOS中静态库的基本概念和特点,这里就不再多废话,直接上代码 编译环境Xcode5.1 + Mac OS X 10.9.3 新建静态库项目 Xcode中创建静态库的模板有两个,一个是创建 ...
随机推荐
- scrapy-redis的使用与解析
scrapy-redis是一个基于redis的scrapy组件,通过它可以快速实现简单分布式爬虫程序,该组件本质上提供了三大功能: scheduler - 调度器 dupefilter - URL ...
- Redis的启动过程
本文主要介绍Redis启动加载过程,总体上可以分为如下几步: 1. 初始化全局服务器配置 2. 加载配置文件(如果指定了配置文件,否则使用默认配置) 3. 初始化服务器 4. 加载数据库 5. 网络监 ...
- 字符串-回文-Manacher算法
http://blog.csdn.net/zzkksunboy/article/details/72600679 https://segmentfault.com/a/1190000008484167 ...
- Cocoa 集合类型:NSPointerArray,NSMapTable,NSHashTable
iOS 中有很多种集合类型,最为常见的可能就 NSArray.NSDictionary.NSSet,但其实还有 NSPointerArray.NSMapTable.NSHashTable 等类型,虽然 ...
- 5839Special Tetrahedron---hdu5839(计算几何,求特殊四面体个数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5839 给你n个三维的点,然后求这n各点可以构成多少个特殊四面体,特殊四面体满足一下两点: 1.至少有四 ...
- 洛谷P2657 windy数 [SCOI2009] 数位dp
正解:数位dp 解题报告: 传送门! 这题一看就是个数位dp鸭,"不含前导零且相邻两个数字之差至少为2"这种的 然后就直接套板子鸭(板子戳总结,懒得放链接辣QAQ 然后就是套路 然 ...
- virtualenvwrapper 的安装和使用(转)
原文:http://www.cnblogs.com/asmer-stone/p/5470144.html virtualenvwrapper是用来管理virtualenv的扩展包,用着很方便. 1. ...
- Win10系统 Eclipse 下'Publishing to Tomcat'has encountered a problem解决办法
首先贴出来错误: 详情为:Publishing failedCould not publish to the server.There were issues during deployment to ...
- 控制div显示隐藏(有文字图片介绍)
<div class="toggle"> <p id="zi">收起</p> <p id="zhe" ...
- 10 jmeter之动态关联
jmeter中关联是通过之前请求的后置处理器实现的,具体有两种方式:XPath Extractor(一般xml的时候用的多)和正则表达式提取器. 以webtours登录为例进行演示login.jmx ...