问题标签 [swift-package-manager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - Swift 包管理器(“Swift Build”)在 xcode 中编译得很好
当尝试通过包管理器安装模板时,它抱怨我的项目中的一些现有源文件导入模块 libxml2。
尽管该库已正确链接并且在 xcode 中可以正常编译。
有人可以解释我做错了什么吗?
下面是我的控制台输出
ios - Xcode:缺少必需的模块错误
我已经查看了类似问题的答案,但我仍然感到困惑。
背景
我有一个项目正在运行,但我正在尝试在 Xcode 8.3.1 中重新创建它。我首先使用带有一个依赖项的 Swift 包管理器:[.Package(url: " https://github.com/OpenKitten/MongoKitten.git ", majorVersion: 3)]。然后我按照我的笔记从 Cocoa 转换到 iOS(因为 SPM 不直接支持 iOS),这在以前的项目开始时工作:
- 制作启动 Package.swift 文件
- swift包生成-xcodeproj
- 在 Xcode 中打开项目
- 项目:构建设置:基础 SDK ==> 更改为 IOS
- 编辑器:添加目标:(iOS ...单视图应用程序)
- 选择您的项目,查看目标列表,找到您新添加的目标:常规:部署信息
- 在工具栏上,更改“活动方案”
一切似乎都很好,我的项目包括 MongoKitten 和它所依赖的一堆其他框架。其中之一称为“CLibreSSL”。我将所有框架作为目标添加到我新创建的目标中。
错误信息
我可以“导入 MongoKitten”到我的视图控制器中(使用自动完成功能)。但是,当我编译时,我收到此错误消息(即使我个人没有尝试导入 CLibreSSL):
我不能“导入 CLibreSSL”到我的视图控制器中(没有自动完成识别)。我注意到,当我转到与 MongoKitten 相关的源文件时,它们确实在其导入语句中成功识别了 CLibreSSL。我什至可以删除它们并通过成功的自动完成重新输入。
问题
我意识到当我像我一样创建一个新目标时,我可能需要做一些额外的事情,这可能与搜索路径有关,但我尝试了很多东西,结果没有改变。有人可以告诉我如何解决这个问题(并且请不要假设我有太多的知识,因为我觉得这些东西令人困惑)?
如果您需要更多信息,请告诉我。谢谢
swift - 如何使用 Swift 包管理器确定 Swift 代码中的配置
我正在使用 Swift 包管理器创建一个应用程序,我需要知道构建项目的配置,即Debug
或Release
. 我试图远离使用该.xcodeproj
文件。请有人让我知道这是否可能。我将在下面粘贴一个简单的示例,但只知道除了下面的代码之外是否还有更好的处理配置的方法,请作为答案提交。
例子:
swift3 - Swift Package Manager,添加本地依赖
在一个蒸汽项目中,我的文件夹结构如下:
在每个模块中添加 2 个模块后,我将 package.swift 文件编辑为以下内容:
导入 2 个本地模块工作正常,但是当我尝试使用其中包含的任何函数/对象时,我得到一个“未解决的标识符错误”
有什么我想念的吗?
swift - Swift 包管理器 - 如何使用它
我有一个项目,我想在我的应用程序中使用这个包。我用谷歌搜索并按照说明进行操作:
然后我打开package.swift
文件并更改为:
然后Terminal
:
然后我得到了这个错误:
错误:包的布局不受支持,发现意外的源文件:/Users/xuanxi/SGLMath/.build/checkouts/Math.git-9167533630816302265/Tests/EqualWithAccuracy.swift, /Users/xuanxi/SGLMath/.build /checkouts/Math.git-9167533630816302265/Tests/FunctionsTests.swift, /Users/xuanxi/SGLMath/.build/checkouts/Math.git-9167533630816302265/Tests/Matrix2x2Tests.swift, /Users/xuanxi/SGLMath/.build/checkouts /Math.git-9167533630816302265/Tests/Matrix3x3Tests.swift, /Users/xuanxi/SGLMath/.build/checkouts/Math.git-9167533630816302265/Tests/Matrix4x4Tests.swift, /Users/xuanxi/SGLMath/.build/checkouts/Math .git-9167533630816302265/Tests/SwizzleTests.swift, /Users/xuanxi/SGLMath/.build/checkouts/Math.git-9167533630816302265/Tests/Vector2Tests.swift, /Users/xuanxi/SGLMath/.build/checkouts/Math.git -9167533630816302265/Tests/Vector4Tests。迅速,/Users/xuanxi/SGLMath/.build/checkouts/Math.git-9167533630816302265/Tests/glmMatrixTests.swift
修复:在模块内移动文件
我该如何解决这个问题?
- 如果我想将此包添加到我现有的
Xcode
项目中怎么办?
swift - swift package generate-xcodeproj 后维护Xcode Run Script Phase
我的 Xcode 项目中有一个运行脚本阶段。在我通过 SPM 更新我的依赖项后,swift package update
我必须使用swift package generate-xcodeproj
.
如果不使用 rubygem、pod 规范或其他第 3 部分工具,我该如何维护该构建阶段?我可以以某种方式将运行脚本阶段添加到 xcconfig 文件吗?
swift - 项目之间的共享代码作为没有仓库的库?
我有两个 Swift PM 项目,它们都使用一些我想存储在单独项目中的通用代码,比如一个库,然后这两个可以导入。
我已经使用 swift init --type 库等来构建一个库,但是是否有任何其他记录方式可以将其包含在其他项目中,而无需将其提交到 github 并将 repo 的链接提供给 swift 包管理器?
我正在考虑构建库项目的思路,并有一个脚本将其复制粘贴到其他项目需要访问的地方(如果需要,可以在他们自己的目录中)
swift - 使用 Swift 包管理器时出错
我正在关注在 Swift 中使用 OpenGL 的本教程。它显然依赖于 GLFW 的一些 GitHub Repo,并使用 Package.swift 文件将其构建到您的可执行文件中。可悲的是,在运行指示的构建命令时,swift build -Xcc -I/usr/local/include -Xlinker -L/usr/local/lib
我收到以下错误:
错误:不再支持空清单文件。用于
swift package init
自动生成。
当我运行建议的 init 命令时,我得到:
错误:此目录中已存在清单文件
我应该怎么办?
c++ - 如何将 c++ 包装到 Objective-c 中并将其链接到 swift 包?
希望可以有人帮帮我。我正在尝试为 Swift 包管理器构建 swift 包。我想在其中包含一些 C++ 源代码,并利用 OOP 的所有优点对其进行操作。所以我创建了新包并添加了三个模块:一个用于在包中快速执行(“swift-exec”),第二个用于我的 c++ lib(“cppLib”),第三个用于 c++ lib(“cwrapper”)的objective-c包装器.
包装说明:
我的 C++ 库:
cpplib.cpp:
cpplib.h:
我的包装:
包装器.h
包装器。毫米
我的迅速执行:
main.swift :
当我在 Xcode 中构建我的项目时,我没有错误,我的项目成功构建、链接和运行。但是当我尝试使用命令“ swift build ”构建包时,出现错误:
所以我的问题是:有可能做我想做的事吗?将 c++ 包装到 objc 并将其链接到 swift 包?
如果是,我做错了什么?
更新:经过一些研究,我发现当 Xcode 尝试链接 .mm 文件时,它使用命令
但是当我尝试在控制台中执行此操作时,“swift build”会使用它:
swift - 用于开发的 Swift 包管理器
问题:有没有办法用 SPM 创建一个“开发包”,类似于可可豆荚中的开发豆荚,让我可以更改依赖包的实际源项目(本地路径)?
背景:我正在做一个需要分成三个独立项目的项目。其中一个项目由另外两个共享(在本例中为数据模型,由服务器和客户端共享)。对于客户端,因为它使用 uikit,所以我有一个开发 cocoa pod 设置,让我可以在客户端工作区中工作,对数据模型项目进行编辑,然后立即编译和运行。然后将我对数据模型的更改保存在数据模型项目中。
但是,对于服务器,由于它完全是用 SPM 构建的,如果我想对数据模型项目进行编辑(我想反映给客户端),我目前必须在数据模型项目中进行,然后用新的次要版本号重新标记它,清理服务器项目并重建。我很想像使用可可豆一样进行设置。
如果我不能这样做,是否至少有一种方法可以告诉 SPM 仅将我的一个依赖项更新为新版本号(或 Package.swift 中指定的最大版本。即 0.4 的次要版本,所以如果我从 .401 重新标记到 .402 它会更新)?我原以为我可以在 Package.pins 中做到这一点,但这似乎不起作用。如果编辑它不会影响实际更改,不知道为什么它不是隐藏文件。