为什么我的静态库会导致iOS链接器错误?

111

我在将混合语言框架连接到项目时遇到了问题。

  1. 我使用Swift和Objective-C类创建了一个框架。

  2. 主要逻辑存储在Swift文件中。例如,一个调用NSLog("Swift log was called")方法的类。

  3. Objective-C文件有一个类,其中包含一个方法,在该方法中我创建一个Swift类的实例并调用Swift-log方法。

  4. 我将这个框架与我的Objective-C项目链接起来,我可以在这个项目中调用所有我需要的东西,但是当我想要构建这个项目时,我会收到错误信息 linker command failed with exit code 1 (use -v to see invocation)

    还有警告:

ld: warning: Could not find auto-linked library 'swiftFoundation'
ld: warning: Could not find auto-linked library 'swiftDarwin'
ld: warning: Could not find auto-linked library 'swiftCoreFoundation'
ld: warning: Could not find auto-linked library 'swiftCore'
ld: warning: Could not find auto-linked library 'swiftCoreGraphics'
ld: warning: Could not find auto-linked library 'swiftObjectiveC'
ld: warning: Could not find auto-linked library 'swiftDispatch'
ld: warning: Could not find auto-linked library 'swiftSwiftOnoneSupport'

我也看到了通过导入空的Swift文件来解决问题的方法,但这会使项目中出现无用的文件。


@PhilippHolly 我需要一个不包含空文件的解决方案。 - Yaroslav Skachkov
很抱歉,我目前还没有找到任何解决方案。如果你找到了什么,请告诉我。 - phips28
你好,这个有什么解决方案吗? - Akila Devinda
21个回答

-1
当我尝试在我的React Native项目中集成Lottie时,解决问题的方法是使用npm卸载lottie-ios和lottie-react-native模块。
npm uninstall lottie-react-native lottie-ios

确保文件也被取消链接

npx react-native unlink lottie-react-native lottie-ios

我之前也在我的项目中尝试过这种方法,但没有成功,所以为了复制我的过程,请按照建议的答案将桥接文件添加到您的项目中。

完成这些步骤后,我继续删除了我的Pods文件夹,从xcproject和xcworkspace清理了我的构建(其中之一可能足够)。 然后我又重新安装了这些模块。

npm i --save lottie-react-native lottie-ios@3.1.3

(请确保在lottie存储库中检查当前文档以获取最新版本。)

重新安装模块后,进入ios文件夹并运行pod install。

在Xcode中打开xcworkspace并运行您的项目(确保您的构建是干净的)。

这解决了我的问题。

祝你好运。


你安装了哪个lottie-react-native版本? - Engr.Aftab Ufaq
1
你好 @AftabAmin ,感谢你的投票。 如果你看了我的帖子,你会发现我遵循了 lottie RN 文档上的说明:https://github.com/lottie-react-native/lottie-react-native 在我发布这篇文章的时候,我不太确定版本,但是你可以尝试使用最新的稳定版本。 祝你好运! - KentAgent
1
我已经尝试了所有更新的版本,但都没有起作用。当我删除这些库时,它可以正常工作。两个月后我的应用程序正在运行。今天我正在更新我的应用程序,突然出现了这个问题。一个月前也遇到过这个问题,但当时我解决了它。 - Engr.Aftab Ufaq
@AftabAmin 我明白了,太糟糕了。你可以通过提出问题的方式告诉lottie RN的开发人员,这可能会帮助更多的人。很遗憾我不能再提供更多的帮助了。我已经有一段时间没有使用过lottie了。 - KentAgent
@AftabAmin,你是如何修复它的? - Jamal Ud Din

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接