能力有限对于iOS使用GRPC也只能是一知半解,本次只是对遇到的问题简单的记录一下。
至于为什么要使用还请移步中文GRPC,不过还是用了才知道坑有多少。
背景
公司里多人合作开发,同一套代码不同版本的Xcode上使用会报错,于是促进了Xcode的更新,促进了Mac系统的更新,我当前的系统版本是10.15,Xcdoe的版本11.1,先是更新10.3的Xcode发现git各种不好用,弹框报错,无法比对更改的代码,有文件更改左侧边栏不变化等等,后来又发现iOS13.1 wkwebview加载H5调用相机录相会崩溃(目前还没有解决),实在不行就升到最新版本Xcode11.1了。
无法更新三方库,升级cocopods
pod install 报了一大堆都的错(没细看,估计看不太懂),经验告诉我要升级cocopods了。
// 更新cocopods
sudo gem install cocoapods --pre
一顿操作猛如虎,终于解决了更新三方库的问题。
protobuff文件无法编译
截屏2019-10-21下午6.55.13.png解决办法只能升级(其实直接安装)protobuff了,命令如下:
brew install protobuf
升级放在那儿等着就好了,升级完成了就pod install,又报错了,报错如下:
[protoc-gen-swift: program not found or is not executable
[Please specify a program using absolute path or make sure the program is available in your PATH system variable
-swift_ out: protoc-gen-swift: Plugin failed with status code 1.
解决办法只能升级(其实直接安装)swift-protobuf了,命令如下: swift-protobuf git地址
brew install swift-protobuf
升级放在那儿等着就好了,升级完成了就pod install,又报错了,报错如下:
dyld: Symbol not found: __T0Bi64_WV
Referenced from: /usr/local/bin/protoc-gen-swiftgrpc
Expected in: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftCore.dylib
in /usr/local/bin/protoc-gen-swiftgrpc
--swiftgrpc_out: protoc-gen-swiftgrpc: Plugin killed by signal 6.
网上又是一顿搜索找到相关三个帖子:
# Error --swift_out: protoc-gen-swift: Plugin killed by signal 6.#725
# Error --swiftgrpc_out: protoc-gen-swiftgrpc: Plugin killed by signal 6#314
解决办法就是下载grpc-swift源码,然后照做就OK。
Binary releases of protoc
, the Protocol Buffer Compiler, are available on GitHub.
To build the plugins, run make plugin
in the main directory. This uses the Swift Package Manager to build both of the necessary plugins: protoc-gen-swift
, which generates Protocol Buffer support code and protoc-gen-swiftgrpc
, which generates gRPC interface code.
To install these plugins, just copy the two executables (protoc-gen-swift
and protoc-gen-swiftgrpc
) that show up in the main directory into a directory that is part of your PATH
environment variable.
时间有限最后得到三个文件 protoc protoc-gen-swift protoc-gen-swiftgrpc。再pod install 就完成了。
总结
1.protoc 是从 /usr/local/Cellar/protobuf/3.10.0/bin 中得到。
- protoc-gen-swift、protoc-gen-swiftgrpc 是从下载的grpc-swift源码后顶级目录运行make plugin命令后得到。
网友评论