cocoapods-keys介绍
cocoapods-keys 是一个 CocoaPods 插件,用于帮助 iOS 开发者管理应用程序中的敏感信息,如 API 密钥、访问令牌、密码等。
特点:
- 安全性:敏感信息不会直接暴露在代码中,减少了泄露的风险。
- 易于管理:所有敏感信息都集中存储在一个地方,方便管理和维护。
- 便捷性:在开发和部署过程中,你可以轻松地更改这些敏感信息,而不需要修改代码。
安装
gem install cocoapods-keys 或 sudo gem install cocoapods-keys
工作原理
密钥名称存储在~/.cocoapods/keys/
,key 和 values 存储在电脑的钥匙串
中,当执行 pod install
or pod update
命令是,会创建一个带有加密版本的密钥的Objective-C类,这使得很难转储解密二进制文件的内容并提取密钥。在运行时,这些键会被解码,以便在应用程序中使用。
Usage Plugin
Using the new Plugin API in CocoaPods we can automate a lot of the fiddly bits away. You define what keys you want inside your Podfile and Keys will detect what keys are not yet set. If you need to specify a different project name from the target name, use the key :target to specify it.
在Podfile 文件中使用 Plugin api 自动生成,keys 将检测尚未设置
的键,如果您需要指定与目标名称不同的项目名称,请使用:target键来指定它。
- 请不要在key 中使用 -,中划线,如:将 WRONGLY-DEFINED-KEY 换成CorrectlyDefinedKey
plugin 'cocoapods-keys', {
:project => "Eidolon",
:keys => [
"ArtsyAPIClientSecret",
"ArtsyAPIClientKey",
"HockeyProductionSecret",
"HockeyBetaSecret",
"MixpanelProductionAPIClientKey",
...
]}
//或
plugin 'cocoapods-keys', {
:project => "Eidolon",
:target => 'sdrworkspace',
:keys => [
"ArtsyAPIClientSecret",
"ArtsyAPIClientKey",
"HockeyProductionSecret",
"HockeyBetaSecret",
"MixpanelProductionAPIClientKey",
...
]}
常用指令
- 1.列出所有已知的键
pod keys
或
pod keys list
- 2.设值或新增键值
pod keys set "AnalyticsToken" "6TYKGVCn7sBSBFpwfSUCclzDoSBtEXw7"
- 3.查看值
pod keys get nameKey
- 4.删除键值
pod keys rm AnalyticsToken // 删除指定key
pod keys rm "*" // 删除所有key
pod keys rm --all // 删除所有key
pod keys rm "G*og*" // 将删除以 G 开头,中间有og的key
- 5.bundle exec pod keys generate [optional project]将生成混淆化的Objective-C keys类(主要在内部使用)。
pod keys generate [optional project]
虽然我传了一个YFLopPrintTwo,明显找不到 YFLopPrintTwo project,插件会自动追踪正确的project
- pod keys export 命令
issue
-
如果生成的OC类名称不对,如
Doctor_workspaceKeys.h
变成了Doctor_modules_imKeys.h
,怎么处理?1.plugin的时候指定target,如
plugin 'cocoapods-keys', {
:project => 'doctor_workspace',
:target => 'doctor_workspace',
:keys => [
"ServerDomainRelease", # Release
]
}
2.删除以下文件
* ~/.cocoapods/keys/错误的.yml 名称文件
* 项目目录/Pods/CocoaPodsKeys
* 项目目录/Pods/Pods.xcodeproj
* 项目目录/Pods.project_cache // 这个是隐藏目录
* 还不行的话将钥匙圈错误的keyName 删除掉
3.再去重新pod install
4.名称正确之后,再通过指令pod keys rm --all
删除所有的key,删完之后再去跑脚本设置正确的key 和 value。脚本成功执行后如果在项目keys.h文件不对的话,再执行一下 pod install