Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS应用程序的启动参数字符限制_Ios_Xcode_Swift_Ui Testing_Xcode Ui Testing - Fatal编程技术网

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

iOS应用程序的启动参数字符限制,ios,xcode,swift,ui-testing,xcode-ui-testing,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 {

我正在尝试将图像传递给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("_")]
我用同样的方法打开它们。一张或两张小图片可以正常工作,但如果我使用大图片,我会得到:

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


是否有任意数量的字符可以作为启动参数传递?

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

$ sysctl kern.argmax
kern.argmax: 262144
此值包括环境所需的空间。直接在参数中传递BLOB可能是个坏主意

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("_")]

在此过程中,您应该传递URL并读取文件内容。

谢谢您的回答。我想避免在真正的设备上测试时,将虚假资源打包或通过网络下载。最后,我使用“运行脚本”在构建“调试”时复制图像。