NodeJs wrapper for libimobiledevice
brew install libimobiledevice
brew install ideviceinstaller
Install via NPM:
npm install --save idevicekit
Gets the list of currently connected devices.
Promise
devices
An array of device's serialRetrieves the properties of the device identified by the given serial number. This is analogous to ideviceinfo
.
idevicekit.listDevices()
.ideviceinfo --help
to learn more
true
, use a simple connection to avoid auto-pairing with the device, Default: falsePromise
properties
An JSON Object of device's properties. Retrieves the list of packages present on the device. This is analogous to ideviceinstaller
.
serial The serial number of the device. Corresponds to the device ID in idevicekit.listDevices()
.
option Optional. The following options are supported, use ideviceinstaller --help
to learn more
Returns: Promise
Resolves with: packages
An array of app package
Takes a screenshot in PNG format using idevicescreenshot
.
Promise
screencap
An PNG stream.Installs the IPA on the device, This is analogous to ideviceinstaller -i <ipa>
Promise
output
output of install commandRetrieves syslog on the device, This is analogous to idevicesyslog
idevicekit.listDevices()
.Promise
emitter
emit "log" event when log comeidevicesyslog will continue running until a 'close' event emit to emitter
reboot using idevicediagnostics restart
.
Promise
success
True if successreboot using idevicediagnostics shutdown
.
Promise
success
True if successBasic device information from Apple, such as CPU, RAM, Official Name
let co = require('co');
let idevicekit = require('./index');
let fs = require('fs');
co(function* () {
let devices = yield idevicekit.listDevices();
for (let device of devices) {
let properties = yield idevicekit.getProperties(device);
let battery = (yield idevicekit.getBattery(device)).level;
let resolution = yield idevicekit.getResolution(device);
let status = yield idevicekit.getDeveloperStatus(device);
console.log(`${device}: ${properties['DeviceName']}`);
console.log(` model: ${properties['ProductType']}`);
console.log(` battery: ${battery}`);
console.log(` resolution: ${resolution['width']}x${resolution['height']}`);
console.log(` status: ${status}`);
let screenshotStream = yield idevicekit.screencap(device);
screenshotStream.pipe(fs.createWriteStream(device + '.png'));
idevicekit.syslog(device).then((emitter) => {
emitter.on('log', (data) => {
console.log(JSON.stringify(data));
});
setTimeout(() => {
emitter.emit('close');
}, 10000);
});
}
}).catch((err) => {
console.log(err);
});