在将Xcode升级到12.5和iOS升级到14.5之后,我无法在真正的设备或模拟器上运行iOS应用程序.

运行npm run ios次后,我收到以下消息:

The following build commands failed:
        CompileC .../Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/Flipper-Folly.build/Objects-normal/x86_64/DistributedMutex.o /Users/guilherme/Documents/Dood/ios/Pods/Flipper-Folly/folly/synchronization/DistributedMutex.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler

如果我try 使用Xcode在真实设备上运行应用程序,我会遇到以下错误(与Flipper Folly有关):

.../ios/Pods/Headers/Private/Flipper-Folly/folly/synchronization/DistributedMutex-inl.h:1051:5: 'atomic_notify_one<unsigned long>' is unavailable

思想?谢谢

UPDATE:

React native已更新为0.64.1.现在,您可以在包中将react-native 依赖项更改为该版本.json文件,然后运行npm install

推荐答案

我找到了一个解决办法.

将此添加到播客文件中的post_install:

post_install do |installer|
  flipper_post_install(installer)

  ## Fix for Flipper-Folly on iOS 14.5
  find_and_replace("Pods/Flipper-Folly/folly/synchronization/DistributedMutex-inl.h",
    "atomic_notify_one(state)", "folly::atomic_notify_one(state)")

  find_and_replace("Pods/Flipper-Folly/folly/synchronization/DistributedMutex-inl.h",
    "atomic_wait_until(&state, previous | data, deadline)", "folly::atomic_wait_until(&state, previous | data, deadline)")
end

您还需要为这个find_and_replace函数添加函数def(您可以将这个函数放在pod文件中的任何位置):

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

再次运行pod install,它应该会工作.如果在访问DistributedMutex inl时遇到与权限相关的错误.h文件,删除/pods文件夹,然后再次运行pod install

你应该看到文本打印出来,上面写着Fix:Pods/Flipper Folly/Folly/synchronization/DistributedMutex inl.h、 等等.如果没有,请在find_和_replace调用中仔细判断路径.

Reactjs相关问答推荐

Next.js-图像组件加载问题

使用Thattle和Use Effect setTimeout进行搜索有什么不同

Reaction-路由v6动态路径RegExp

更改购物车中的产品数量后,PayPal Reaction/Next JS按钮未更新

如何使用皮金贴图在Reactjs中制作 map 上的点之间的线的动画?

如何动态地改变<; Select >;React和Tailwind元素?

.populate() 方法在 mongodb 中不起作用

React useEffect 依赖项

如何让 useEffect 在 React.JS 中只运行一次?

React - 添加了输入数据但不显示

虽然通过了身份认证,但并没有导航到请求的页面

如何实现 redux 工具包来注册用户?

React Native Realm 应用程序在发布构建后崩溃

我正在try 使用 cypress 测试我的下拉列表,它 Select 值但不提交它们(手动工作)

更新和删除功能不工作 Asp.net MVC React

react-admin useGetIdentity 只返回全名,id 未定义 头像未定义

如何从 extrareducer redux 更改对象中元素的值

如何通过 Material Ui 设计将 Accordion 添加到您的 React 项目中?

无法有条件地更新useEffect中的setState

运行开发服务器时如何为 Vite 指定运行时目录