为了构建一个iOS项目(在XCode中),我需要导入我的同事的公钥和私钥以获取代码签名身份,但我无法这样做,因为我在Keychain Access中收到错误消息"发生.无法导入项目./无法检索此项目的内容"
详细信息:
我从同事的电脑上拿了两把钥匙,把钥匙扣作为两个文件导出:
Roomer Inc.p12(私钥)
Roomer Inc.pem(公钥)
当他导出这些时,他将密码留空(虽然我们也尝试使用密码"test"并得到相同的结果).
当我双击Roomer Inc.p12(私钥)时,它会在Keychain Access中打开并让我选择钥匙串(默认情况下选择"登录")
我点击"添加",然后提示我输入钥匙串的密码(我留空)
接下来我总是在Keychain访问中看到此消息:

但是,尽管出现此消息,但当我单击"确定"时,我会看到"Roomer Inc"的新私钥条目.请注意,此条目是"登录"键链中的私钥,正如我所料,但没有到期日期(应该吗?)
接下来,对于Roomer Inc.pem文件(公钥),我被要求选择钥匙串("登录"),然后点击添加
然后,我也得到"发生错误.无法导入项目./该项目的内容无法检索"公共密钥的消息.但是在这种情况下(与私钥不同),我没有看到任何与我刚添加的内容相对应的条目.
因此,看起来私钥条目可能或可能不正常(我无法验证),并且如果没有此错误消息,则无法在密钥链中安装Roomer的公钥条目.请注意,我还尝试使用security import命令导入公钥:
$ security import Roomer\Inc.pem -f pkcs12~/Library/Keychains/login.keychain
1键进口.
当我这样做时,虽然命令返回"1 key import",但我没有在Keychain Access窗口中看到"Roomer Inc"的公钥(我关闭了Keychain Access并重新打开它).
无论哪种方式,我们都发现这是我们的拦截器.(当然,症状是XCode项目不会为AdFoc配置文件构建,以便与TestFlight一起使用).我没有关于XCode构建和TestFlight设置的其他步骤,因为我们认为核心问题与导入密钥有关,如上所述.
application.js由于某些未知原因,当我在浏览器中按 F5 时,Rails 7(开发环境)不会自动获取更改。该位置application.js是默认的。我几乎使用默认设置。
当我运行服务器时,它从某个缓存版本中获取 JavaScript。我需要明确地rails assets:precompile使其发挥作用。
导入映射看起来标准:
# Pin npm packages by running ./bin/importmap
pin "application", preload: true
...
Run Code Online (Sandbox Code Playgroud)
布局文件似乎也很标准:
<!DOCTYPE html>
<html>
<head>
<title>Whatever</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="<%= image_path('favicon.svg') %>">
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
<%= javascript_importmap_tags %>
</head>
...
Run Code Online (Sandbox Code Playgroud)
config.importmap.sweep_cache = true我尝试在我的(根据 importmap 文档)中进行设置development.rb,但似乎没有效果。
此时我非常绝望,无法理解为什么我需要rails assets:precompile在我的开发环境中这样做。
另外,我没有在“localhost”域上运行我的应用程序,它是在类似dev.server-somewhere.com(因此可以从任何地方访问)的 SSH 重定向上运行我的应用程序,类似于 ngrok。不确定这是否是问题的原因。
澄清一下:我正在寻找没有实时刷新功能的功能,只需使用 F5 页面刷新的标准方法即可。
在 2021 或 2022 年创建的新 Rails 7 应用程序,当我单击带有 的表单时data-turbo-confirm,不会显示警报消息。
<%= form_with url: root_path(), data: {\'turbo-confirm\': "Are you sure you want to submit this form?"},\n method: :delete do |f| %>\n <%= f.submit "Delete".html_safe, class: "delete-apple-button btn btn-primary btn-sm" %>\n<% end %>\n\n\n<br />\n<%= turbo_frame_tag "apples-list" do %>\n nothing has happened yet\n<% end %>\nRun Code Online (Sandbox Code Playgroud)\n\n页面加载到:
\n\n当您单击删除时,不会显示任何警报:
\n\n预期结果:\n\xe2\x80\xa2\xc2\xa0确认按钮操作的警报消息
\n实际结果:\n\xe2\x80\xa2 没有显示警报
\n这是https://github.com/hotwired/turbo-rails/issues/122的伴侣
复制应用程序代码:https://github.com/jasonfb/TR001
使用 Rails 6.1.3
设计4.7.3
涡轮轨道0.5.9
症状 1:
-- 使用 Turbo-Rails + Devise
当我单击“登录”时,表单会提交,但页面不会重新加载。
第 1 步:转到
/用户/登录
输入一个好的用户名和密码(您可以注册或在命令行上创建一个)
点击“登录”
在后端,请求被处理甚至重定向,但重定向并未在前端发生。即使您的页面挂起且未重定向,您(用户)实际上已登录。
结果:页面挂起。预期结果:Turbo Rails 正确重定向
症状2
当我单击“注销”时,页面不执行任何操作。在后端,我实际上已注销,但页面没有更改。如果我重新加载,我会看到我现在已注销
第 1 步:登录
请注意,按钮保持“灰色”(单击),请求在后端处理:
结果:页面挂起
预期结果:用户注销后页面跳转
用户实际上已注销,但页面挂起并且不重定向。
红宝石 2.7.4 导轨 6.1.4.1
注意:我的应用程序中缺少package.json密钥engines
Heroku 在构建过程中失败并出现此错误
这个提交是一个空的提交,位于我昨天成功推送的 SHA 之上(我现在已经检查了两次),所以我怀疑这是一个平台问题,或者不知何故,node-sass 昨天被弃用或撤回了?
我怎样才能解决这个问题?
remote:
remote: ERROR in ./app/javascript/require_bootstrap.scss
remote: Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
remote: ModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
**remote: Error: Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (93)**
remote: For more information on which environments are supported please see:
remote: https://github.com/sass/node-sass/releases/tag/v4.14.1
remote: at module.exports (/tmp/build_1c436dcf/node_modules/node-sass/lib/binding.js:13:13)
remote: at Object.<anonymous> (/tmp/build_1c436dcf/node_modules/node-sass/lib/index.js:14:35)
remote: at Module._compile (/tmp/build_1c436dcf/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
remote: at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
Run Code Online (Sandbox Code Playgroud) 我在 MySQL on Rails 6.0.2.2、RSpec 4.0.0.rc1、Ruby 2.6.4 上遇到了这个极其奇怪的间歇性问题
在两台独立的 Mac 上,一台运行 macOS Mojave,另一台运行 MacOS Catalina
有趣的是,运行 Catalina 的 Mac 似乎很少这样做,尽管它仍然这样做。失败是间歇性的,似乎在套件中的另一个失败之后立即发生,但随后经常在后续运行中继续出现(大约一半的测试套件),即使我已经修复了最初失败的规范。
1) Template
Failure/Error: _query(sql, @query_options.merge(options))
ActiveRecord::StatementInvalid:
Mysql2::Error: MySQL client is not connected
# /Users/jason/.rvm/gems/ruby-2.6.4/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `_query'
# /Users/jason/.rvm/gems/ruby-2.6.4/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `block in query'
# /Users/jason/.rvm/gems/ruby-2.6.4/gems/mysql2-0.5.3/lib/mysql2/client.rb:130:in `handle_interrupt'
# /Users/jason/.rvm/gems/ruby-2.6.4/gems/mysql2-0.5.3/lib/mysql2/client.rb:130:in `query'
# /Users/jason/.rvm/gems/ruby-2.6.4/gems/rspec-wait-0.0.9/lib/rspec/wait.rb:46:in `block (2 levels) in <top (required)>'
# ------------------
# --- Caused by: ---
# Mysql2::Error:
# MySQL client is not connected
# /Users/jason/.rvm/gems/ruby-2.6.4/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `_query'
Run Code Online (Sandbox Code Playgroud) 使用Chrome驱动程序的Capybara设置:
spec_helper
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Capybara.javascript_driver = :chrome
Run Code Online (Sandbox Code Playgroud)
我似乎得到了
EOFError:
end of file reached
Run Code Online (Sandbox Code Playgroud)
在我使用chrome驱动程序运行它们的所有 Javascript测试中.
这似乎是在2016年10月27日左右开始的
与恶作剧一起运行他们工作正常.
•当它们崩溃时,它们似乎打开了多个挂起(但不退出)的chrome实例,请参阅http://screencast.com/t/Worwl9d6Iuhr截图示例
•这些似乎只影响我的javascript规范(:js =>在Capybara中为true)
•重新启动我的机器无法解决问题
•我的Chrome Mac OS X目前为54.0.2840.71
•我不确定子点子版本71何时发布,因为Chrome当然没有告诉您,或者甚至似乎在某种更新历史记录中提供它.公共信息称子点版本54.0.2840于2016-10-12发布,但未指定何时发布子点版本71
•我可以重现我在master上的代码的效果,同样,我有一个特定的内存,在本周早些时候使用Chrome驱动程序运行这些规范,所以我强烈怀疑Chrome在这里做了一个子点发布,打破了这个.
如果有人能证实我会很感激.否则,如果我发现当地问题,我会在这里发布答案.
•Capybara 2.7.1
•selenium-webdriver 2.53.0
•我将Chromedriver可执行文件放在我的机器中/usr/local/bin/chromedriver[这是正确的 - 我似乎有一个较旧的/Users/jason/bin/chromedriver?]
$ which chromedriver
/usr/local/bin/chromedriver
$ /usr/local/bin/chromedriver -v
ChromeDriver 2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b)
我们在Rails 4.1应用程序中看到了一个不幸的,可能是基于浏览器的CSRF令牌真实性问题.我们在这里发布它是为了询问社区其他人是否也看到它.
请注意,大多数错误报告工具(如Honeybadger)会自动禁止ActionController :: InvalidAuthenticityToken,因此您通常不会在错误报告工具中看到问题,除非您不想看到它.
这是问题所在,这不是一个发展问题 - 这是一个尚未被诊断出来的生产问题.
我们看到的例外是在我们网站正常登录时的ActionController :: InvalidAuthenticityToken.仔细检查表单发送的authenticity_token和会话的_csrf_token(我们使用active_record_store作为我们的session_store设置),它们只是不匹配.经过直接检查,我可以断定它们是完全不同的代币,但我不知道为什么.
这不是一个简单的新手开发人员问题,请不要回答有关如何将CSRF令牌从客户端传递到服务器或如何在我的控制器上跳过伪造保护的基本答案.我不感兴趣听到任何一个有这两个答案的人:你不知道你在说什么,你不明白问题的深度和复杂性.我只对收听流量较高的网站的人有兴趣,他们可以确认这种情况发生在非无关紧要的访问者身上(奇怪的是,似乎比其他浏览器更频繁地影响某些浏览器.)
我们广泛地看到这个问题,可能约占我们高流量网站的1-2%.我只在生产中看到它,我无法在开发中重现它.
我在IE 11和Edge浏览器上看到的最多(你会注意到Rails 4.1在IE 11和Edge之前发布),但在Android上的Chrome上也是如此,偶尔也会在移动Safari上发布.
我们的Cache-control标头设置如下:
Cache-Control: max-age=0, private, must-revalidate
这是一个关于在规范中使用 React refs 的问题。具体来说,我在浏览器中看到的行为与在测试中运行时看到的行为不同。
// app_container.test.js
import React from 'react'
import ReactDOM from 'react-dom'
import AppContainer from "./app_container"
import { render, fireEvent, waitForElement, cleanup, wait } from '@testing-library/react'
import '@testing-library/jest-dom/extend-expect'
import axiosMock from 'axios'
import { useAsync } from "react-use"
afterEach(cleanup);
test("renders", () => {
const { getByTestId } = render(<AppContainer />);
expect(getByTestId("app-container")).toHaveClass("app-container");
});
test("when mounted, it loads the rings", async () => {
jest.setTimeout(15000);
const { getByTestId } = render(<AppContainer />);
const container = getByTestId('app-container')
await wait(() => expect(getByText("Abc")).toBeInTheDocument()); …Run Code Online (Sandbox Code Playgroud)