Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SwiftPM创建Cocoa GUI应用程序_Swift_Macos_Swift Package Manager - Fatal编程技术网

如何使用SwiftPM创建Cocoa GUI应用程序

如何使用SwiftPM创建Cocoa GUI应用程序,swift,macos,swift-package-manager,Swift,Macos,Swift Package Manager,我想将我的代码库拆分成一个库,然后上传到github和一个GUI应用程序。我希望使用最近推出的SwiftPM是一个好主意 但我能找到的所有示例都显示了使用swiftpackage init--type executable创建控制台应用程序 我想知道如何为macOS Cocoa应用程序创建一个包含所有预生成内容(如资产、情节提要等)的框架 能接触到以下有用的东西将是非常棒的: swift package build swift package test swift package update

我想将我的代码库拆分成一个库,然后上传到github和一个GUI应用程序。我希望使用最近推出的SwiftPM是一个好主意

但我能找到的所有示例都显示了使用
swiftpackage init--type executable创建控制台应用程序

我想知道如何为macOS Cocoa应用程序创建一个包含所有预生成内容(如资产、情节提要等)的框架

能接触到以下有用的东西将是非常棒的:

swift package build
swift package test
swift package update
...
有什么想法吗


谢谢大家!

这是我使用SPM创建cocoa应用程序的工作解决方案

  • 创建应用程序的可执行版本:
    swift package init--键入executable
  • 将您的包裹包括在
    包裹中。swift
  • 更新/获取它们:
    swift package Update
    swift package fetch
  • 创建.xcodeproj:
    swift包生成xcodeproj
  • 用Xcode打开.xcodeproj;您将看到它是一个控制台应用程序
  • 构建您的解决方案(此构建将创建依赖项:。框架,在“产品”下)
  • 单击项目名称以查看目标
  • 按列表下方的
    +
    按钮添加新目标,并创建cocoa/gui应用程序
  • 添加应用程序后,单击目标列表上的应用程序名称
  • 常规
    选项卡下,找到
    嵌入式二进制文件
    部分
  • +
    添加二进制文件,然后选择引用的库
  • 使用你的cocoa应用程序
  • 构建时,.frameworks将嵌入到.app中

  • 如果您更新您的
    软件包.swift
    ,除了创建新目标外,您应该重复上述步骤;您只需将其添加到项目中。

    谢谢您的回答!一处更正:“swift init--类型可执行文件”->“swift package init--类型可执行文件”。还有一个问题:如果您将包添加到“package.swift”并执行“swift package generate xcodeproj”,整个项目将被重新生成,cocoa/gui应用程序将从目标列表中消失。如何在不从目标中删除gui应用程序的情况下向“package.swift”添加新包?您好。这是不容易的。备份你的应用程序;生成xcodeproj;再次添加目标;替换代码。不幸的是,SPM+Xcode的使用是有限的。SPM可执行+Xcode解决方案是一种变通方法。SPM+Xcode Cocoa应用程序是解决方案的解决方案。@Andrew创建一个单独的项目(OSX或iOS)并将SPM生成的项目作为子项目引用。SPM生成的项目框架目标必须稍微手动修改(搜索路径…等)。通过这种方式,我使用SPM和OSX构建CLI,并使用Xcode构建iOS应用程序。接下来更新我的包只意味着对SPM生成的项目进行轻微修改。这并不理想,但对我来说很有效。对于iOS应用程序,有必要将frameworks SDK更改为iOS SDK,否则,您将在归档应用程序时遇到问题(OSX SDK不支持位码)。请您详细解释一下,如果我更新了
    软件包,该怎么办。swift
    对我来说似乎不起作用。如果我再次运行
    swift package generate xcodeproj
    ,则更新的模块不会添加到dependencies文件夹中。另外,在第二次运行此命令后,我的Xcode项目中的文件夹也会变为蓝色。@p0fi您是否记得在更新package.swift后但在运行
    swift package generate xcodeproj
    之前运行
    swift package resolve