将我的混合语言框架链接到项目时遇到问题。
1)我用Swift和Objective-C类创建框架。
2)主要逻辑存储在Swift文件中。例如,带有调用NSLog(“ Swift log was created”)的方法的类。
3)Objective-C文件的类具有创建我的Swift类实例并调用Swift-log方法的方法。
4)我将此框架链接到我的Objective-C项目,可以调用此项目中需要的所有内容,但是当我要构建该项目时,会收到错误消息“ linker command failed with exit code 1 (use -v to see invocation)
” < / p>
和警告:
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文件的解决方案,但必须使项目没有任何垃圾。
答案 0 :(得分:39)
显然,对于纯Objective-C项目,您需要将此$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)
添加到目标的库搜索路径。当我包括一个为Objective-c中的项目快速编写的库时,这对我很有用
答案 1 :(得分:13)
这应该可以解决问题
答案 2 :(得分:10)
答案 3 :(得分:9)
我已经导出了我的统一项目。早些时候,它只是通过按下创建桥接头来添加空的 swift 文件。
但最近我将我的 xCode 更新到 12.3 并且它停止工作了。
所以,尝试了一些其他方法。
我已将 $(SDKROOT)/usr/lib/swift
添加到构建设置 > 搜索路径 > 库搜索路径。
但是还是不行。所以,我添加了相同的路径,即构建设置 > 搜索路径 > 库搜索路径。
$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)
$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
现在它工作完美。没有得到确切的问题或解决方案,但这种方式效果很好。
我只是在构建设置>搜索路径>库搜索路径中添加了这三个。
单独的 TOOLCHAIN_DIR
目录不起作用。如果我添加 $(SDKROOT)/usr/lib/swift
那么它就起作用了。
答案 4 :(得分:7)
尝试这种解决方法https://stackoverflow.com/a/50495316/1658268
基本上,只需在项目中添加一个虚拟swift文件,然后重新运行构建即可。
答案 5 :(得分:4)
对于XCode 11 beta 4 库搜索路径应为:
$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
答案 6 :(得分:2)
当我不小心用Xcode首选项»组件»工具链中配置的Swift 5.0快照编译项目时,我遇到了同样的错误。
答案 7 :(得分:1)
答案 8 :(得分:1)
Alex答案的更新:
在我的情况下,这是添加Swift Pods库后的一个React-Native项目。也许只是步骤2可以起作用:
答案 9 :(得分:1)
如果您来自lottie-react-native install instructions,只需将use_frameworks!
添加到podFile #536 (comment)
答案 10 :(得分:1)
在我的情况下,这是添加Swift Pods库后的一个React-Native项目。也许只是第2步可以起作用:
2)选择<console>:17: error: reassignment to val
sum=i+input(i);
^
<console>:20: error: not enough arguments for method sum: (input: Array[Int])Int.
Unspecified value parameter input.sum()
答案 11 :(得分:0)
https://stackoverflow.com/a/56187043/1848929就像一个饰物。
只需在您的项目上创建一个空的swift文件,然后构建您的项目。就是这样。
答案 12 :(得分:0)
@AlVelig的答案对我有用。
我的案例是Flutter Project,我添加了一个包(searchable_dropdown),该包是由Swift编写的。
输出警告为:
找不到自动链接的库'swiftObjectiveC'
找不到自动链接的库'swiftCore'
......
答案 13 :(得分:0)
我只忘记将新框架添加到我的pod文件中:)
target 'Data' do
inherit! :search_paths
pod 'AlamofireObjectMapper', '~> 5.2'
结束
答案 14 :(得分:0)
尝试将Lottie集成到我的React Native项目中时,为我解决的问题是使用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
(确保在彩票回购中检查当前的停靠站以获取最新版本。)
重新安装模块后,将CD插入ios文件夹并运行pod install。
在Xcode中打开xcworkspace并运行您的项目(确保您的构建是干净的)。
这解决了我的问题。
祝你好运。
答案 15 :(得分:0)
XCode 11.3 beta,Swift 5.0
我只是将目标添加到Podfile中
platform :ios, '9.0'
use_frameworks!
inhibit_all_warnings!
def shared_pods
# Pods for NamaIOS
pod 'Alamofire'
pod 'RxSwift'
end
target 'MyApp' do
use_frameworks!
shared_pods
end
target 'MyApp-Test' do
use_frameworks!
shared_pods
end
target 'MyApp-Development' do
use_frameworks!
shared_pods
end
答案 16 :(得分:0)
如果将xCode更新到版本12后出现问题和错误
找不到或使用自动链接的库'swiftWebKit'
还有两个。
只需将$(SDKROOT)/usr/lib/swift
添加到构建设置> 搜索路径> 库搜索路径。
希望其帮助:)
答案 17 :(得分:0)
对于Xcode 12.2
使用Xcode创建一个Empty Swift文件,例如名为Void.swift的文件,每个问题都将由Xcode自动解决。
答案 18 :(得分:0)
如果将Xcode 11 beta 4与迦太基结合使用时遇到此错误,请参见以下解决方法:
https://github.com/Carthage/Carthage/issues/2825
基本上,它包括创建带有修复程序的xcconfig并将其注入每个内部版本。
答案 19 :(得分:-1)
如果您的Xcode版本> = 12.2
转到
BuildSettings->链接->运行路径搜索路径并添加
/ usr / lib / swift
作为您的第一个参数,就像这样 enter image description here