ios - react-native 和 GVRKit 之间的符号重复
问题描述
我正在尝试让 360 度视频在我的 iOS react-native 应用程序中运行(支持 VR)
我尝试使用提供此功能的各种 react-native npm 包,它们适用于 Android,但不适用于 iOS。(而且大多数至少有 2 年没有更新了……)
我决定尝试制作自己的包,看看我是否可以自己解决问题。但似乎 react-native iOS 和 GVRKit 只是不兼容。
我得到“架构 x86_64 的 7 个重复符号”:
重复符号 'fLB::FLAGS_nolog_prefix' 在:
/Users/beau/Documents/MMT/ModuleTester/ios/Pods/GVRSDK/Libraries/libGVRSDK.a(logging_ddb19c79df368f1c1db7fe052bc2a5d9.o)
/Users/beau/Library/Developer/Xcode/DerivedData/ModuleTester-eaufazkgozuyyvfhpezutrvzceza/Build/Products/Debug-iphonesimulator/glog/libglog.a(logging.o)
duplicate symbol 'fLB::FLAGS_log_prefix' in:
/Users/beau/Documents/MMT/ModuleTester/ios/Pods/GVRSDK/Libraries/libGVRSDK.a(logging_ddb19c79df368f1c1db7fe052bc2a5d9.o)
/Users/beau/Library/Developer/Xcode/DerivedData/ModuleTester-eaufazkgozuyyvfhpezutrvzceza/Build/Products/Debug-iphonesimulator/glog/libglog.a(logging.o)
duplicate symbol 'fLB::FLAGS_nosymbolize_stacktrace' in:
/Users/beau/Documents/MMT/ModuleTester/ios/Pods/GVRSDK/Libraries/libGVRSDK.a(examine_stack_fca476d0593b9f715e19264b75811e08.o)
/Users/beau/Library/Developer/Xcode/DerivedData/ModuleTester-eaufazkgozuyyvfhpezutrvzceza/Build/Products/Debug-iphonesimulator/glog/libglog.a(utilities.o)
duplicate symbol 'fLB::FLAGS_symbolize_stacktrace' in:
/Users/beau/Documents/MMT/ModuleTester/ios/Pods/GVRSDK/Libraries/libGVRSDK.a(examine_stack_fca476d0593b9f715e19264b75811e08.o)
/Users/beau/Library/Developer/Xcode/DerivedData/ModuleTester-eaufazkgozuyyvfhpezutrvzceza/Build/Products/Debug-iphonesimulator/glog/libglog.a(utilities.o)
duplicate symbol 'fLI::FLAGS_nov' in:
/Users/beau/Documents/MMT/ModuleTester/ios/Pods/GVRSDK/Libraries/libGVRSDK.a(vlog_is_on_0129e25e84d5880e84b763ce61020e1c.o)
/Users/beau/Library/Developer/Xcode/DerivedData/ModuleTester-eaufazkgozuyyvfhpezutrvzceza/Build/Products/Debug-iphonesimulator/glog/libglog.a(vlog_is_on.o)
duplicate symbol 'fLI::FLAGS_v' in:
/Users/beau/Documents/MMT/ModuleTester/ios/Pods/GVRSDK/Libraries/libGVRSDK.a(vlog_is_on_0129e25e84d5880e84b763ce61020e1c.o)
/Users/beau/Library/Developer/Xcode/DerivedData/ModuleTester-eaufazkgozuyyvfhpezutrvzceza/Build/Products/Debug-iphonesimulator/glog/libglog.a(vlog_is_on.o)
duplicate symbol 'fLS::FLAGS_vmodule' in:
/Users/beau/Documents/MMT/ModuleTester/ios/Pods/GVRSDK/Libraries/libGVRSDK.a(vlog_is_on_0129e25e84d5880e84b763ce61020e1c.o)
/Users/beau/Library/Developer/Xcode/DerivedData/ModuleTester-eaufazkgozuyyvfhpezutrvzceza/Build/Products/Debug-iphonesimulator/glog/libglog.a(vlog_is_on.o)
ld: 7 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我无法让 GVRKit 和 react-native 相处,有没有办法自己解决这些错误?
欢迎任何建议!提前致谢!博
编辑
我曾尝试使用这个 shell 脚本(可通过 react-native-gvr 获得),但它没有任何改变:
#!/bin/bash
cd ./Pods/GVRSDK/Libraries/
lipo -info libGVRSDK.a
# Divide to each platform
lipo -thin armv7 libGVRSDK.a -output libGVRSDK_armv7
lipo -thin i386 libGVRSDK.a -output libGVRSDK_i386
lipo -thin x86_64 libGVRSDK.a -output libGVRSDK_x86_64
lipo -thin arm64 libGVRSDK.a -output libGVRSDK_arm64
# Delete duplicate file
chmod 777 libGVRSDK_armv7
chmod 777 libGVRSDK_i386
chmod 777 libGVRSDK_x86_64
chmod 777 libGVRSDK_arm64
ar -dv libGVRSDK_armv7 vlog_is_on.o
ar -dv libGVRSDK_i386 vlog_is_on.o
ar -dv libGVRSDK_x86_64 vlog_is_on.o
ar -dv libGVRSDK_arm64 vlog_is_on.o
# rm libGVRSDK.a
lipo -create libGVRSDK_armv7 libGVRSDK_i386 libGVRSDK_x86_64 libGVRSDK_arm64 -output libGVRSDK.a
# Delete media
rm libGVRSDK_armv7
rm libGVRSDK_i386
rm libGVRSDK_x86_64
rm libGVRSDK_arm64
cd ../../../
吊舱安装输出:
Architectures in the fat file: libGVRSDK.a are: armv7 i386 x86_64 arm64
ar: vlog_is_on.o: not found in archive
ar: vlog_is_on.o: not found in archive
ar: vlog_is_on.o: not found in archive
ar: vlog_is_on.o: not found in archive
Integrating client project
我尝试用 logging.o 和 utility.o 替换 vlog_is_on.o 以查看会发生什么,但也找不到它们。
任何帮助将不胜感激;)谢谢!
解决方案
推荐阅读
- node.js - 如何匹配包含和不包含空格的两个字符串
- python - 在 numpy 数组和 pandas 数据框中选择列的常用方法
- ssis - 使用批处理文件在服务器上部署和运行 SSIS 包
- python - Google Analytics Dashboard Data 和通过 python googleapiclient 导入的数据不匹配
- laravel - 如果 esle 条件在 laravel 5.4 中的中间件的构造函数中不起作用
- ios - 如何在 Swift 中打印 Unicode 字符
- javascript - 为什么 async/await 会打破 $http.get/角度摘要循环?
- html - Flex 段落在多行或更长的单词而不是一行时在其右边缘占用更多空间
- javascript - 未捕获的错误:语法错误,无法识别的表达式:不支持的语言:
- debugging - ARFoundation 包的 Unity 编辑器中的平面模拟