为什么我的 iOS 应用程序在启动时会产生 dyld 错误?

Why does my iOS app produce a dyld error on launch?

提问人:user2903299 提问时间:7/13/2021 最后编辑:D Muser2903299 更新时间:8/17/2021 访问量:446

问:

我有一个在 Xcode 12.3 上运行的项目;它在 Objective-C 中并使用 CocoaPods。第三方库仅为设备构建,而不是为模拟器构建,因此当我在装有 iOS 13 的 iPhone 上运行我的应用程序时,项目构建成功,但我收到以下错误:

dyld: Symbol not found: _$s9SwiftGRPC17ServerSessionBaseC15initialMetadataAA0G0CvM
  Referenced from: /private/var/containers/Bundle/Application/EE50CA2F-F5D6-4DF3-B76F-2E580D604C4B/####.app/Frameworks/Core.framework/Core
  Expected in: /private/var/containers/Bundle/Application/EE50CA2F-F5D6-4DF3-B76F-2E580D604C4B/####.app/Frameworks/SwiftGRPC.framework/SwiftGRPC
 in /private/var/containers/Bundle/Application/EE50CA2F-F5D6-4DF3-B76F-2E580D604C4B/####.app/Frameworks/Core.framework/Core
dyld: launch, loading dependent libraries
DYLD_LIBRARY_PATH=/usr/lib/system/introspection
DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/usr/lib/libMainThreadChecker.dylib:/Developer/Library/PrivateFrameworks/GPUTools.framework/libglInterpose.dylib:/usr/lib/libMTLCapture.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib
(lldb) 

pod 文件如下:

pod 'SwiftGRPC', '~> 0.9.0'
pod 'Firebase/Core'
pod 'Firebase/Messaging'
pod 'CleverTap-iOS-SDK', '~> 3.7.1'

为什么我会收到此错误,我该如何解决?

ios cocoapods linker-errors dyld

评论


答:

0赞 Callum 8/17/2021 #1

您是否尝试过为所有框架设置 to 以确保模块稳定性?BUILD_LIBRARY_FOR_DISTRIBUTIONtrue

您需要在应用程序(在项目设置下)以及依赖项中将该标志设置为 true,方法是在 Podfile 的末尾添加安装后脚本。

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
    end
  end
end

原始解决方案在这里