小编Rhy*_*man的帖子

TLS clientAuth requires ExtKeyUsageClientAuth through whole certificate chain

I'm trying out TLS client authentication using go. It worked fine when I created a simple self-signed client certificate with ExtKeyUsageClientAuth set, but when a client tries to connect with a longer certificate chain:

CA -> intermediate -> client

I get the following error: x509: certificate specifies an incompatible key usage

The relevant calls are

handshake_server.go: processCertsFromClient()

verify.go: checkChainForKeyUsage()

and if I'm reading the code right it looks like every single certificate in my chain must have the client auth …

authentication ssl go x509

6
推荐指数
0
解决办法
3308
查看次数

NSAlert没有弹跳码头图标

如果您暂停了NSAlert应用程序在后台,您的停靠栏图标会开始弹跳并继续弹跳直到您切换回来.

我觉得这很烦人.

有谁知道如何禁用单个应用程序?

macos cocoa

5
推荐指数
1
解决办法
1263
查看次数

git 跟踪资源分叉吗?

每次替换.psd受版本控制的 Photoshop 文件时,我都会问自己这个问题。

您可以看到ls -lPS 在资源分支中创建了一个缩略图图标。

git macos version-control metadata

5
推荐指数
1
解决办法
1582
查看次数

适用于iOS的Google AnalyticsSDK 2.0是否符合崩溃报告?

在他们的网站Google AnalyticsSDK上没有提到这一点

我在谈论自动未捕获的异常处理:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [GAI sharedInstance].trackUncaughtExceptions = YES; // Enable 
  //...
}
Run Code Online (Sandbox Code Playgroud)

google-analytics ios

5
推荐指数
1
解决办法
1354
查看次数

使 go http 客户端与非标准 http 服务器一起工作

Shoutcast的服务器基本上讲HTTP,有一个重要的区别:他们响应GET请求以ICY 200 OK代替HTTP/1.1 200 OK

Go 不会有它,并且正确失败并显示错误malformed HTTP version "ICY"

但是,我想让事情发挥作用,并且想知道最好的方法是什么。到目前为止我的想法:

  1. 使用自定义 http.Transport.Proxy 更改ICYHTTP/1.1飞行中
  2. 一个做同样事情的进程外代理
  3. 重载http.ParseHTTPVersion(但 golang 没有函数重载)
  4. 复制整个http包,只是为了修改 ParseHTTPVersion

数字 1. 似乎最有吸引力,但我不知道如何尊重 http“范围”并实际修改给定 http 版本上的所有响应。这种事情http.Transport.Proxy能搞定吗?

任何人都可以给我任何指示吗?

audio shoutcast go

5
推荐指数
1
解决办法
854
查看次数

语法上的甜蜜快速回调来自c

我正在学习斯威夫特.我有一个C接口回调Swift-2代码:

let inputProc: @convention(c) (UnsafeMutablePointer<Void>, UnsafeMutablePointer<AudioUnitRenderActionFlags>, UnsafePointer<AudioTimeStamp>, UInt32, UInt32, UnsafeMutablePointer<AudioBufferList>) -> OSStatus = {
    (inRefCon, ioActionFlags, inTimeStamp, inBusNumber, inNumberFrames, ioData) in

    // do things here

    return noErr
}
Run Code Online (Sandbox Code Playgroud)

