iOS工程 SDK的创建、使用

ONE SDK的设计总体分为3层: 平台层-Platfrom layer,适配层-Porting layer,核心层-Common layer。

我们所使用的是 平台层-Platfrom layer。一般为了针对不同平台提供给开发者,和平台一致API规范,使各平台的开发者无难度的集成SDK,例如我们会提供Java给Android,Objective-C 给IOS和MAC, C++ 给Linux、 IOT平台



在OS X上,可能会创建一个动态连接(Dynamically Linked)的framework。通过动态连接,framework可以更新,不需要应用重新连接。在运行时,库中代码的一份拷贝被分享出来,整个工程都可以使用它,因此,这样减少了内存消耗,提高了系统的性能。
这是一个功能强大的特性。

iOS工程中的SDK,俗称.a文件。创建、使用一个SDK。

环境:Xcode Version 8.1 (8T61a) (网上的demo大多数都是老版本的)


操作:

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

    iOS工程 SDK的创建、使用_第1张图片
    创建静态库工程

    将工程命名为StaticFrameBlueTooth(自己需要蓝牙功能,起了个蓝牙名字。如果想高逼格:那就 (名字拼音)XXXBlueToothSDK),然后将工程保存到一个空目录下。

    iOS工程 SDK的创建、使用_第2张图片
    工程名

    一个静态库工程由头文件和实现文件组成,这些文件将被编译为库本身。
    当创建静态库工程时,Xcode会自动添加libStaticFrameBlueTooth.h和libStaticFrameBlueTooth.m。因为不需要实现文件,右键单击libStaticFrameBlueTooth.m选择delete,将它删除。


    iOS工程 SDK的创建、使用_第3张图片
    删除 .m文件


  • 2.其实当前的工程已经可以使用了,但是你的库还是需要添加一些功能吧??? 创建一个StaticFrameBlueTooth.a,可以使用你自己封装好的控件。将你的控件从Finder中拖到Xcode下StaticFrameBlueTooth目录下。(objc文件夹也是拖进去的,不是创建工程的时候 配送的!!!!注意一下!!!!)

    iOS工程 SDK的创建、使用_第4张图片
    拖入控件

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

    iOS工程 SDK的创建、使用_第5张图片
    必须Add to target


  • 3.点击 Finish 进入工程里面:

    iOS工程 SDK的创建、使用_第6张图片
    工程 内部

    Compile Source为编译期间使用,而Headers文件仅仅提供一个接口!
    将你的控件的头文件 添加到 库的主头文件StaticFrameBlueTooth.h中。在主头文件的帮助下,开发者使用你的库仅仅需要导入一个头文件,如下面的代码一样,自己去选择自己需要的一块导入。

    其实头文件 也可以 自己创建Headers栏,再在里面按自己需求添加Public(公用)、Private(私有)、Project(工程)各自所需的头文件。但是条例一点要清晰,架构性要明确!

    iOS工程 SDK的创建、使用_第7张图片
    把需要的头文件导入


  • 4.接下来就生成静态库

    • 4.1静态库分为手机和模拟器两种(手机端的只有手机能调用,模拟器的只有模拟器能调用)。
      首先,构建模拟器的静态库,如图:
      iOS工程 SDK的创建、使用_第8张图片
      模拟器 调用的静态库


      iOS工程 SDK的创建、使用_第9张图片
      真机 调用的静态库

      构建工程(command + B), 你就会发现 libStaticFrameBlueTooth.a 变黑了。
    iOS工程 SDK的创建、使用_第10张图片
    生成静态库 成功 文件字体变黑
    • 4.2然后show in Finder


      iOS工程 SDK的创建、使用_第11张图片
      获取静态库( .a文件)
iOS工程 SDK的创建、使用_第12张图片
真机与模拟器 调用的静态库


    • 4.3之后我拿到这个.a文件 、StaticFrameBlueTooth.h文件 和 他相关的所有.h文件,存放在一个新的文件夹里(起名就随便啦!! )如下:
    iOS工程 SDK的创建、使用_第13张图片
    自己的SDK文件夹



  • 5.将他拖到你要应用的工程中,就可以去挥霍了。

    iOS工程 SDK的创建、使用_第14张图片
    导入SDK文件





如果已经知道、了解 了导入对应头文件,即可以使用里面的三方库或自己定制的控件了。就无需了解我的Demo示例了!可以直接跳过 “运行效果”图片 的介绍。直接看最后提到的真机、模拟器通用的SDK 静态库介绍!


最终运行效果:
iOS工程 SDK的创建、使用_第15张图片
运行效果

放上美女,是为了美观一点!
别分心了!看segment!我讲解一下这个多段选择器!
控件是一个长度不固定,但至少是屏幕宽度(展示50个时间点:5的倍数)。传入时间数组,即可自动生成一个长度适应的 多段选择器。当然宽度超过屏幕宽度。就需要放在UIScrollView里面了!
因为设置了他的frame (20,200,105,30)。其宽度是不为显示的时间总长 (⭐️背景色⭐️即是最好的应证)。超过控件宽度的地方不能响应⭐️点击事件⭐️也是一个应证!!





通用静态库

上面已经提到了,模拟器调试得到的静态库只能在模拟器上运行,如果使用真机必须选择使用真机可调用的静态库文件(.a文件)。
接下来,我们就来生成一个双方都能用的libStaticFrameBlueTooth.a

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

lipo-create
/Users/个人PC/Library/Developer/Xcode/DerivedData/StaticFrameBlueTooth-adahgwpnjulylkcjpaomvnxafgmq/Build/Products/Debug-iphoneos/libStaticFrameBlueTooth.a

/Users/个人PC/Library/Developer/Xcode/DerivedData/StaticFrameBlueTooth-adahgwpnjulylkcjpaomvnxafgmq/Build/Products/Debug-iphonesimulator/libStaticFrameBlueTooth.a



说明:

绿色:是你手机模式下可用的libStaticFrameBlueTooth.a
红色:是你模拟器下可用的libStaticFrameBlueTooth.a
蓝色:是最后生成双方都可用的libStaticFrameBlueTooth.a --并存在在桌面。最后拿
     到的libStaticFrameBlueTooth.a 就哪里都可以用了!














goyohol's essay

你可能感兴趣的:(iOS工程 SDK的创建、使用)