我试图在我的Xcode项目中添加对本地swift包的依赖。 (我不想使用文件URL file://me/dev/app/package
添加依赖项,因为它不能与其他环境共享)
我试图将包拖放到目标。这将创建对项目中程序包的引用,我可以在“使用库链接二进制文件”构建阶段中添加该程序包,但是仍然找不到该库。
No such module 'Analytics'
我的原始配置
拖放后
这是我的软件包配置:
// swift-tools-version:5.1
import PackageDescription
let package = Package(
name: "Analytics",
products: [
.library(name: "Analytics", targets: ["Analytics"]),
],
dependencies: [
.package(path: "../SomeOtherPackage"),
],
targets: [
.target(name: "Analytics", dependencies: [
"SomeOtherPackage",
]),
]
)
我还将该软件包包含在目标链接的二进制文件和/或捆绑资源和/或编译的源中,无济于事:
我读过this long discussion,这似乎不是结论性的。
以下是我正在尝试的简单示例:https://github.com/gsabran/SPM_Xcode_test
答案 0 :(得分:3)
这实际上是我的工作,并且可以正常工作... Xcode 11.2
I。准备包裹
文件>新建> Swift软件包>选择空文件夹(或创建新文件夹)>输入库名称(MyLibrary)
在项目中找到MyLibrary.swift并设置公共结构和变量,因此在应用程序中使用了一些导出功能(我将静态常量和固定UT制成)
构建>确定>关闭项目
II。准备项目
文件>新建>项目> iOS> Single View App>输入名称(MyApp)>下一步>选择与上述相同的文件夹(默认情况下)>创建
构建>确定
从Finder中,将MyLibrary文件夹拖到Xcode Project Navigator中项目名称的正下方
构建>确定
在项目导航器中单击MyApp项目图标>选择MyApp应用程序目标>框架,库,…单击+>在最上方的工作区部分中,选择MyLibrary>添加
清洁>构建>确定
打开ContentView.swift>键入import MyLibrary
(自动补全已经看到了)
用“((MyLibrary.text)””代替“ Hello,World”
构建并运行>确定
就这样。
要验证使用的相对路径,请在TextEdit中打开project.pbxproj,这是屏幕截图
更新:
Note1 -我考虑过在清理后解决程序包延迟问题,因此在一段时间内(此处1-2分钟),Build完全失败,并报告了错误,但是在该延迟之后,该索引可见重新启动,并且构建成功。
Note2 -在图(MyApp> MyLibrary> AnotherLibrary)中添加第二个从属程序包是相同的。