RuntimeError - A key/value pair in the application keychain is nil.
mkismy opened this issue · 7 comments
When removing keys from the Podfile, a runtimeerror has occured.
Command
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/bin/pod update
Report
- What did you do?
- Remove keys from Podfile
- What did you expect to happen?
- Updated with the key being deleted
- What happened instead?
- RuntimeError - A key/value pair in the application keychain is nil.
Stack
CocoaPods : 1.6.1
Ruby : ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin18]
RubyGems : 2.7.6
Host : Mac OS X 10.14.4 (18E226)
Xcode : 10.0 (10A255)
Git : git version 2.11.0
Ruby lib dir : /Users/dev/.rbenv/versions/2.5.1/lib
Repositories : master - https://github.com/CocoaPods/Specs.git @ 2deaac58ebf43e68153f3bc2bc0b5b629d275cf5
Plugins
cocoapods-deintegrate : 1.0.4
cocoapods-keys : 2.1.0
cocoapods-plugins : 1.0.0
cocoapods-search : 1.0.0
cocoapods-stats : 1.1.0
cocoapods-trunk : 1.3.1
cocoapods-try : 1.1.0
Podfile
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
swift_version = '3.0'
def pods
pod 'AcknowList', '1.2'
pod 'AdGeneration', '2.13.0'
pod 'Alamofire', '4.5.1'
pod 'AppsFlyerFramework', '4.8.9'
pod 'Compass', '4.0.0'
pod 'Crashlytics', '3.12.0'
pod 'Fabric', '1.9.0'
pod 'Firebase', '5.20.1'
pod 'Firebase/AdMob'
pod 'Firebase/Auth'
pod 'Firebase/DynamicLinks'
pod 'Firebase/Messaging'
pod 'Firebase/RemoteConfig'
pod 'GoogleAnalytics', '3.17.0'
pod 'GoogleIDFASupport'
pod 'GoogleTagManager', '~>7.1.1'
pod 'RealmSwift', '2.10.2'
pod 'RxSwift', '3.6.1'
pod 'SDWebImage', '4.4.4'
pod 'SwiftyUserDefaults', '3.0.0'
pod 'Unbox', '2.5.0'
end
def testing_pods
pod 'Nimble', '7.0.2'
pod 'Quick', '1.2.0'
end
target 'project' do
use_frameworks!
pods
pod 'FBAudienceNetwork'
pod 'GoogleMobileAdsMediationFacebook', '5.1.0.0'
end
target 'projectTests' do
use_frameworks!
pods
testing_pods
end
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = ''
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
plugin 'cocoapods-keys', {
:project => "project",
:keys => [
"AppsFlyerDevKey",
"AppleAppID",
"Debug_GoogleAnalyticsTrackingID",
"Release_GoogleAnalyticsTrackingID",
"Debug_APIKey",
"Release_APIKey",
"Debug_AdMobNativeAdUnitID",
]
}
Error
RuntimeError - A key/value pair in the application keychain is nil.
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-keys-2.1.0/lib/key_master.rb:75:in `verify_keychain_integrity'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-keys-2.1.0/lib/key_master.rb:28:in `generate_data'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-keys-2.1.0/lib/key_master.rb:20:in `initialize'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-keys-2.1.0/lib/plugin.rb:39:in `new'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-keys-2.1.0/lib/plugin.rb:39:in `setup'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-keys-2.1.0/lib/plugin.rb:11:in `block in singleton class'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/hooks_manager.rb:122:in `block (3 levels) in run'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/user_interface.rb:145:in `message'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/hooks_manager.rb:116:in `block (2 levels) in run'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/hooks_manager.rb:115:in `each'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/hooks_manager.rb:115:in `block in run'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/user_interface.rb:145:in `message'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/hooks_manager.rb:114:in `run'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/installer.rb:468:in `run_plugins_pre_install_hooks'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/installer.rb:159:in `block in prepare'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/user_interface.rb:145:in `message'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/installer.rb:155:in `prepare'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/installer.rb:135:in `install!'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/command/update.rb:97:in `run'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/lib/cocoapods/command.rb:52:in `run'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/gems/cocoapods-1.6.1/bin/pod:55:in `<top (required)>'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/bin/pod:23:in `load'
/Users/dev/builds/221b080e/0/project/vendor/gems/ruby/2.5.0/bin/pod:23:in `<top (required)>'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundler/cli/exec.rb:74:in `load'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundler/cli/exec.rb:74:in `kernel_load'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundler/cli/exec.rb:28:in `run'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundler/cli.rb:463:in `exec'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundler/cli.rb:27:in `dispatch'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundler/cli.rb:18:in `start'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/exe/bundle:30:in `block in <top (required)>'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors'
/Users/dev/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/exe/bundle:22:in `<top (required)>'
/Users/dev/.rbenv/versions/2.5.1/bin/bundle:23:in `load'
/Users/dev/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
Anyone figure out a solution to this? I just encountered it today.
cocoapods-core (1.8.0)
cocoapods-keys (2.1.0)
This appears to be a duplicate of #67. However, I'm still not clear on how to resolve this issue.
Update: I figured out how to resolve this issue. :)
This error occurs when there are keys in the project that do not have values set for them (e.g. they were removed from the keychain directly, instead of via pod keys rm MyKey
).
To fix this, run bundle exec pod keys
to output a list of all keys in the project:
$ bundle exec pod keys
Keys for MyProject
├ DevelopmentAPIKey - my_development_api_key
├ StagingAPIKey -
└ ProductionAPIKey - my_production_api_key
Then, set (bundle exec pod set StagingAPIKey supersecretkeyvalue
) or remove (bundle exec pod rm StagingAPIKey
) any keys in the list that do not have a value set.
Maybe it would be good to remove null keys from a project automatically during pod install
? Or, maybe the error message could list out the orphaned/null keys?
I'm a big +1 to the idea of listing orphaned keys during pod install
. A nice little warning would be great!
Hey, it's so strange (maybe I did not read all documentation) that when I use;
plugin 'cocoapods-keys', {
:keys => [
"client-dev-key",
"client-pilot-key",
"client-prod-key",
]}
It throws same error so I delete all keys as @dtrenz said before in this thread then changed it to
plugin 'cocoapods-keys', {
:keys => [
"ClientDevKey",
"ClientPilotKey",
"ClientProdKey",
]}
It worked for me and parsed well.
This is the first time that I got this error and it appears because of indentation I guess.
@dtrenz Your solution works great 😄 Thanks!
@eliakorkmaz These key names are used to generate Objective-C properties, and a dash is not a valid character for those. Definitely a good idea for a warning here.