Apple Wallet Pass服务器搭建报错求助:Gem安装与启动失败
没问题,我帮你拆解这两个问题,逐个解决:
1. 解决yaml gem安装失败的问题
- YAML是Ruby自带的标准库组件,根本不需要通过gem命令单独安装,你在安装列表里加入
yaml才触发了这个报错。 - 重新执行安装命令,去掉多余的
yaml即可:sudo gem install sinatra sequel sqlite3 rubyzip rack json terminal-table
2. 解决pass_server_ctl的重定向禁止错误
这个报错是因为Ruby的open-uri模块默认禁止从HTTP协议重定向到HTTPS协议,而jsonip.com现在会自动把HTTP请求跳转到HTTPS地址。你有两种解决方式:
方法一:直接修改请求地址(最简单)
打开lib/pass_server_ctl文件,找到第30行左右的http://jsonip.com,把它替换成https://jsonip.com/,这样就不会触发重定向逻辑,直接请求HTTPS地址即可。
方法二:允许跨协议重定向
如果不想修改地址,可以调整open-uri的调用参数,让它允许跨协议重定向。找到文件里setup_hostname方法中调用open的代码块,添加allow_redirections: :all参数:
原来的代码大概是这样:
open("http://jsonip.com") do |f| # 原有处理逻辑 end
修改后:
open("http://jsonip.com", allow_redirections: :all) do |f| # 原有处理逻辑 end
这样open-uri就会允许从HTTP跳转到HTTPS的重定向操作了。
内容的提问来源于stack exchange,提问作者chris
相关产品推荐
相关产品推荐

