美文网首页
iOS 封装SDK

iOS 封装SDK

作者: 大码猴 | 来源:发表于2016-06-28 12:13 被阅读14次

人家写的比我自己的好太多

http://www.cocoachina.com/ios/20150127/11022.html

由于最近公司需要出一个SDK的产品,所以就学习并总结了这篇简书

环境:xcode 7.2

下面我们开始操作:

创建一个静态库工程

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

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

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

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

任意创建一个View

勾选以下三个选项:

然后点击 Finish 进入工程:

如果导入的View需要导入Xcode的静态库,请在Build Phases的Link Binary With Libraries 中添加

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

另外如果你想多暴露几个.h文件,而不像我这样只暴露一个.h,那么:

你也可以选择需要暴露的.h文件,我看各微博中的方式都是在Edit中选择构建Header,我用的是Xcode7.2未在Edit中发现他们说的方式,但是在Build Phases中有个+号可直接构建:

点击+号按钮,选择New Header Phases:

之后就会看到“Public”、“Private”、“Project”

“Public”表示公开的,保任何使用你的库的用户均可以获取该头文件。

“Private”表示私有的,不多做解释

“Project”如果你希望使用你静态库的用户能够获取到你所提供的类里的内容,那么你需要把.h导入到该位置。

总的来讲Public是你期望的,Private下的头文件依然是可以暴露出来的,因此名字可能有些误导。讽刺的是,在Project下的头文件对你的工程来说才是“私有”的,因此,你将会更多地希望你的头文件或者在Public下,或者在Project下。

接下来就生成静态库

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

首先,构建真机的静态库,如图选择运行设备为真机,command+B构建一下,这是发现libMyFrameworksTest.a文字变成了黑色(之前为红色)

然后选中libMyFrameworksTest.a右键show in Finder发现.a已经生成,之后就可以使用.a和.h文件导入别的工程,并使用之前在.a中构建的View方法了。

注意:此方法生成的.a+.h文件只能在真机上使用。

生成模拟器上使用的.a文件:

改成模拟器 构建构成command + B。

这里需要说明一下,如果你在这个步骤之前先生成了真机上的.a文件,那么你执行这个步骤之后生成的为黑色可直接使用的.a文件;如果你直接使用的模拟器构建.a文件,那么有时候即使你构建成功也会发现.a文件仍为红色,并且无法找到该文件的目录。这个我也不知道为什么,应该是Xcode本身逻辑导致的,所以我建议先构建真机上的.a文件。

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

如果你在真机上使用就会收到错误(由于比较懒,复制别人的图片):

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

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

lipo-create

/Users/ObjectPLA/Library/Developer/Xcode/DerivedData/MyFrameworksTest-gjmfufrwwxxwbpbigyezzbclphzv/Build/Products/Debug-iphoneos/libMyFrameworksTest.a

/Users/ObjectPLA/Library/Developer/Xcode/DerivedData/MyFrameworksTest-gjmfufrwwxxwbpbigyezzbclphzv/Build/Products/Debug-iphonesimulator/libMyFrameworksTest.a

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

说明:

千万不要直接复制粘贴到终端中运行!!!!!

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

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

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

最后拿到的libMyFrameworksTest.a 就哪里都可以用了!

相关文章

  • iOS开发之App间账号共享与SDK封装

    iOS开发之App间账号共享与SDK封装 iOS开发之App间账号共享与SDK封装

  • iOS开发:iOS SDK 从开发到发布

    iOS SDK 从开发到发布 最近在做封装 SDK(Framework) 的工作,本篇文章将记录 iOS SDK ...

  • 【潮汐-framework真机模拟器合并】iOS开发:iOS S

    iOS SDK 从开发到发布 最近在做封装 SDK(Framework) 的工作,本篇文章将记录 iOS SDK ...

  • 文章收集

    关于视图的周期流程一篇文章揭秘 iOS 布局相关问题 封装SDK流程iOS 自己封装的SDK 打包与合并,新手教程...

  • iOS封装framework小结

    1.封装SDK Flies -> New -> Project -> iOS -> Framework & Lib...

  • iOS封装SDK生成framework

    公司项目需求引入银行卡支付,并封装成SDK,看iOS封装SDK(分别生成.a和framework) - 简书这篇文...

  • iOS 封装SDK

    这篇教程的主要目的是解释怎么样在你的iOS工程中创建并使用一个SDK,俗称.a文件。所以,不像其他网站上的教程只说...

  • iOS 封装SDK

    人家写的比我自己的好太多 http://www.cocoachina.com/ios/20150127/11022...

  • iOS 封装SDK

    背景 因为老大让封装sdk,看了几天的博客,水了几个群,最后大牛们告知如何选择。(如果写的有错,望大牛指正QAQ)...

  • iOS 封装SDK

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

网友评论

      本文标题:iOS 封装SDK

      本文链接:https://www.haomeiwen.com/subject/qprtjttx.html