酷奇每日推荐 2021-09-04
2021-09-10 本文已影响0人
启发禅悟
今天在做INSParseUI的pod的时候遇到了一些问题。
第一个是Git的问题,如果是使用pod lib create XXXXX
命令的话,最佳的实践方案是:
pod lib create XXXXX //这种方式创建的pod,同时创建本地的git,包括了ignore,lisence等文件
//然后在Github自己创建一个空的项目,注意,不要创建ignore,lisence文件
git remote add origin 仓库地址 // 添加远程仓库地址
// 这样就OK了
第二个是如何保持development pod的目录结构,遇到的现象是,虽然我在开发的时候创建了多个子目录,但是一旦pod install/update之后,development pod的目录就只有一个,所有的source文件都在该目录下,原本的子目录就都消失了。解决方案并不在development上,而是在引入pod的文件里,有选项:
install! 'cocoapods',
:preserve_pod_file_structure => true
第三个问题是development pod的pch文件,每次pod install/update之后都会被清空,导致pod trunk的时候,因为pch文件没有包含必要的头文件导致编译失败。一种策略是不使用pch文件,那么自然就不会有这种问题,但会造成import的内容有时候会非常多。第二种策略是自定义一个类似pch文件的.h文件,然后所有文件里import这个文件。第三种,继续使用pch文件,并在podspec文件里定义
s.prefix_header_contents = '#import <Parse/Parse-umbrella.h>', '#import <INSParse/INSParse-umbrella.h>'
如此定义之后,这些import的定义会自动添加到pch文件中。