iOS 封装SDK

这篇教程的主要目的是解释怎么样在你的iOS工程中创建并使用一个SDK,俗称.a文件。所以,不像其他网站上的教程只说一点比较吊的东西(就是我们这些新手看不懂的东西,这篇教程将只使用一小部分Objective-C代码,本文主要讲解从开始到应用的详细步骤。

环境:xcode 7.3(网上的demo大多数都是老版本的,发现很多东西跟现在的不一样)

下面我们开始操作:

创建一个静态库工程

打开Xcode,点击File\New\Project,选择iOS\Framework and Library\Cocoa Touch Static Library新建一个静态库工程.

将工程命名为GGTestSDK,然后将工程保存到一个空目录下。

一个静态库工程由头文件和实现文件组成,这些文件将被编译为库本身。

当创建静态库工程时,Xcode会自动添加GGTestSDK.h和GGTestSDK.m。你不需要实现文件,因此右键单击GGTestSDK.m选择delete,将它删除到废纸篓中。

创建一个AlertView控件

其实当前的工程就已经可以用了了,是时候为你的库添加一些功能了。由于本篇教程的关键在于教你怎么样创建一个GGTestSDK.a,而不是怎么样构建一个UI控件,这里你可以使用你自己封装好的控件。将你的控件从Finder中拖到Xcode下GGTestSDK目录下。

这里有一点要注意了,这里一定要勾选以下三个选项:

然后点击  Finish  进入工程:

对你的控件的头文件需要做的另一件事是将其添加到库的主头文件GGTestSDK.h中。在这个主头文件的帮助下,开发者使用你的库仅仅需要导入一个头文件,如下面的代码一样,而不是自己去选择自己需要的一块导入。

接下来就生成静态库

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

首先,构建模拟器的静态库,如图

然后show
in Finder

之后我拿到这个.a文件
还有和他相关的所有.h文件,存放在一个新的文件夹里(随便起名越吊越好。我的是:mySDK(我还不想辞职))如下

现在呢,你就可以拿着这个文件夹去挥霍了。将他拖到你要应用了工程中

你以为这样就完事了吗。哼哼,我就知道瞒不住你们,上面已经提到了,只能在模拟器上运行,如果我们链接手机:

我滴天,这都是什么鬼?可怕的报错信息又来了。其实没什么,对于这些报错信息,不要慌,他都是有关键点的,这个不多说了,有点跑题。上文说了这是由于我们生成.a文件的时候,是生成的模拟器版本的,想要在手机上用就要生成手机版本的,那么手机版本的怎生成呢?(我都不好意思说了)看图吧,别打我就行。

改成Device
构建构成(command + B)你就会发现 libGGTestSDK.a  变黑了。

重复之前的步骤
 就可以在手机上运行了(但是,模拟器又不能用了。。。。)

接下来,我们就来生成一个双方都能用的libGGTestSDK.a

首先,打开终端,复制以下命令

lipo -create

/Users/ObjectPLA/Library/Developer/Xcode/DerivedData/GGTestSDK-gjmfufrwwxxwbpbigyezzbclphzv/Build/Products/Debug-iphoneos/libGGTestSDK.a

/Users/ObjectPLA/Library/Developer/Xcode/DerivedData/GGTestSDK-gjmfufrwwxxwbpbigyezzbclphzv/Build/Products/Debug-iphonesimulator/libGGTestSDK.a

-output /Users/ObjectPLA/Desktop/libGGTestSDK.a

说明:

绿色:是你手机模式下可用的libGGTestSDK.a

红色:是你模拟器下可用的libGGTestSDK.a

蓝色:是最后生成双方都可用的libGGTestSDK.a
 --并存在在桌面

最后拿到的 libGGTestSDK.a 就哪里都可以用了!有不对的地方还望各位多多指正,大家相互沟通交流。

时间: 2024-10-01 00:29:06

iOS 封装SDK的相关文章

unity 引入 ios 第三方sdk

原地址:http://blog.csdn.net/u012085988/article/details/17785023 unity开发中ios应用时,要想成功引入第三方sdk,首先得知道c#与object-c如何交互.这里有篇博文介绍了unity开发中,如何实现c#与oject-c互相调用. http://blog.csdn.net/u012085988/article/details/17761433 下面介绍下unity开发ios应用中,引入第三方sdk的流程: 1.将sdk中要用到的接口

cocos2d-x + Lua接入iOS原生SDK的实现方案[转]

相信很多朋友在使用cocos2d-x+lua开发游戏时都遇到过接入iOS原生SDK的问题,比如常见的接应用内支付SDK,广告SDK或是一些社交平台SDK等等,我也没少接过这类SDK.这篇文章主要是对我做过项目中接入iOS原生SDK实现方案的一个总结,在这里分享给大家,希望对自己和大家的开发工作都有帮助. 在展开正文之前,先做几点说明: 1.我这里说的iOS原生SDK是指那些完全用Objective-C语言开发,为原生iOS程序设计的SDK.swift很好很强大,不过我还没用过,惭愧,不过语言终归

开发者所需要知道的 iOS 10 SDK 新特性

转自:https://onevcat.com/2016/06/ios-10-sdk/ 写的很好啊.哈哈哈 总览 距离 iPhone 横空出世已经过去了 9 个年头,iOS 的版本号也跨入了两位数.在我们回顾过去四五年 iOS 系统的发展的时候,不免感叹变化速度之快,迭代周期之短.iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 里的分屏多任务特性等等.Apple 近年都是在 WWDC 发布新的系统和软件,然后

[原创]cocos2d-x + Lua接入iOS原生SDK的实现方案

相信很多朋友在使用cocos2d-x+lua开发游戏时都遇到过接入iOS原生SDK的问题,比如常见的接应用内支付SDK,广告SDK或是一些社交平台SDK等等,我也没少接过这类SDK.这篇文章主要是对我做过项目中接入iOS原生SDK实现方案的一个总结,在这里分享给大家,希望对自己和大家的开发工作都有帮助. 在展开正文之前,先做几点说明: 1.我这里说的iOS原生SDK是指那些完全用Objective-C语言开发,为原生iOS程序设计的SDK.swift很好很强大,不过我还没用过,惭愧,不过语言终归

IOS Vuforia SDK学习笔记

最近可能工作会用到关于AR方面的东西 所以找了一下有名气的AR库 发现2个:Metaio和Vuforia 先说说Metaio 我看了看网上的反应 好像这个库反响不错 用的人蛮多的.但是悲催的是 我7月1号去看的时候已经无法注册新用户了.没办法用 因为它被苹果收购了,也不知道该高兴还是该忧伤  好像目前是没办法用了.只好找了别的,比如:Vuforia Vuforia是个啥? Vuforia™是Qualcomm Connected Experiences, Inc.的产品.它是一款针对移动设备开发增

iOS 9 sdk bitcode

今天试着用Xcode 7 beta 3在真机(iOS 8.3)上运行一下我们的工程,结果发现工程编译不过.看了下问题,报的是以下错误: 1 ld: '/Users /**/ Framework/SDKs/PolymerPay/Library/mobStat/lib**SDK.a(**ForSDK.o)' does not contain bitcode. You must rebuild it  with  bitcode enabled (Xcode setting ENABLE_BITCOD

苹果要求所有新app以及版本更新必须支持iOS 8 SDK和64-bit

2014年10月20日,苹果官方发布了一则新闻,新闻内容如下: Starting February 1, 2015, new iOS apps uploaded to the App Store must include 64-bit support and be built with the iOS 8 SDK, included in Xcode 6 or later. To enable 64-bit in your project, we recommend using the defa

iOS封装自己的类

ios中ASIHTTPRequst的封装 ios - 对AFNetWorking库的进一步封装 [iOS]封装单例类 ios 封装sqllite3接口 ios中封装网络请求类 ios中封装网络和tableview的综合运用 ios iphone编程中使用封装的NSLog来打印调试信息

iOS Base SDK & Deployment Target 区别&设置

今天突然出了个小毛病,deployment target 的版本 > base sdk 的版本, 处警告了,,,看了下资料 Xcode为开发者提供了两个可配置的设置:第一个是Base SDK,第二个是iOS的Deployment Target.通过配置这两个参数可定制应用的功能以及可运行的设备和操作系统版本. 打开配置界面的操作如下: 选择程序的工程文件. 选中工程文件的-Build Settings-选项,直接搜索-Base SDK-和-Deployment Target-就行,找挺麻烦的比较