它很有用,但很难看,我编写这种代码的过程非常尴尬:我复制了回调的声明,= { (a, b, c, d, e) in然后添加,然后a, b, c在我发现它们的类型时用更好的名字替换元组中的s .

有什么办法可以将回调参数名称更接近其类型吗?
通过写作let inputProc = @convention(c) (inRefCon: UnsafeMutablePointer<Void>, ...)和让类型推断说出它排序?我猜测语法的尝试失败了.

Dan Beaulieu提出了使用a的伟大建议typealias.幸运的是,已经存在一个,我的代码变得更容易看到:

let inputProc: AURenderCallback = {
    (inRefCon, ioActionFlags, inTimeStamp, inBusNumber, inNumberFrames, ioData) in

    return noErr
}
Run Code Online (Sandbox Code Playgroud)

但现在参数类型比以往更神秘(尽管只有一个选项 - 点击即可).我开始怀疑我实际上不能用一个好的,本地化的参数声明来进行c-callback,这将 typealias是最好的解决方案.

c ffi swift swift2

5
推荐指数
0
解决办法
110
查看次数

如何将 docker 容器映像更新从 AWS ECR 部署到 ECS?

我是亚马逊 ECSdocker 的新手,不知道如何部署新的镜像。

我目前在 ECR 中创建了一个新图像

NAME_TAG=my-image-name:my-tag-v1
ECR=my-acct-number.dkr.ecr.us-east-1.amazonaws.com

docker build -t $NAME_TAG .
docker tag -f $NAME_TAG $ECR/$NAME_TAG
$(aws ecr get-login --region us-east-1) #log in
docker push $ECR/$NAME_TAG
Run Code Online (Sandbox Code Playgroud)

此时我不知道如何将新容器从 ECR 部署到我的集群。

我使用 Cloud Formation 模板创建了集群、任务和服务,但将TaskDefinition映像更新到$ECR/$NAME_TAG并运行堆栈更新最终会超时并因“服务不稳定”错误而失败。

如果我推送到 my-image-name:latest,我的集群实例拉下新镜像,但它们不会运行它,无论如何我想避免使用神秘latest标签。

我应该如何将新映像部署到 ECS?

amazon-ec2 amazon-web-services docker

5
推荐指数
1
解决办法
1670
查看次数

MPVolumeView Airplay按钮消失

我在Swift中创建了一个自定义视频播放器,AVPlayer并使用MPVolumeView了音量控制和AirPlay.视图初始化完美,但我遇到AirPlay按钮在内部消失的情况MPVolumeView.

加载视图时,MPVolumeView初始化没有问题

MPVolumeView初始化

当用户选择使用AirPlay时,MPVolumeView移除音量滑块并仅显示AirPlay,这是预期的.

Airplay已启用

问题出现在用户关闭UIViewController然后再次打开它以播放另一个视频时.Airplay保持启用状态,这是预期的行为.当用户选择关闭AirPlay时,视频将返回到物理设备上播放,但AirPlay按钮会被隐藏.

缺少AirPlay按钮

我甚至试图showsRouteButton为我设置为true MPVolumeView,但这对此没有影响.在这种情况下,可能导致AirPlay按钮隐藏的原因是什么?只有在用户开始播放视频时启用AirPlay,然后关闭AirPlay时才会出现此问题.

ios avplayer airplay mpvolumeview swift

5
推荐指数
0
解决办法
605
查看次数

macOS Catalina AudioServerPlugIn 安装

CoreAudio/AudioServerPlugIn.h.driver插件包必须安装在/Library/Audio/Plug-Ins/HAL/ 但是我不知道有任何文档说明如何让 CoreAudio 注意到新驱动程序的出现(或者在卸载时,它不存在)。在 Catalina [beta 7] 之前,大多数人都做过类似的事情

sudo killall coreaudiod

效果很好。但是在 Catalina 中,这不再起作用,我发现加载或卸载插件的唯一方法是重新启动机器,这对于用户级插件来说似乎是一种笨拙的方法。

那么还有别的方法吗?或者这是一个错误?

audio macos plugins core-audio macos-catalina

5
推荐指数
1
解决办法
934
查看次数

符号化 Swift Package Manager 构建

Swift Package Manager可以是构建 swift 项目的便捷方法,并且,如果您(删除它添加到二进制文件中的绝对工具链 @rpath),您甚至可以分发其构建。

但是SPM似乎没有生成.dSYM调试符号包,那么如何对崩溃报告进行符号化呢?

有没有比使用swift package generate-xcodeproj然后让 Xcode 创建构建和dSYMs 更好的方法,有效地将 SPM 简化为.xcodeproj简写?

macos xcode dsym swift-package-manager

5
推荐指数
1
解决办法
834
查看次数