It just occurred to me while thinking about file upload to remote nodes via RemoteWebDriver or Grid for third party bindings via JSONWireProtocol that
while there may not be an exact need to upload files from an iOS device via the app being tested to some server in the cloud/internet, there could be useful case of storing/sending test data to the device for use in testing an app.
I haven't automated actual iOS apps so not sure if there's any facility built in by Apple already to transfer files to iOS device/simulator for testing. So if not, has there been thought of being able to do so with Appium? Or is that already available?
I was just thinking that if Appium doesn't have it yet, we could piggyback on the undocumented JSONWireProtocol command to send a (base64 encoded zip of a) file to the Selenium server. The Appium server can then base64 decode and unzip the file to temp storage on the iOS "device", if that was possible. And perhaps Appium would delete such temp files on server shutdown.
Once uploaded, how the file is used is simply up to the tester & the app being tested. The command would return the path (on the iOS device) to the transfered file.