今天需要把framework更新到pod上,其他一切顺利,只有该framework里边用到一个.a文件,里边引用到了c++的一些库,在执行pod repo push SingSoundSDKCocoaPodRepo xxx.podspec --verbose --allow-warnings
的时候报错
"std::__1::__basic_string_common<true>: :__throw_length_error() const", referenced from:
std::__1::basic_stringbuf<char,std::__1::char_traits<char>,std::__1::allocator<char> >::overflow(int) in xxxx.a(kaldi-error.x86_64.o)
一开始我只在build phases添加了libc++.tbd,build完重新执行,还是报错,后来查到需要在配置文件xxx.podspec 中添加
s.libraries = 'z','c++'
, 之前只有'z'
,后来加上了c++
,pod repo push SingSoundSDKCocoaPodRepo xxx.podspec --verbose --allow-warnings
就ok了,特此笔记。
.a文件里的一些坑
模拟器的.a文件和真机的.a文件同时存在arm64架构,合并的时候,要删除模拟器.a文件的arm64架构,而不是真机的arm64架构的