小编Dav*_*nes的帖子

在构建静态库时,如何从'tests'文件夹中的集成测试链接Rust crate?

我正在Rust中构建一个将从C/C++代码调用的库.Cargo.toml配置为将包传输为静态库:

[lib]
crate-type = ["staticlib"]
Run Code Online (Sandbox Code Playgroud)

我有一个测试tests/integration_test.rs:

extern crate mylibrary;

#[test]
fn it_works() {
    hello_world();   // Defined in 'mylibrary'.
}
Run Code Online (Sandbox Code Playgroud)

但是,在运行测试时cargo test,会输出以下错误:

error[E0463]: can't find crate for `mylibrary`
 --> tests\integration_test.rs:1:1
  |
1 | extern crate mylibrary;
  | ^^^^^^^^^^^^^^^^^^^^^ can't find crate
Run Code Online (Sandbox Code Playgroud)

如果我从那时删除staticlib配置行,Cargo.toml测试构建并运行正常.

我有两种可能性:

  1. 在以不同方式运行测试时,是否需要配置包的构建(即,它不构建静态库)?

  2. 我是否需要在测试中以不同方式链接静态库包(即好像它是系统C库)?

从文档中不清楚配置此设置的正确方法是什么,或者如何去做.

static-libraries rust rust-cargo

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

在iPhone应用程序中使用REST API时的安全性

我知道以前曾以各种形式提出过这个问题.但是,我不是在寻找"使用https"的答案.我已经在使用HTTPS了,我并不担心有效载荷来回传输的敏感性.

但是,我正在处理的iPhone应用程序正在与我构建的REST API进行通信(我已经控制了应用程序和服务器 - 因此欢迎任何建议).

我使用OAuth2协议进行身份验证,这意味着我的"API密钥"是客户端ID和客户端密钥的组合,需要传输即可获取access_token.之后,使用access_token包含请求主体的HMAC的头部(使用客户端秘密作为密钥)将所有请求发送到服务器.这种添加的唯一原因是有人无法使用JUST进行API请求access_token.

我正在谈论的API将在我发布应用程序时公开.所以我不一定担心别人能够对它进行API调用.

我关心的是:

  • 人们可以使用我的应用程序的客户端凭据进行API调用(这意味着我无法在服务器端检测到它不是来自我的应用程序)
  • 人们可以滥用我的客户ID允许他们拥有的其他范围,而传统的API用户也不会

我的猜测是,这个问题并没有真正的解决方案(除了使用UIWebView并制作一个美化的webapp),但我想我还是会在这里问一下.

如果应用程序需要使用客户端ID /客户端密码,您能想到保护客户端ID /客户端密钥的方法吗?

security iphone encryption

4
推荐指数
1
解决办法
3417
查看次数

如何按价格值对SKProduct数组进行排序

我试图在发送产品ID列表后对从Apple Server收到的SKProduct数组进行排序.

我想通过使用以下内容进行排序:

NSSortDescriptor *lowestPriceToHighest = [NSSortDescriptor sortDescriptorWithKey:@"self.price" ascending:YES];
NSArray *sortedProducts = [products sortedArrayUsingDescriptors:[NSArray arrayWithObject:lowestPriceToHighest]];
Run Code Online (Sandbox Code Playgroud)

但我收到错误消息:Unable to access variable "lowestPriceToHighest" 我的排序描述符是否被错误地定义了?

sorting nsarray storekit in-app-purchase ios

1
推荐指数
2
解决办法
2245
查看次数