• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Swift-Framework开发及使用(一)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

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

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


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

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 文件。如下图所示:

二、framework的使用
  1. 引入framework
    1. 将生成的 SDKDemoOne.framework添加到项目中来。(注意:要根据你是使用真机调试还是模拟器调试选择对应的 framework)
    2. 接着在“General”->“Embedded Binaries”中把 SDKDemoOne.framework 添加进来。这两步完成之后的工程文件目录如下:
  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
      即可得到在真机和模拟器下均可使用的静态库文件。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift iOS 8调用系统相机的拍照发布时间:2022-07-13
下一篇:
swift UI专项训练28 DatePicker日期老虎机发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap