gpt4 book ai didi

ios - Xcode 中两个目标中的 swift 包导致重复符号

转载 作者:行者123 更新时间:2023-11-28 13:27:36 26 4
gpt4 key购买 nike

我的项目中有两个框架,每个框架都依赖于同一个 Swift 包(在本例中为 RxSwift,但我认为这并不重要)。

为了构建项目,我必须在两个目标中包含相同的包(通过目标的常规设置中的“框架和库”列表)——否则当我尝试导入包时它找不到

当我运行我的应用程序时,我在控制台中看到如下警告:

objc[79287]: Class _TtC9Alamofire18UploadTaskDelegate is implemented in both

/Users/deanWombourne/Desktop/PackageManagerTest/DerivedData/PackageManagerTest/
Build/Products/Debug-iphonesimulator/Framework1.framework/Framework1 (0x110877e00)

and

/Users/deanWombourne/Library/Developer/CoreSimulator/Devices/2319A320-1A01-4784-B85E-272FF0F999CB/
data/Containers/Bundle/Application/D40DE3EA-DD78-4241-B307-070CDAF8BFA1/PackageManagerTest.app/PackageManagerTest (0x10f9858c8).

One of the two will be used. Which one is undefined.

有时,应用程序会在重复的包中崩溃。

我已经通过构建一个没有重复包问题的版本(将所有代码复制/粘贴到同一个目标!)来测试该应用程序,然后它运行正常,所以这与重复包问题有关。

那么,我的问题是什么?

在 Xcode 中有什么方法可以指定单个包将包含在两个目标中,而不是将它复制两次到可执行文件中?

理想情况下,我希望将它指定为某种动态库,这样它就不会被嵌入到可执行文件中,而是按需加载 - 但此时欢迎任何解决方案!


编辑

如果我只有一个框架但它与主要应用程序目标共享 RxSwift 包依赖项,我也会遇到此问题。

最佳答案

我如何解决 RxSwift 包的 XCode 11 中的问题:

  1. 将 RxSwift 包添加为项目的依赖项(您可能已经这样做了)

  2. 创建一个新的框架目标(我称之为“RxSwiftDependency”)。您不需要向其中添加任何文件或任何其他内容。保留它创建时的样子。

  3. 在该附加目标的“常规”选项卡上,在“框架和库”部分添加 swift-package 依赖项(请参见下面的屏幕截图)

  4. 将该附加目标 (RxSwiftDependency) 添加到需要依赖项的目标的“框架和库”中。如果您之前添加过“RxSwift”,请将其删除。

  5. 在其他需要 RxSwift 实体的目标的 .swift 文件中添加“import RxSwift”

  6. 在最终目标中嵌入所有必要的框架

Screenshot1

关于ios - Xcode 中两个目标中的 swift 包导致重复符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58105595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com