34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
# File 'fastlane_core/lib/fastlane_core/keychain_importer.rb', line 34
def self.set_partition_list(path, keychain_path, keychain_password: "", output: FastlaneCore::Globals.verbose?)
if Helper.backticks('security -h | grep set-key-partition-list', print: false).length > 0
command = "security set-key-partition-list"
command << " -S apple-tool:,apple:"
command << " -k #{keychain_password.to_s.shellescape}"
command << " #{keychain_path.shellescape}"
command << " 1> /dev/null"
Helper.show_loading_indicator("Setting key partition list... (this can take a minute if there are a lot of keys installed)")
UI.command(command) if output
Open3.popen3(command) do |stdin, stdout, stderr, thrd|
unless thrd.value.success?
err = stderr.read.to_s.strip
if err.include?("SecKeychainItemSetAccessWithPassword")
UI.important("")
UI.important("Could not configure imported keychain item (certificate) to prevent UI permission popup when code signing\n" \
"Check if you supplied the correct `keychain_password` for keychain: `#{keychain_path}`\n" \
"#{err}")
UI.important("")
UI.important("Please look at the following docs to see how to set a keychain password:")
UI.important(" - https://docs.fastlane.tools/actions/sync_code_signing")
UI.important(" - https://docs.fastlane.tools/actions/get_certificates")
else
UI.error(err)
end
end
end
Helper.hide_loading_indicator
end
end
|