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及使用的更多相关文章

  1. Xcode 创建静态库和动态库

    1.linux中静态库和动态库区别: 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. 静态库:这类库的名字一般是libxxx.a:利用静态函数库编译成的文件 ...

  2. iOS:创建静态库及其使用

    本篇来自转载,原创链接为:http://my.oschina.net/leejan97/blog/284193 摘要: 静态库文件可以有效的将功能封装和细节隐藏  ios 静态库 static lib ...

  3. 在iOS中创建静态库

    如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加入我们的翻译小组(联系qq:2408167315).  =========================================== ...

  4. iOS开发之静态库(五)—— 图片、界面xib等资源文件封装到静态框架framework

    编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 一.首先将资源文件打包成bundle 由于bundle是静态的,所以可以将 ...

  5. iOS开发之静态库(三)—— 图片、界面xib等资源文件封装到.a静态库

    编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 一.首先将资源文件打包成bundle 新建工程:File -> Ne ...

  6. iOS 元件组件-创建静态库static library

    概述 在项目开发的过程中,经常使用静态库文件.例如两个公司之间业务交流,不可能把源代码都发送给另一个公司,这时候将私密内容打包成静态库,别人只能调用接口,而不能知道其中实现的细节. 库是一些没有mai ...

  7. iOS 创建静态库文件时去掉当中的Symbols

    在project中创建静态库文件时.默认会将一些Symbols加到静态库文件里.这样做有两个缺点: 1.假设引用静态库文件的project中发生了bug.就会直接跳转到静态库的源代码. 也许有人问:静 ...

  8. iOS开发中静态库制作 之.a静态库制作及使用篇

    iOS开发中静态库之".a静态库"的制作及使用篇 一.库的简介 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的类型? 根据源代码的公开情况,库可以分为2种类 ...

  9. iOS开发之静态库(二)—— .a

    前面已经介绍了iOS中静态库的基本概念和特点,这里就不再多废话,直接上代码 编译环境Xcode5.1 + Mac OS X 10.9.3 新建静态库项目 Xcode中创建静态库的模板有两个,一个是创建 ...

随机推荐

  1. zabbix中文乱码的问题

    在使用zabbix时,有时候会出现中文乱码的问题,如下: 因为zabbix自身对中文简体的支持不完善,需要我们手动的去上传新的字体进行替换: 1.在windows获取字体库文件 在Windows上的字 ...

  2. octomap的简介

    装载自高翔博士的博客:https://www.cnblogs.com/gaoxiang12/p/5041142.html 什么是octomap? RGBD SLAM的目的有两个:估计机器人的轨迹,并建 ...

  3. eclipse反编译插件jadClipse安装使用教程

    previously:最近在学习Dependency Injection(依赖注入)模式,看了 martin fowler 的 文章(原文:https://martinfowler.com/artic ...

  4. GraphLab GraphLab和MapReduce的区别

    https://turi.com/ GraphLab和MapReduce的区别 https://baike.baidu.com/item/GraphLab/16423125 2. GraphLab和M ...

  5. IRC and security tools

    login:::   /msg NickServ identify <password>. join:::   /join #metasploit 浏览器: Tor操作系统: Tails加 ...

  6. Guideline 2.1 - Information Needed

    For information about testing your app and preparing it for review, please see Technical Note TN2431 ...

  7. dedecms调用当前栏目的子栏目怎么操作

    有时我们建网站会建很多分类,每个分类又有小分类,为了让顶级栏目获得更好的权重和排名,我们会聚合子栏目.那么dedecms调用当前栏目的子栏目怎么操作呢? 有两种方法:标签dede:sonchannel ...

  8. Android应用之——百度地图最新SDK3.0应用,实现最经常使用的标注覆盖物以及弹出窗覆盖物

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/yanglfree/article/details/33333413 一.概述 最新版的百度地图SDK ...

  9. keepalived的log

    vrrp_script chk_http_port { script "</dev/tcp/127.0.0.1/8088" interval 1 weight -2 } ke ...

  10. PAT 1072 Gas Station[图论][难]

    1072 Gas Station (30)(30 分) A gas station has to be built at such a location that the minimum distan ...