简体   繁体   English

Xcode - 找不到 -lBVLinearGradient 的库

[英]Xcode - library not found for -lBVLinearGradient

I've moved to Macbook Pro M1, and my Xcode version is 12.5.1我已经转移到 Macbook Pro M1,我的 Xcode 版本是 12.5.1

When running my app, I'm getting below error:运行我的应用程序时,出现以下错误:

ld: library not found for -lBVLinearGradient
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I'm also using react-native-linear-gradient (version 2.5.6) library, for which this error is related to.我也在使用react-native-linear-gradient (version 2.5.6) library,这个错误与它有关。

I could fix this issue with amend my Podfile by adding this:我可以通过添加以下内容来修改我的 Podfile 来解决这个问题:

post_install do |installer|
  ## Fix for XCode 12.5
  find_and_replace("../node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm",
 "_initializeModules:(NSArray<id<RCTBridgeModule>> *)modules", "_initializeModules:(NSArray<Class> *)modules")
 find_and_replace("../node_modules/react-native/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm",
 "RCTBridgeModuleNameForClass(module))", "RCTBridgeModuleNameForClass(Class(module)))")
end

def find_and_replace(dir, findstr, replacestr)
  Dir[dir].each do |name|
      text = File.read(name)
      replace = text.gsub(findstr,replacestr)
      if text != replace
          puts "Fix: " + name
          File.open(name, "w") { |file| file.puts replace }
          STDOUT.flush
      end
  end
  Dir[dir + '*/'].each(&method(:find_and_replace))
end

Let me update for XCode 13.1 as follows:让我更新 XCode 13.1 如下:

post_install do |installer|
      # Fix after updating to Xcode 13.1
      find_and_replace("../node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm",
     "_initializeModules:(NSArray<id<RCTBridgeModule>> *)modules", "_initializeModules:(NSArray<Class> *)modules")
     find_and_replace("../node_modules/react-native/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm",
     "RCTBridgeModuleNameForClass(strongModule))", "RCTBridgeModuleNameForClass(Class(strongModule)))")
    end
    
    def find_and_replace(dir, findstr, replacestr)
     Dir[dir].each do |name|
         text = File.read(name)
         replace = text.gsub(findstr,replacestr)
         if text != replace
             puts "Fix: " + name
             File.open(name, "w") { |file| file.puts replace }
             STDOUT.flush
         end
     end
     Dir[dir + '*/'].each(&method(:find_and_replace))
    end

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM