查看.framework静态库的生成及使用单击此处

注:这篇教程将只使用一小部分Objective-C代码,本文主要讲解从开始到应用的详细步骤。
环境:xcode 9.2
下面我们开始操作:

第一步:创建一个静态库工程

打开Xcode,选择新建一个项目,新建Cocoa Touch Static Library。名称看自己需求起名,我直接叫MYSDK。

创建完成后已经有两个文件MMYSDK.h和MYSDK.m,如果想要新实现方法封装成SDK可以直接在在MYSDK这个类里面实现,也可以删除这两个文件将自己已经实现功能的类添加到工程里面。(这里只是写生成.a静态库的步骤,所以直接在MYSDK类里面实现)

在类里面实现弹出一个UIAlertView。

第二步:生成.a静态库

静态库分为手机和模拟器两种(手机端的只有手机能调用,模拟器的只有模拟器能调用)

2.1、生成模拟器使用静态库,随意选择一个模拟器,然后编译工程(快捷键command + B)。这时候已经生成只在模拟器能用的.a静态库libMYSDK.a。

2.2、同样的道理选择Generic iOS Device生成真机能用的.a静态库

右键libMYSDK,选择Show in Finder 在Products文件夹下有两个文件夹Debug-iphoneos和Debug-iphonesimulator,分别是真机和模拟器对应的静态库。

第三步:合成通用.a静态库

将真机和模拟器的.a静态库合并成一个通用的静态库,在终端完成。使用命令行:lipo -create 真机.a静态库路径  模拟器.a静态库路径 -output 合成静态库路径 (直接拖拽.a文件路径就可出现在终端)。

至此,最终的合成库已经生成在桌面,可以直接拿来用了。需要注意的是需要将真机或模拟器任意.a静态库文件夹下的include/MYSDK文件夹中的.h头文件一起加入应用工程。

第四步:.a静态库的使用

4.1、随意创建一个工程,将生成的.a静态库和头文件放到一个文件夹中添加到工程(这里只是说明静态库的使用,请忽略工程目录结构)。

特别说明:如果静态库封装多个类,将所有类的头文件集中添加到一个.h文件,这样在使用的时候只需导入这一个头文件就行。

4.2、在ViewController里面导入头文件并且调用分装的方法。

4.3、分别在模拟器和真机运行(iPhone X模拟器和iPhone 6S真机),运行结果如下。

       

至此,大功告成

iOS SDK开发之 .a静态库的更多相关文章

  1. iOS SDK开发之 .framework静态库

    查看.a静态库的生成及使用单击此处 注:这篇教程将只使用一小部分Objective-C代码,本文主要讲解从开始到应用的详细步骤.环境:xcode 9.2下面我们开始操作: 第一步:创建一个静态库工程 ...

  2. iOS开发之*.a静态库注意事项

    以*.a静态库的形式引入工程的(比如:libUploadLib.a),*.a里面的class有category形式实现时,除了在工程Target的 Build Phases里面的 Link Binar ...

  3. iOS 中 .a 和 .framework 静态库的创建与 .bundle 资源包的使用

    iOS 中 .a 和 .framework 静态库的创建与 .bundle 资源包的使用 前言 开发中经常使用三方库去实现某特定功能,而这些三方库通常又分为开源库和闭源库.开源库可以直接拿到源码,和自 ...

  4. iOS多线程开发之GCD(中篇)

    前文回顾: 上篇博客讲到GCD的实现是由队列和任务两部分组成,其中获取队列的方式有两种,第一种是通过GCD的API的dispatch_queue_create函数生成Dispatch Queue:第二 ...

  5. iOS多线程开发之NSOperation - 快上车,没时间解释了!

    一.什么是NSOperation? NSOperation是苹果提供的一套多线程解决方案.实际上NSOperation是基于GCD更高一层的封装,但是比GCD更加的面向对象.代码可读性更高.可控性更强 ...

  6. iOS项目开发常用功能静态库

    YHDeveloperTools iOS项目开发常用功能静态库 查看源码 功能方法: 1.字符检查 [NSString checkStringWithType:Email andTargetStrin ...

  7. iOS游戏开发之UIDynamic

    iOS游戏开发之UIDynamic 简介 什么是UIDynamic UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架 可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象 ...

  8. iOS多线程开发之NSOperation

    一.什么是NSOperation? NSOperation是苹果提供的一套多线程解决方案.实际上NSOperation是基于GCD更高一层的封装,但是比GCD更加的面向对象.代码可读性更高.可控性更强 ...

  9. iOS多线程开发之GCD(死锁篇)

    上篇和中篇讲解了什么是GCD,如何使用GCD,这篇文章将讲解使用GCD中将遇到的死锁问题.有兴趣的朋友可以回顾<iOS多线程开发之GCD(上篇)>和<iOS多线程开发之GCD(中篇) ...

随机推荐

  1. Linux Firewalld 简明介绍

    防火墙作为保护服务器不受外部网络流量影响的一种方式.可以让用户定义一系列规则来控制外部网络中流入的流量,从而达到允许或阻塞的效果.firewalld 是防火墙服务的一个守护程序,实现了动态修改拥有 D ...

  2. redis之使用场景

    随着数据量的增长,MySQL 已经满足不了大型互联网类应用的需求.因此,Redis 基于内存存储数据,可以极大的提高查询性能,对产品在架构上很好的补充.在某些场景下,可以充分的利用 Redis 的特性 ...

  3. net 网站过滤器 mvc webapi

    WebApi过滤器1 public class TestController : ApiController { /// <summary> /// 获取用户信息 /// </sum ...

  4. 2019-11-29-git无法pull仓库refusing-to-merge-unrelated-histories

    title author date CreateTime categories git无法pull仓库refusing to merge unrelated histories lindexi 201 ...

  5. lilo - 安装引导装入程序

    总述 主要功能: ” /sbin/lilo” - 安装引导装入程序 辅助用途: ”/sbin/lilo –q” - 查询影射表 ”/sbin/lilo –R” - 设置下次启动的默认命令行 ”/sbi ...

  6. ansible获取远程机器上的ip地址

    问题: 想要使用ansible-playbook脚本创建一个以远程机器的IP命名的目录 错误的代码:# vim test.yml --- - hosts: all remote_user: root ...

  7. wordpress的固定链接问题

    在安装完wordpress后,按照其方法在/etc/apache2/sites-available/000-default.conf文件中添加了下述代码中的加重部分: [...] ServerAdmi ...

  8. SSH整合——登录模块

    1.导包——参照我的GitHub Hibernate hibernate/lib/required hibernate/lib/jpa 数据库驱动 Struts2 struts-blank.war/W ...

  9. python中英文翻译模块

    从一种语言到另一种语言的文本翻译在各种网站中越来越普遍. 帮助我们执行此操作的python包称为translate. 可以通过以下方式安装此软件包. 它提供主要语言的翻译. 官网:https://py ...

  10. Hive 中的 LEFT SEMI JOIN 与 JOIN ON

    hive 的 join 类型有好几种,其实都是把 MR 中的几种方式都封装实现了,其中 join on.left semi join 算是里边具有代表性,且使用频率较高的 join 方式. 1.联系 ...