CocoaPods 私有库验证和push操作

1、创建私有库:pod lib create XXX 


2、验证私有库:pod lib lint XXX (本地验证),pod spec lint XXX (本地和远程验证),

     如果当前私有库引用到了其他私有库,需要使用第二种方式,并指明地址引用的私有版本库地址,示例:pod spec lint XXX.podspec --sources='http://192.16.0.xx/iOS-APP/XXX.git,https://github.com/CocoaPods/Specs.git' --allow-warnings --use-libraries --verbose


参数说明:

--sources:引用的私有库地址,如果引用到其他第三方的库,记得一定加上https://github.com/CocoaPods/Specs.git,多个地址以逗号“,”分割。如果没有引用到其他的私有版本库,这个参数可以不加,示例:pod spec lint XXX.podspec  --allow-warnings --use-libraries --verbose

--allow-warnings:允许警告,如果不加这个可能会由于项目里太多警告而验证不通过,一般都加上

--use-libraries:有引用到静态库,添加此参数

--verbose:输出详细日志

3、push到远程私有中央库
     先在远程添加一个私有版本库xxx.git,然后将其添加到pod仓库索引:pod repo add xxxx http://xxxx/xxx.git
     push到远程私有版本库:pod repo push xxxx xxx.podspec --sources='http://192.16.0.xx/iOS-APP/xxx.git,https://github.com/CocoaPods/Specs.git' --allow-warnings --use-libraries --verbose
参数说明同上。

4、如遇到问题Could not find a `ios` simulator (valid values: ). Ensure that Xcode -> Window -> Devices has at least one `ios` simulator listed or otherwise add one.

这是Xcode版本和pod依赖的组件fourflusher不匹配导致

将fourflusher卸载重新安装即可

sudo gem uninstall fourflusher

sudo gem install fourflusher


注意:验证和提交时,先打对应版本tag,本地.podspec文件中的版本在远程一定要有对应tag

本文只介绍了验证和提交,具体的怎么从头开始搭建我们自己的私有版本库,等有时间了整理发出来。

<think>好的,我需要帮助用户修改CocoaPods脚本,将include文件夹中的.h.m文件包含到私有库中,并确保通过pod安装时能正确拉取。首先,我需要了解CocoaPods的目录结构podspec文件的配置。 用户提到现有的脚本可能需要调整。podspec文件中通常会有s.source_files来指定源码文件。用户希望将include文件夹中的文件包含进去,可能需要修改source_files的路径。例如,如果include在库的根目录下,可能需要设置s.source_files = 'include/**/*.{h,m}',不过这样可能只包含头文件实现文件,但用户可能希望保持原有结构同时添加include目录。 另外,CocoaPods默认会将头文件作为public,但.m文件通常不会公开。用户可能希望将.h文件作为public headers,而.m文件可能作为私有或者源码。不过,如果是静态库,可能需要将.m文件编译进去。这时候需要检查s.public_header_files是否正确指向include中的.h文件。例如,s.public_header_files = 'include/**/*.h',同时确保s.source_files包括.h.m。 另外,可能需要设置头文件的搜索路径,以便在编译时能找到include中的头文件。这可以通过s.xcconfig中的HEADER_SEARCH_PATHS来设置,比如'$(PODS_ROOT)/Headers/Public/YourLib'或者具体路径。 用户还提到要确保文件被正确推送。在podspec中,除了source_files,还需要确认s.preserve_paths是否包含include目录,这样在安装时会保留目录结构。例如,s.preserve_paths = 'include/**/*'。 此外,用户可能在使用pod package打包时,需要确保--library参数正确包含这些文件。可能需要检查打包命令是否处理了include目录,或者在podspec中添加resource_bundles,但资源包通常用于非代码文件,所以可能不太合适。这里还是应该用source_filespublic_header_files。 最后,测试是否成功,需要执行pod install并检查Pods目录下是否包含include文件夹及其中的文件,同时确认编译时能正确引用头文件,没有报错。</think>根据需求调整CocoaPods脚本的步骤如下: ### 步骤一:调整目录结构 将.h.m文件统一放入名为`include`的文件夹中,确保目录结构为: ``` YourLib/ include/ ClassA.h ClassA.m SubDir/ ClassB.h ClassB.m YourLib.podspec ``` ### 步骤二:修改podspec配置 在`.podspec`文件中修改以下关键配置: ```ruby s.source_files = 'include/**/*.{h,m}', 'Classes/**/*.{h,m}' # 保留原有Classes目录,新增include目录 s.public_header_files = 'include/**/*.h' # 暴露头文件 s.preserve_paths = 'include/**/*' # 保留目录结构 ``` ### 步骤三:验证头文件搜索路径 在Xcode项目中确保头文件搜索路径包含: ``` "${PODS_ROOT}/Headers/Public/YourLib/include" ``` 可通过在podspec中添加配置实现: ```ruby s.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(PODS_ROOT)/YourLib/include/**' } ``` ### 步骤四:更新Git仓库并打标签 1. 提交修改后的文件: ```bash git add include/ YourLib.podspec git commit -m "添加include目录" ``` 2. 更新版本号并打标签(假设新版本号为1.0.1): ```bash git tag -a 1.0.1 -m "v1.0.1" git push origin 1.0.1 ``` ### 步骤五:验证本地配置 在Example目录执行更新操作: ```bash cd Example pod install cd .. ``` ### 步骤六:打包静态库(如需) 使用以下命令确保包含include目录: ```bash pod package YourLib.podspec --library --force ``` ### 引用验证方式 安装后检查Pods目录结构: ``` Pods/ YourLib/ include/ ClassA.h ClassA.m SubDir/ ClassB.h ClassB.m ``` ### 关键配置说明 - **source_files**:使用Glob模式匹配所有源码文件[^1] - **public_header_files**:控制公开头文件的可见性[^3] - **preserve_paths**:保留原始目录结构防止扁平化[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值