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中创建静态库的模板有两个,一个是创建 ...
随机推荐
- failed to register esriAddin
ArcGIS AddIN开发遇到此种异常,目前有两种错误的可能:(1)项目名称好像不能为中文名,如果为中文名,请改正 (2)在Config.esriAddinx配置文件中,存在如下代码 <Tar ...
- select、poll和epoll的比较
一.select机制 在linux下网络通信中,经常用到select机制,这是一种异步通信的实现方式,select中提供一fd_set的数据结果,实际上是一个long类型的数组, 每一个数组元素都能与 ...
- Cglib 与 JDK动态代理的运行性能比较
都说 Cglib 创建的动态代理的运行性能比 JDK 动态代理能高出大概 10 倍,今日抱着怀疑精神验证了一下,发现情况有所不同,遂贴出实验结果,以供参考和讨论. 代码很简单,首先,定义一个 Test ...
- JVM JRE JDK三者的区别和联系
一. 详细介绍1.JVM -- java virtual machineJVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类 ...
- 超链接 a的小手
cursor:hand 仅仅ie only,FIREFOX底下就不可以正常渲染 cursor:pointer; <span style="cursor:pointer;" ...
- Exception in thread "main" java.lang.StackOverflowError
总结:1.创建对象时,在父类构造方法new子类对象,这样会造成循环调用构造方法
- 【转】JavaScript中的匿名函数及函数的闭包
对闭包理解一直不甚明了,在此特转摘博文一篇以备查用. 原文地址:http://www.cnblogs.com/rainman/archive/2009/05/04/1448899.html 相关文章: ...
- CodeForces - 847B Preparing for Merge Sort 二分
http://codeforces.com/problemset/problem/847/B 题意:给你n个数(n<2e5)把它们分成若干组升序的子序列,一行输出一组.分的方法相当于不断找最长递 ...
- Oracle体系结构之rac内存管理
一.内存管理第一层: 1.memory_target和memory_max_target开启自动内存管理. rac1: SQL> show parameter memory NAME TYPE ...
- 2018/04/21 PHP 中的Session和Cookie知识总结
在之后的工作和学习中,更是发现了自己对于基础知识的不扎实,于是又返回头来学习,确实很多东西是之前没注意或是没掌握的. 着重讲一下这几个问题 -- 什么是 Cookie ? 简单来说: 因为 HTTP ...