Xcode 10 和 iOS 12 的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kmyhy/article/details/82991443

libstdc++.tbd 找不到

苹果在XCode10和iOS12中移除了libstdc++这个库,由libc++这个库取而代之。

由于大量的第三方库使用了这个库,因此可以暂时用以下办法让编译通过:

  • 方法 1
    从 Xcode 9 中拷贝这个库到 Xcode 10 中。拷贝的地方有两处,分别位于 /Applications/Xcode9.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib 和 /Applications/Xcode9.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib 目录。然后你就可以在 Xcode 10 中导入这个库了。

    注意,这种方式无法在 iOS 12 的模拟器中运行,会报如下错误:/usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator
    这种情况下,只能用真机测试。

  • 方法 2

    从 Linked frameworks and libraries 中删除 libstdc++,然后全局搜索 6.0.9,将 pod 的两个 xcconfig 文件中的 -l"stdc++.6.0.9" 删掉。

    这种方法无论在 iOS 11 还是 12 的模拟器上都能运行。

编译错误:Multiple commands produce ‘/Users/qq/Library/Developer/Xcode/DerivedData/Client-ftuhxtvemmeflwbaizseedvenvlb/Build/Products/Debug-iphonesimulator/Client.app/Info.plist’:

打开 Xcode 菜单 file\Workspace Settings,将 Build System设置为legacy Build System。
如果还不行,将 info.plist 从 Build phase > Copy Bundle Resource/Compile Sources 中移除。

猜你喜欢

转载自blog.csdn.net/kmyhy/article/details/82991443