jos*_*shd 8 swift-package-manager
我希望包含一个带有自定义控件的 Swift 包的演示应用程序,该包显示每个控件的实现演示。有没有办法可以将其包含在 Swift 包中(并且还可以通过这种方式直接在包内开发/测试控件)?
tos*_*pig 38
以下是在 Xcode 13/14/15-beta 上对我有用的步骤:
MyLibraryMyLibraryDemo在包目录中创建一个新的项目应用程序打开项目的.xcodeproj文件
转到PROJECT> MyLibraryDemo>Package Dependencies并按“加号”符号
Add Local并选择包含您的软件包的目录TARGET,然后按“添加”GeneralFrameworks, Libraries and Embeded ContentMyLibrary包导入到示例应用程序中,并从演示项目中编辑/更新包。一些注意事项:
如果您的包/演示有其他依赖项,并且这些其他依赖项已更新,您可能必须DerivedData在更新之前清除
您可能还需要关闭并重新打开 Xcode,特别是如果您更新了依赖项,但它仍然显示“找不到包MyLibrary”
The best approach is to use "Xcode workspace". How does it work?
1. Create your artifacts
Create a directory.
Create an Xcode workspace inside there (Xcode: File: New: Workspace). Then create your library (package), and create your app (whatever type) inside the same directory.
In this step, just place the package and the app in the above directory, and close them immediately.
It should look like this.
2. Link your artifacts
Open your .xcworkspace file.
In the left bottom corner, click "+" sign.
Select "Add files to your_workspace_name", then:
a) for the Demo app
Navigate to the app's directory, select Your_app.xcodeproj and hit Add.
b) for the package
Navigate to the package's directory, and select the package directory only. Before hitting Add button, make sure "Create folder references for any added folders" is selected.
Your entire workspace should look like this now. You can immediately import the library inside your app and you are ready to go.
什么样的应用程序?SwiftPM 仅直接支持 macOS/Linux 可执行文件。
如果你想要一个 iOS/tvOS/watchOS,你需要一个 Xcode 项目,它使用相对路径链接来找到你的包。这是通过创建示例应用程序并将包的包含目录拖到 Xcode 项目中来完成的。然后您可以链接库。如果您将此示例应用程序与包一起放在 repo 中,那么它将与克隆该包的任何人一起分发。
我自己在执行此操作时注意到的一件重要事情(这几乎肯定是 Xcode 中的一个错误)是Package.swift和Example.xcodeproj不能在同一目录中。您必须将 Xcode 项目嵌套到另一个目录中,否则很多时候构建/链接都会出现问题。因此,如果您在使用我的建议时遇到任何问题,也可以尝试使用此创可贴。
我已经创建了GitHub上的例子在这里,对于Xcode的11.3作品。
| 归档时间: |
|
| 查看次数: |
1261 次 |
| 最近记录: |