MacOS下通过静态库方式引入gPRC功能

无论是通过gPRC的官网,还是github上对于gPRC的库文件引用,都是通过cocoapods的方式将它引入到自己的工程中,然后编译使用。但是会带来如下多个问题

(1)如果我们是多人协作开发,当把代码提到SVN上的时候,别人check下来你的代码,还需要重新编译一次gRPC的各种lib库,这个编译过程特别的耗时。

(2)在manage scheme里面可以看到两个scheme相同的名称,如下图,尝试改了这个名字,但是无法提交到SVN上面别人check到你的代码,还是有问题

MacOS下通过静态库方式引入gPRC功能

基于如上问题,所以想到是通过静态库的方式引入gRPC的库文件。主要修改方式如下:

(1)在当前工程的目录下新建一个lib目录,然后通过之前的build方式生成的所有release下的文件都放到这个目录下,如下图所示。然后并把这些.a文件重新添加引用添加到我们的工程中。MacOS下通过静态库方式引入gPRC功能

MacOS下通过静态库方式引入gPRC功能

(2)在.xcworkspace工程里删除Pods的引用,但是这个工程还是要在的,因为我们需要使用到他的header文件,这块也可以摘出来它所有的header文件,但是这块工作量比较大,所以选择保留该工程的形式。

(3)找到debug和Release两种环境下的.xcconfig文件,把其中的LIBRARY_SEARCH_PATHS给删除掉或者屏蔽掉,也行;这个的目的是为了搜索静态库的时候,不去Pods工程中去查找,避免重新编译

(4)修改工程Targets里面的build Settings里面的Search Paths中的Library Search Paths,添加如下的项目:$(PROJECT_DIR)/lib/Release/gRPC_Libs

(5)另外Build Phases 里面的Copy Pods Resources里面其实也不需要可以删除

自此修改完成!