记一次protobuf编译成objectC过程 For ios开发

相关文档说明:

官方文档:https://grpc.io/docs/tutorials/basic/objective-c.html

阿里云讨论:https://www.aliyun.com/jiaocheng/ios_1410.html?spm=5176.100033.2.8.Ij2Pzr

简书ios-grpc集成:https://www.jianshu.com/p/f33091df0881


废了半天劲,智能跟着网上的教程,编译单个proto文件,报错:

google/api/annotations.proto: File not found.

account.proto: Import "google/api/annotations.proto" was not found or had errors.

步骤如下:https://blog.csdn.net/sdsd13212/article/details/62044348

其实就是安装proto,安装proto-objctC,安装grpc-proto,安装cocopod

安装就不说了,说一下编译语句:

protoc  --plugin=/Users/grpc  -I /Users/task001/tmp/src/main/proto/   test.proto  --objc_out=./gen

--plugin:grpc-安装的目录

-I :项目的全目录

test.proto : proto文件名

--objc_out : 生成的objc文件输出位置

缺点:只能一个一个的去编译,而且会报以上错误


cocopod+xcode可以将proto项目,直接编译,详情请看最上边简书的链接。

在此总结存在相互import时,包名问题:

由于ios开发没有包的概念,所以proto存在相互调用时会产生包错误问题,解决方案:

1、手动修改import语句。

2、将包项目直接放入待编译路径下,然后将proto文件放到待编译路径下,这样就可以找到import资源了。

可能还是会报相互引用错误,此时根据错误,建议去修改脚本(*.podspec)文件,不建议删除,建议通过中间文件夹暂时存放冲突文件。

nice解决这个问题。

猜你喜欢

转载自blog.csdn.net/qq_37465368/article/details/81319208
今日推荐