无法使用Xcode 11程序包管理器在Swift程序包中包含C文件

时间:2019-09-27 21:01:11

标签: c swift xcode package bridging-header

我用Xcode 11.0创建了一个Swift 5.1应用程序,其中包含c文件和h文件。 Xcode自动生成一个桥接头。 我输入了必要的#imports。 该项目将编译并按预期运行。 现在我想创建一个Swift软件包,其中包含c文件和头文件,bridged-header文件和一个Swift文件,该文件是c函数的包装。 我是通过以下方式完成的。

  1. 我打开了文件->新建-> Swift包
  2. 我填写了包裹的名称字段以及add to:和group:字段
  3. 现在,Package.swift出现在项目中了。
  4. 我将Swift文件从项目文件夹移到Package.swift / Sources / packageName文件夹中。
  5. 仅出于测试原因,我切换到target / General窗口并按下Frameworks,Library和嵌入式Content的+按钮。
  6. 在出现的框架列表中,可以按预期找到程序包的名称。
  7. 我取消了窗口,然后返回以将单个c文件移动到package文件夹中。
  8. 然后我回到目标/常规窗口并再次按下+按钮,现在列表中没有包含我的软件包名称

在我看来,将c文件包含到Swift软件包中需要其他一些步骤。 我搜索了文档,但找不到提示。

1 个答案:

答案 0 :(得分:0)

不知道为什么要拒​​绝这样做。似乎是一个合法的问题。基本上,您目前不能在同一软件包中混合使用C和Swift源。

但是,您可以有一个包含所有C文件的目标,然后有一个包含Swift文件但取决于C文件目标的目标。

还可以进一步阅读一般用法...从您的问题中看来,您似乎缺少许多中间步骤。如果我是您,我将尝试获取一个仅使用C文件的简单示例,然后继续添加依赖于此的Swift目标。