小编Chr*_*ris的帖子

MyClass不可用:找不到此类的Swift声明 - 仅发布版本

我收到以下错误:

MyClass不可用:找不到此类的Swift声明

但我只是在Xcode中进行发布时才得到它... Debug工作正常.

谁知道怎么了?我正在运行6.3

xcode swift

25
推荐指数
4
解决办法
2万
查看次数

SSL固定和证书到期

此问题涉及在客户端应用程序中针对Web api和证书过期使用SSL Pinning.

场景:

我拥有example.com并且有一个托管api的子域,例如:api.example.com

我希望通过SSL使用api ,因此为子域创建了SSL证书.

获得证书后,我有:

  • 公共证书
  • 中级证书
  • 私钥

我的理解是我在我的网络服务器上安装了这些证书.

然后我希望我的客户端应用程序连接到api.为了减轻中间人攻击风格,我希望使用SSL Pinning,以便客户端只与我的api通信,而不是欺骗它的人.

为了引入客户端应用程序,我有两个选择,针对公共证书或中间证书.

假设我实现了这一点.

api.example.com上的证书到期时会发生什么?

我的理解是客户端应用程序将不再有效.

我是否需要再次重新生成一整套公共/中间/私人物品?然后在应用程序中添加新的公共或中间证书?

问题:

在api.example.com上的证书更新之前,我仍然希望客户端应用程序能够正常运行.当然,新的证书可以放在客户端应用程序中,但是推出需要时间.

我怎么处理这个?

我已经读过Google每个月都会更新他们的证书,但不知何故设法让公钥保持不变:如何在iOS上固定证书的公钥

如果可行,那么解决方案就是从服务器中提取公钥并根据本地存储的公钥进行检查......但谷歌如何做到这一点?

谢谢

克里斯

ssl certificate pinning

18
推荐指数
1
解决办法
7006
查看次数

最近AWS区域的客户端IP地址

我想从客户端设备上传一些数据到AWS,但我想上传到最近的AWS Region的S3 Bucket.

同样,我希望能够从最近的地区下载.

当然,我会在每个地区设置一个水桶

是否有一个我可以使用的系统可能需要客户端的IP地址,然后确定它是us-west-1,eu-west-1,eu-central-1,ap-northeast-1等?

问题的症结在于此.我上传的数据仅对一个人有用,它需要尽快找到那个人.

因此,如果我在英格兰,我上传一个文件,我的目标收件人目前在日本(因为他们可能在移动) - 上传到伦敦AWS区域的ping时间将比靠近日本的区域更高.

python amazon-s3

12
推荐指数
2
解决办法
739
查看次数

计算GPU上的彩色像素 - 理论

我有一个128 x 128像素的图像.

它分为8乘8格.

每个网格块包含16乘16像素.

需求

我想计算我的图像包含多少个黑色像素.

直截了当的方式:

可以通过逐行,逐列,整个图像并检查像素是否为黑色做到这一点.

GPU的方式

...但我想知道如果使用GPU,我可以将图像分解为块/块并计算每个块中的所有像素,然后对结果求和.

例如:

如果你看一下图片的左上角:

第一个块,'A1'(行A,列1)包含一个16乘16像素的网格,我知道通过手动计算,有16个黑色像素.

第二个块:'A2',(行A,列2)包含一个16乘16像素的网格,我知道通过手动计算,有62个黑色像素.

此示例的所有其他块都为空/空.

如果我通过我的程序运行我的图像,我应该得到答案:16 + 62 = 78黑色像素.

网格图

推理

据我所知,GPU可以并行运行大量数据,有效地在分布在多个GPU线程上的大量数据上运行一个小程序.我并不担心速度/性能,我只是想知道这是GPU可以/可以做的事情吗?

整个形象

parallel-processing computer-science gpu swift

11
推荐指数
1
解决办法
747
查看次数

本地mac AppEngine上没有名为Crypto.Cipher的模块

没有名为Crypto.Cipher的模块

当我尝试导入时

来自Crypto.Cipher导入AES

我的文件夹结构如下所示:

测试/

测试/ main.py

测试/ pycrypto-2.3

我运行构建并安装在pycrypto文件夹内,但我一直收到错误,任何想法?

google-app-engine pycrypto

9
推荐指数
1
解决办法
1万
查看次数

来自不同iPad的不同录制文件大小

我有两个iPad,特别是:A1489和A1566.

如果我录制天花板的视频1分钟,A1489的文件大小几乎总是A1566的一半.

结果视频中唯一的不同似乎是A1566具有更高的数据速率,我不明白为什么会这样?

我正在使用ACFoundation和AVCaptureSessionPreset1280x720.

任何人都可以阐明为何存在这种差异?

附加信息:两者的帧速率为每秒30帧.

