2021-09-13

解决XCode 12.5版本 React-Native 适配出现的问题:

报错信息如下

cannot initialize a parameter of type 'NSArray<id<RCTBridgeModule>> *' with an lvalue of type 'NSArray<Class> *__strong' NSArray<RCTModuleData *> *newModules = [self _initializeModules:modules withDispatchGroup:NULL lazilyDiscovered:YES];


在podfile中添加:


 post_installdo|installer|

    flipper_post_install(installer)

    ## Fix for XCode 12.5 编译错误

    find_and_replace("../node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm",

       "_initializeModules:(NSArray> *)modules", "_initializeModules:(NSArray *)modules")

    find_and_replace("../node_modules/react-native/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm",

         "RCTBridgeModuleNameForClass(module))", "RCTBridgeModuleNameForClass([module class]))")

    find_and_replace("../node_modules/react-native/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm",

              "RCTBridgeModuleNameForClass(strongModule))", "RCTBridgeModuleNameForClass([strongModule class]))")

  end


  ## Fix for XCode 12.5 编译错误

  deffind_and_replace(dir, findstr, replacestr)

    Dir[dir].eachdo|name|

        text = File.read(name)

        replace = text.gsub(findstr,replacestr)

        iftext != replace

            puts"Fix: "+ name

            File.open(name,"w") { |file| file.puts replace }

            STDOUT.flush

        end

    end

    Dir[dir +'*/'].each(&method(:find_and_replace))

  end


参考地址:https://github.com/facebook/react-native/issues/28405

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容