限制iOS应用程序的启动参数字符

时间:2015-12-03 15:26:18

标签: ios xcode swift ui-testing xcode-ui-testing

我正在尝试将图片传递给UI测试。为此,我使用启动参数。

let bundle = NSBundle (forClass: self.dynamicType)
let images = ["img1", "img2"]
    .map {
        bundle.URLForResource($0, withExtension: "jpg")!
    }
    .map {
        NSData(contentsOfURL: $0)!
    }
    .map {
        $0.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: .allZeros))
    }

XCUIApplication().launchArguments= ["IMAGES", images.joinWithSeparator("_")]

我以同样的方式打开它们。一个或两个小图像按预期工作,但如果我使用大图片我得到:

  

无法完成操作。 (FBSOpenApplicationErrorDomain错误1。)

我可以传递一些任意数量的字符作为启动参数吗?

1 个答案:

答案 0 :(得分:2)

终端可以告诉您命令行的最大长度:

$ sysctl kern.argmax
kern.argmax: 262144

此值包括环境所需的空间。直接在参数中传递blob可能是一个坏主意。

您应该传递URL并阅读过程中文件的内容。