无法使用swift 4.1创建自定义框架

时间:2018-04-19 12:21:10

标签: ios swift xcode9.3 swift-framework

我一直在尝试解决this问题。所以我想在swift 4.1上创建一个新的简单新框架。

我的代码是:

public class TestStupidity: NSObject {
    public static var shared = TestStupidity()
    public func hello() {
        print("hello")
    }
}

然而,即使这一小段代码也不适合我。公共类及其变量不会显示在头文件中。

我已在link上的GitHub上传了这个项目。

任何人都可以帮我弄清楚我在这里做错了什么吗?

2 个答案:

答案 0 :(得分:0)

  1. 使用open关键字:可以访问open类 在定义模块之外的 subclassable 。开放类成员可在定义模块外部访问和覆盖。还要添加@objcMembers

    @objcMembers open class ARCompactDeviceInfo:NSObject {}

  2. 转到目标 - >构建阶段 - >标题公开中添加Umbrella Header文件(具有相同项目名称的文件)文件 如图所示。就像在我的项目中我一样,CryptoAPI.h和其他隐藏的文件 Example of Swift 4 Frameworkenter image description here

  3. 转到目标 - >一般 - >嵌入式二进制文件拖动框架。 enter image description here
  4. <强>编辑: @Amogh Shettigar:在添加了上述详细信息后,我已经下载了您的项目并集成了Sample App。 框架和集成应用程序Here is URL

答案 1 :(得分:0)

按照以下步骤操作,看看它的工作正常:

创建Cocoa Touch Framework类型的新项目,将其命名为Tester

添加名为TestStupidity.swift的新Swift文件

将问题中的代码添加到文件中:

public class TestStupidity: NSObject {
    public static var shared = TestStupidity()
    public func hello() {
        print("hello")
    }
}

将新目标添加到Single View App类型的项目中,并将其命名为TesterApp

选择TestApp目标,然后在“常规”选项卡中,单击“嵌入式二进制文件的+号”。选择Tester框架

在ViewController.swift文件中,将代码设置为:

import UIKit
import Tester

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let testClass = TestStupidity()
        testClass.hello()
    }
}

运行TestApp并查看&#34; hello&#34;在输出中。