美文网首页
Swift-Framework开发及使用(一)

Swift-Framework开发及使用(一)

作者: Charles_Zhang | 来源:发表于2018-10-26 15:18 被阅读0次

    在开发中我们常常会用到一些第三方 SDK 库,使用时只需将 framework 文件添加到项目中即可,十分方便。同样地,我们也可以创建自己的 framework 框架,用来封装一些常用的工具方法、框架类等。一来不会使源代码完全暴露在外,二来也便于代码复用。

    下面演示一个最基础framework的开发及使用

    一、framework的制作
    1. 新建一个工程,创建时选择 iOS->Framework & Library,如下图所示

      1
    2. 在“General”->“Deployment Info”里设置个较低的发布版本,设置好之后的文件目录如下图所示:


      2
    3. 之后我们在工程中创建一个测试类及一个测试方法,如下:

    import UIKit
    
    class MyTest: NSObject
    {
       class func sayHello()
       {
           print("Hello World")
       }
    }
    

    但是需要注意的是:对于那些需要暴露出来,即在框架外部也能访问使用的类、方便、变量前面需要加上关键字 Public。如果还允许 override 和继承的话,可以使用 open 关键字。所以修改后的代码如下:

    import UIKit
    
    public class MyTest: NSObject
    {
        public class func sayHello()
        {
            print("Hello World")
        }
    }
    
    1. 生成framework库文件
      1. 发布编译目标选择“Generic iOS Device”后,使用快捷键 command+B 或者点击菜单 Product > Build 进行编译。这时生成的是真机调试使用的 framework。
      2. 如果发布编译目标选择的是模拟器,那么编译出来的模拟器使用的 framework。
      3. 分别编译后我们可以选择 项目中的Products -> SDKDemoOne.framework 然后右键选择Show in Finder 即可进入所在文件夹,这是我们可以看到分别对应于 真机 和 模拟器的连个文件夹,里面各有一个.framework 文件。如下图所示:
        3

    二、framework的使用
    1. 引入framework

      1. 将生成的 SDKDemoOne.framework添加到项目中来。(注意:要根据你是使用真机调试还是模拟器调试选择对应的 framework)
      2. 接着在“General”->“Embedded Binaries”中把 SDKDemoOne.framework 添加进来。这两步完成之后的工程文件目录如下:
        4
    2. 使用
      由于之前定义的是一个类方法,所以我们在需要使用的地方直接调用该方法即可,如下所示

    import UIKit
    import SDKDemoOne
    
    
    class ViewController: UIViewController
    {
    
        
        override func viewDidLoad()
        {
            super.viewDidLoad()
    
            SDKTest.sayHello()
        }
     
    }
    

    如此,即完成了这个framework的调用


    三、常见问题
    1. 制作的Framework是动态库、还是静态库?
      1. framework 文件可以是动态库,也可以是静态库。创建 framework 的时候默认是 Dynamic Library(即动态库),像本文样例就是动态库。
      2. 如果要制作静态库,只需要编译 framework 时指定Build Settings-< Mach-O Type 为 Static Library
    2. 开发的sdk怎么同时支持模拟器和真机
      1. 首先我们先进入到真机和模拟器对应的静态库文件路径
      2. 打开终端:使用如下命令:
        lipo -create 模拟器文件路径/SDKDemoOne.framework/SDKDemoOne 真机文件路径/SDKDemoOne.framework/SDKDemoOne -output 输出路径/SDKDemoOne.framework
        即可得到在真机和模拟器下均可使用的静态库文件。

    相关文章

      网友评论

          本文标题:Swift-Framework开发及使用(一)

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