上传私有库到cocoapods上的踩坑之路(包含第三方静态库,png,xib,storyboard资源文件)

字数 673阅读 724

1.如果你包含的静态库不支持模拟器编译那么就不用往下看了,不支持模拟器编译时无法通过本地验证的,也就不能上传到cocoapods上去。

2.如果需要私有库中包含其他静态库文件,在要使用的podfile文件中去掉use_frameworks!的设置。(猜测,静态framework是不允许包含静态库的,所以会出现could not build module的错误,编译不通过)。


3.podspec的路径一定要从当前podspec文件所在的文件夹下开始,注意:是当前文件夹下,如podspec是在a文件夹中,代码文件夹b也是在a文件夹中,那么就从b开始,写成b/classes/**/*

4.先上图


上面一些简单的项目描述就不说了,着重说一下:

s.source_files   这个说明的是你项目里的所有项目文件,即.h和.m等类型的文件,记住,是所有的代码文件,所以不论你的代码文件时在哪个文件夹下,一定要在这里写明获取路径,路径的开始就如第二项所说。如果是多个文件夹获取路径,可以用逗号分隔。不要问我用不用加中括号,我这里用xcode编辑的不加中括号不会报任何错误,你都试试就行了。

s.public_header_files  获取你想要暴露的头文件的路径,如果只暴露一个或者一部分可能会出现一些找不到其他头文件的错误,就试试把所有.h文件都暴露出来

s.resources  所有的资源文件的获取路径,包括png,xib,storyboard,strings等文件,如果podfile使用了use-frameworks!这个设置,那么获取这些资源的方式就需要改变,从bundle中获取,bundlepath为[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"xxx.bundle"],xxx一般为你私有库的名称;我这里因为包含静态库所以没有使用use-frameworks!,还是直接用mainbundle。

s.frameworks    你的项目所依赖的系统库,.framework形式的库,注意不要带上后缀

s.libraries            你的项目所依赖的系统库,.tbd,同理不要带上后缀

s.vendored_libraries     你的项目中使用到的第三方静态库,路径一定要写详细,尽量不要使用*

s.dependency     依赖的开源库,没必要写版本号,会自动获取最新的

5.发布私有库不要用trunk

推荐阅读更多精彩内容