当 linting 头文件包含 C++ 时,我遇到了问题。
pod lib lint MyLibrary.podspec
这是我的头文件声明:
#include <memory>
#include <string>
#include <vector>
#include <stdexcept>
我收到以下错误 PathToMyHeader:31:10: fatal error :找不到“内存”文件
我认为 'string'、'vector'、'stdexpept' 会出现相同的错误
这是我的podspec
s.source_files = 'Pod/Classes/Include/*', 'Pod/Frameworks/MyFramework.framework/Headers/*.h'
s.resource_bundles = {
'Pod' => ['Pod/Resources/*']
}
s.public_header_files = 'Pod/Frameworks/MyFramework.framework/Headers/*.h'
s.vendored_frameworks = 'Pod/Frameworks/MyFramework.framework'
s.frameworks = 'Accelerate', 'Security', 'QuartzCore', 'OpenGLES', 'CoreBluetooth', 'CoreGraphics', 'CoreFoundation', 'CoreText', 'MyFramework'
s.vendored_libraries = 'Pod/Libraries/*.a'
s.libraries = 'z', 'stdc++', 'MyLib'
s.pod_target_xcconfig = {
'CLANG_CXX_LANGUAGE_STANDARD' => 'compiler-default',
'CLANG_CXX_LIBRARY' => 'libc++',
'OTHER_LDFLAGS' => '$(inherited) -ObjC'
}
linting 后的错误
While building module 'MyPod' imported from /var/folders/mg/0ckz5wr564sf3ctkr_lbtt440000gn/T/CocoaPods-Lint-20180913-4902-prtn4r-MyPod/App/main.m:3:
In file included from <module-includes>:1:
In file included from /Users/xxx/Library/Developer/Xcode/DerivedData/App-gtcyhyyxmkxxbbfdxoqxlqrpwaaq/Build/Products/Release-iphonesimulator/MyPod/MyPod.framework/Headers/MyPod-umbrella.h:22:
/Users/xxx/Library/Developer/Xcode/DerivedData/App-gtcyhyyxmkxxbbfdxoqxlqrpwaaq/Build/Products/Release-iphonesimulator/MyPod/MyPod.framework/Headers/Header-cpp.h:30:10: fatal error: 'memory' file not found
#include <memory>
^~~~~~~~
94 warnings and 1 error generated.
/var/folders/mg/0ckz5wr564sf3ctkr_lbtt440000gn/T/CocoaPods-Lint-20180913-4902-prtn4r-MyPod/App/main.m:3:9: fatal error: could not build module 'MyPod'
@import MyPod;
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
94 warnings and 2 errors generated.
** BUILD FAILED **
2018 年 9 月 13 日更新 @Paul Beusterien,非常感谢你帮助我,现在可以了。 pod 使用:
pod lib lint MyPodSpec.podspec --skip-import-validation
但是当我在工作场所为我的项目调用 pod install 后,它似乎刚刚通过 pod,但是当我运行我的项目时显示相同的错误 Error
最佳答案
这是一个known CocoaPods issue无法检查 C++ header 。
解决方法是选项 --skip-import-validation
关于c++ - CocoaPod - 在头文件中使用 C++ 时出现 Podspec linting 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52293771/