ios - IBM MobileFirst 7.0 - libstdc++.6.dylib 上的 Xcode 10.1/iOS 12 问题
问题描述
我们在移动应用程序开发中使用 MFP 7.0。在 Xcode 9 上,我们没有任何问题,我们所有的应用程序都运行顺利。当 Xcode 10 和 iOS 12 发布时,我们升级了 MacBook,但在编译过程中遇到了问题。我们已按照论坛的建议添加了库libstdc++.6.dylib。当我们在模拟器上运行时它工作正常,但如果我们尝试在真实设备(iPhone/iPad)中进行测试,我们会收到错误消息“ ../native/Frameworks/libstdc++.6.dylib, missing required architecture arm64”。
当我运行针对我的 iphone 设备的应用程序时,这是我的 xcode 中的实际警告/错误日志:
ld:警告:忽略文件 /Users/jm/Documents/App/native/Frameworks/libstdc++.6.dylib,缺少文件 /Users/jm/Documents/App/native/Frameworks/libstdc++.6.dylib 中所需的架构 arm64( 2 片)架构 arm64 的未定义符号:“std::basic_ostringstream, std::allocator >::basic_ostringstream(std::_Ios_Openmode)”,引用自:+[NSNumber(UCUtils) doubleToString:] in libWorklightStaticLibProject.a(NSNumber- UCUtils.o) "std::ostream::operator<<(double)",引用自:+[NSNumber(UCUtils) doubleToString:] in libWorklightStaticLibProject.a(NSNumber-UCUtils.o) "std::string::c_str () const",引用自: +[NSNumber(UCUtils) doubleToString:] in libWorklightStaticLibProject.a(NSNumber-UCUtils.o) "std::basic_string, std::allocator >::~basic_string()",引用自:+[NSNumber(UCUtils) doubleToString:] in libWorklightStaticLibProject.a(NSNumber-UCUtils.o) "std::basic_ostringstream, std::allocator >::str() const",引用自: +[NSNumber(UCUtils) doubleToString:] in libWorklightStaticLibProject.a(NSNumber-UCUtils.o) "std::basic_ostringstream, std::allocator >::~basic_ostringstream()",引用自:+[NSNumber(UCUtils) doubleToString :] 在 libWorklightStaticLibProject.a(NSNumber-UCUtils.o) ld: 未找到架构 arm64 的符号 clang: 错误: 链接器命令失败,退出代码为 1(使用 -v 查看调用)str() const",引用自:+[NSNumber(UCUtils) doubleToString:] in libWorklightStaticLibProject.a(NSNumber-UCUtils.o) "std::basic_ostringstream, std::allocator >::~basic_ostringstream()",引用自: +[NSNumber(UCUtils) doubleToString:] in libWorklightStaticLibProject.a(NSNumber-UCUtils.o) ld: 未找到架构 arm64 的符号 clang: 错误: 链接器命令失败,退出代码为 1(使用 -v 查看调用)str() const",引用自:+[NSNumber(UCUtils) doubleToString:] in libWorklightStaticLibProject.a(NSNumber-UCUtils.o) "std::basic_ostringstream, std::allocator >::~basic_ostringstream()",引用自: +[NSNumber(UCUtils) doubleToString:] in libWorklightStaticLibProject.a(NSNumber-UCUtils.o) ld: 未找到架构 arm64 的符号 clang: 错误: 链接器命令失败,退出代码为 1(使用 -v 查看调用)链接器命令失败,退出代码为 1(使用 -v 查看调用)链接器命令失败,退出代码为 1(使用 -v 查看调用)
:-1: 忽略文件 /Users/jm/Documents/App/native/Frameworks/libstdc++.6.dylib,缺少文件 /Users/jm/Documents/App/native/Frameworks/libstdc++.6.dylib 中所需的架构 arm64( 2片)
:-1: 未找到架构 arm64 的符号
:-1: 链接器命令失败,退出代码为 1(使用 -v 查看调用)
解决方案
我尝试在 MFP v6.2 上进行跟踪,它在设备上运行良好。你可以试试同样的。您能否从复制 stdlibc++ 库的位置提供更多详细信息。
- 从您的 Xcode 9 机器
复制文件: (libstdc++.6.0.9.tbd) 和 (libstdc++.6.tbd) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib 和/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
- 粘贴到 Xcode 10 机器上的以下路径
将文件: (libstdc++.6.0.9.tbd) 和 (libstdc++.6.tbd) 复制到:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
和
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
(请注意区分“iPhoneOS”和“iPhoneSimulator”)
将复制的库 (libstdc++.6.0.9.tbd) 和 (libstdc++.6.tbd) 添加到 Xcode 项目的“Build Phase-> Link library”路径。
清理xcode并重建它。
- 在 iOS 12 设备上执行
注意:对于模拟器问题/usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator
,可以尝试将原始文件:libstdc++.6.0.9.dylib 和 libstdc++.6.dylib 和 libstdc++.dylib 复制到:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib
但有时连做都不行,建议在iOS 11模拟器上运行
推荐阅读
- java - E/MediaRecording:外部存储访问错误
- python - 编写带有 X 和 Y 轴的 JSON 文件
- c# - 为什么 WPF XAML 前端在其他机器上看起来不同?
- email - 当我将名称设置为变量时,作为 xlsx 的 Python 电子邮件附件不起作用
- reactjs - 反应代理不工作 http-proxy-middleware
- checkbox - 不使用提交的复选框列表
- codeigniter - 更改 Codeignitor 中的 URL 参数
- sql-server - T-SQL - 多个 WITH 子句,然后总和
- ios - 关闭时将相机预览调整为原始大小
- dataframe - 计算张量和 numpy 数组之间的 pearson 相关性