一、材料准备
1、P8文件:苹果后台生成证书那里的key那里生成,这个文件只可以下载一次,保存好
2、生成JWT token 的脚本
二、脚本siwa.rb
ruby
#!/usr/bin/env ruby
require 'jwt'
require 'openssl'
require 'optparse'
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: siwa.rb [options]"
opts.on("-k", "--key PATH", "Path to the AuthKey file") do |v|
options[:key] = v
end
opts.on("-t", "--team-id TEAM_ID", "Your Apple Team ID") do |v|
options[:team_id] = v
end
opts.on("-b", "--bundle-id BUNDLE_ID", "Your App's Bundle ID") do |v|
options[:bundle_id] = v
end
opts.on("-h", "--help", "Prints this help") do
puts opts
exit
end
end.parse!
if options[:key].nil? || options[:team_id].nil? || options[:bundle_id].nil?
puts OptionParser.new.help
exit
end
pem_content = File.read options[:key]
ecdsa_key = OpenSSL::PKey::EC.new pem_content
headers = {
'kid' => options[:team_id],
}
claims = {
'iss' => options[:team_id],
'iat' => Time.now.to_i,
'exp' => Time.now.to_i + 86400*180,
'aud' => 'https://appleid.apple.com',
'sub' => options[:bundle_id],
}
token = JWT.encode claims, ecdsa_key, 'ES256', headers
puts token
三、运行生成token
1、把脚本放在桌面,命令行执行:chmod +x /Users/say/Desktop/siwa.rb
2、cd到桌面,运行:./siwa.rb -h
如果报错:
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- jwt ( LoadError )
from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from ./siwa.rb:3:in `<main>'
说明电脑上没有JWT
3、安装JWT:sudo gem install jwt
4、执行:./siwa.rb -h
终端会输出:
Usage: siwa.rb [options]
-k, --key PATH Path to the AuthKey file
-t, --team-id TEAM_ID Your Apple Team ID
-b, --bundle-id BUNDLE_ID Your App's Bundle ID
-h, --help Prints this help
5、运行:./siwa.rb -k /Users/5T3.p8 -t 684MCOO9T3 -b com.kcys.sx
就会生成JWT 字符串