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

Limit on launch arguments characters for iOS application

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

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

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

我用同样的方法解压它们。一两张小图片按预期工作,但如果我使用大图片,我会得到:

The operation couldn’t be completed. (FBSOpenApplicationErrorDomain error 1.)

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

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

$ sysctl kern.argmax
kern.argmax: 262144

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

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