谢谢

克里斯

avfoundation

9
推荐指数
1
解决办法
441
查看次数

将SCNView渲染到屏幕外缓冲区以生成图像

我有一个SCNView,它呈现我的场景.但是,我希望在保存时在不同的时间点获取几个屏幕截图.我最好的猜测是创建一个SCNRenderer并渲染场景指定不同的时间.我试过了,但是我的图像只是空白,这是我的代码,任何想法?:

-(void)test 
{
//First create a new OpenGL context to render to. 
NSOpenGLPixelFormatAttribute pixelFormatAttributes[] = {
    NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersionLegacy,
    NSOpenGLPFADoubleBuffer,
    NSOpenGLPFANoRecovery,
    NSOpenGLPFAAccelerated,
    NSOpenGLPFADepthSize, 24,
    0
};

NSOpenGLPixelFormat *pixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:pixelFormatAttributes];
if (pixelFormat == nil)
{
    NSLog(@"Error: No appropriate pixel format found");
}

NSOpenGLContext *context = [[NSOpenGLContext alloc] initWithFormat:pixelFormat shareContext:nil];

//set the renderer to render to that context
SCNRenderer *lRenderer = [SCNRenderer rendererWithContext:context.CGLContextObj options: nil];
lRenderer.scene = myscnview.scene;
lRenderer.pointOfView = [myscnview.pointOfView clone];

//render the scene
[lRenderer render];

//I think I …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c scenekit

8
推荐指数
1
解决办法
1764
查看次数

如何创建由 CVPixelBuffer 支持的 MTLTexture

生成由 CVPixelBuffer 支持的 MTLTexture 的正确方法是什么?

我有以下代码,但它似乎泄漏:

func PixelBufferToMTLTexture(pixelBuffer:CVPixelBuffer) -> MTLTexture
{
    var texture:MTLTexture!

    let width = CVPixelBufferGetWidth(pixelBuffer)
    let height = CVPixelBufferGetHeight(pixelBuffer)

    let format:MTLPixelFormat = .BGRA8Unorm


    var textureRef : Unmanaged<CVMetalTextureRef>?

    let status = CVMetalTextureCacheCreateTextureFromImage(nil,
                                                           videoTextureCache!.takeUnretainedValue(),
                                                           pixelBuffer,
                                                           nil,
                                                           format,
                                                           width,
                                                           height,
                                                           0,
                                                           &textureRef)

    if(status == kCVReturnSuccess)
    {
        texture = CVMetalTextureGetTexture(textureRef!.takeUnretainedValue())
    }

    return texture
}
Run Code Online (Sandbox Code Playgroud)

swift metal

8
推荐指数
1
解决办法
4465
查看次数

如何在SceneKit中使用SCNBufferBindingBlock?

我正在查看SceneKit的句柄绑定方法与SCNBufferBindingBlock回调,如下所述:

https://developer.apple.com/documentation/scenekit/scnbufferbindingblock

有没有人有一个如何工作的例子?

    let program = SCNProgram()
    program.handleBinding(ofBufferNamed: "", frequency: .perFrame) { (steam, theNode, theShadable, theRenderer) in

    }
Run Code Online (Sandbox Code Playgroud)

对我来说,它就像我可以在SCNNode上使用*.metal着色器而不必经历SCNTechniques的麻烦....任何接受者?

shader scenekit swift metal

8
推荐指数
1
解决办法
464
查看次数

SwiftUI和Unity

我试图将Unity视图集成到SwiftUI中,我有以下代码,但是当我运行该应用程序时,我没有任何输出,我知道SpriteKit和SceneKit是可能的,并且我的统一视图运行在标准的swift应用程序中,想知道swiftUI是否可能。

struct ContentView: View {
    var body: some View {
      UnityUIView()
  }
}

struct UnityUIView : UIViewRepresentable {

    func makeUIView(context: Context) -> UIView {
        let appDelegate = UIApplication.shared.delegate as? AppDelegate
        appDelegate.startUnity()
        return UnityGetGLView()!
    }

    func updateUIView(_ view: UIView, context: Context) {

    }
}
Run Code Online (Sandbox Code Playgroud)

我试图创建一个UIViewControllerRepresentable,但得到的结果是一样的,屏幕闪烁一次然后消失,我认为这是启动屏幕,因为我更改了调试颜色,没有骰子。

struct ContentView: View {
    var body: some View {
      TestUnityViewController()
  }
}

struct TestUnityViewController: UIViewControllerRepresentable {

  func makeUIViewController(context: Context) -> UIViewController {
    let vc = UIViewController()
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.startUnity()
    let unityView = …
Run Code Online (Sandbox Code Playgroud)

unity-game-engine swiftui

8
推荐指数
1
解决办法
155
查看次数