Giter Club home page Giter Club logo

node-ios-device's Introduction

node-ios-device

Queries connected iOS devices, installs apps, and relays log output.

Prerequisites

node-ios-device only works on macOS 10.11 or newer. It use N-API version 3 and requires Node.js 10.13.0 LTS or newer.

Installation

npm install node-ios-device

CLI

$ node-ios-device

USAGE: node-ios-device <command> [options]

COMMANDS:
  forward               Connects to a port on an device and relays messages
  i, install            Install an app on the specified device
  ls, list, devices     Lists connected devices
  watch, track-devices  Listens for devices to be connected/disconnected

GLOBAL OPTIONS:
  --no-color     Disable colors
  -h, --help     Displays the help screen
  -v, --version  Outputs the version

Example

import iosDevice from 'node-ios-device';

// get all connected iOS devices
const devices = iosDevice.list();
console.log('Connected devices:', devices);

// continuously watch for devices to be connected or disconnected
const handle = iosDevice.watch();
handle.on('change', devices => {
    console.log('Connected devices:', devices);
});
handle.on('error', console.error);

// install an iOS app
iosDevice.install('<device udid>', '/path/to/my.app');
console.log('Success!');

// relay output from a TCP port created by an iOS app
iosDevice
    .forward('<device udid>', 1337)
    .on('data', console.log)
    .on('end', () => console.log('Device disconnected'));

API

list()

Retrieves an array of all connected iOS devices.

Returns an Array of device objects.

Device objects contain the following information:

  • udid - The device's unique device id (e.g. "a4cbe14c0441a2bf87f397602653a4ac71eb0336")
  • name - The name of the device (e.g. "My iPhone")
  • buildVersion - The build version (e.g. "10B350")
  • cpuArchitecture - The CPU architecture (e.g. "armv7s")
  • deviceClass - The type of device (e.g. "iPhone", "iPad")
  • deviceColor - The color of the device (e.g. "Black", "White")
  • hardwareModel - The device module (e.g. "N41AP")
  • modelNumber - The model number (e.g. "MD636")
  • productType - The product type or model id (e.g. "iPhone5,1")
  • productVersion - The iOS version (e.g. "6.1.4")
  • serialNumber - The device serial number (e.g. "XXXXXXXXXXXX")

There is more data that could have been retrieved from the device, but the properties above seemed the most reasonable.

watch()

Continuously retrieves an array of all connected iOS devices. Whenever a device is connected or disconnected, the 'change' event is emitted.

Returns an EventEmitter-based Handle instance that contains a stop() method to discontinue tracking devices.

Event: 'change'

Emitted when a device is connected or disconnected.

  • {Array<Object>} devices - An array of devices

Example:

const handle = iosDevice.watch()
    .on('change', console.log);

setTimeout(() => {
    // turn off tracking after 1 minute
    handle.stop();
}, 60000);

install(udid, appPath)

Installs an iOS app on the specified device.

  • {String} udid - The device udid
  • {String} appPath - The path to the iOS .app

Currently, an appPath that begins with ~ is not supported.

The appPath must resolve to an iOS .app, not the .ipa file.

forward(udid, port)

Relays messages from a server running on the device on the specified port.

  • {String} udid - The device udid
  • {String} port - The TCP port listening in the iOS app to connect to

Returns a Handle instance that contains a stop() method to discontinue emitting messages.

NOTE: forward() only supports USB connected devices. Wi-Fi-only connected devices will not work.

Event: 'data'

Emitted for each line of output. Empty lines are omitted.

  • {String} message - The log message.

Event: 'end'

Emitted when the device is physically disconnected. Note that this does not unregister the internal callback. You must manually call handle.stop() to cleanup.

Example:

const handle = iosDevice
	.forward('<device udid>', 1337)
    .on('log', console.log)
    .on('end', () => console.log('End of forward'));

setTimeout(function () {
	// turn off logging after 1 minute
	handle.stop();
}, 60000);

Advanced

Debug Logging

node-ios-device exposes an event emitter that emits debug log messages. This is intended to help debug issues under the hood. The average user will never need to use this, however it would be handy when filing a bug.

iosDevice.on('log', msg => console.log(msg));

Alternatively, node-ios-device uses the amazing snooplogg debug logger where you simply set the SNOOPLOGG environment variable to node-ios-device (or *) and it will print the debug log to stdout.

License

This project is open source and provided under the Apache Public License (version 2). Please make sure you see the LICENSE file included in this distribution for more details on the license. Also, please take notice of the privacy notice at the end of the file.

node-ios-device's People

Contributors

anulman avatar caspahouzer avatar cb1kenobi avatar ewanharris avatar feons avatar garymathews avatar greenkeeper[bot] avatar ingo avatar m1ga avatar orthographic-pedant avatar ronin11 avatar sgtcoolguy avatar skypanther avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

node-ios-device's Issues

not exiting and CPU to 100%

With the latest versions, when requesting devices, node does stop and CPU gets to 100%
This does not happen all the time but really often.

If i run the debugger i get an exception on CFRunLoopStop

This does not happen if i roll back to 0.10.0

Kills Node After About a Day with a Large Number of Devices Attached

So, I have two MacMini hubs running on El Capitan (10.11.4) that have 30-40 iDevices attached each.

After roughly a day of running, my program fails silently. Because it is a daemon, it's immediately restarted but fails again and again at the place I start tracking iDevices. Looking through the system logs, it seems tied to this module.

Also worth noting is that this program runs without fail on identical hubs with only Androids attached.

Any insight is greatly appreciated. Absurdly long crash dump is attached.
crashdump.txt

Crashing when accessing invalid address

This may not be related to node-ios-device, but according to the Console.app, node-ios-device has something to do with it.

I have an electron app and I am attempting to use the trackDevices or just devices (running on a poll to avoid blocking the UI thread) functions to detect connected iOS devices.

I've witnessed the following:

  • Crashes on start with 2 phones connected
  • Crashes with one phone connected
  • Works with one phone connected
  • Doesn't work when connecting a phone
  • etc
    The problems occur when disconnecting a phone. In some cases, the app crashes and I am left with no help in the node-console, but a dump in Console.app.

Here is the relevant bit:

Process:               ElectronReact Helper [3956]
Path:                  /Users/USER/Documents/*/ElectronReact.app/Contents/Frameworks/ElectronReact Helper.app/Contents/MacOS/ElectronReact Helper
Identifier:            com.electron.electronreact.helper
Version:               0
Code Type:             X86-64 (Native)
Parent Process:        Electron [3951]
Responsible:           Electron [3951]
User ID:               501

Date/Time:             2015-10-02 16:10:42.714 -0400
OS Version:            Mac OS X 10.10.5 (14F27)
Report Version:        11
Anonymous UUID:        BA4501D5-37D1-933C-C440-2D46A4724A31

Sleep/Wake UUID:       BB8C9647-D88F-4BEB-A068-BD8E7FF1C1F0

Time Awake Since Boot: 15000 seconds
Time Since Wake:       4600 seconds

Crashed Thread:        0  CrRendererMain  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0xffffffffffffffff

VM Regions Near 0xffffffffffffffff:
--> shared memory          00007fffffed6000-00007fffffed7000 [    4K] r-x/r-x SM=SHM  


Thread 0 Crashed:: CrRendererMain  Dispatch queue: com.apple.main-thread
0   libnode.dylib                   0x0000000107ec6734 v8::internal::Context::native_context() + 4
1   libnode.dylib                   0x0000000108064723 v8::internal::Isolate::native_context() + 19
2   libnode.dylib                   0x0000000107d9518f v8::Object::New(v8::Isolate*) + 63
3   node_ios_device_v46.node        0x000000011602fd66 Device::Device(_am_device*&) + 68 (nan_implementation_12_inl.h:183)
4   node_ios_device_v46.node        0x000000011602e836 on_device_notification(am_device_notification_callback_info*, void*) + 304 (ios-device.cpp:224)
5   com.apple.mobiledevice          0x00000001160b971f _AMDDeviceAttachedCallbackv3 + 285
6   com.apple.mobiledevice          0x000000011604349c _USBMuxCustomRunLoopSourcePerformCallback + 1396
7   com.apple.CoreFoundation        0x00007fff8d4c6a01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
8   com.apple.CoreFoundation        0x00007fff8d4b8b8d __CFRunLoopDoSources0 + 269
9   com.apple.CoreFoundation        0x00007fff8d4b81bf __CFRunLoopRun + 927
10  com.apple.CoreFoundation        0x00007fff8d4b7bd8 CFRunLoopRunSpecific + 296
11  com.apple.Foundation            0x00007fff8ac10b29 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 278
12  Electron Framework              0x0000000103d0a444 0x103bab000 + 1438788
13  Electron Framework              0x0000000103d09c1c 0x103bab000 + 1436700
14  Electron Framework              0x0000000103d3f973 0x103bab000 + 1657203
15  Electron Framework              0x0000000103d2fe8d 0x103bab000 + 1592973
16  Electron Framework              0x00000001047166f0 0x103bab000 + 11974384
17  Electron Framework              0x000000010418529c 0x103bab000 + 6136476
18  Electron Framework              0x00000001041848f6 0x103bab000 + 6134006
19  Electron Framework              0x0000000103bad44d AtomMain + 77
20  com.electron.electronreact.helper   0x0000000103ba8eea main + 58
21  libdyld.dylib                   0x00007fff81f8d5c9 start + 1

Is this something that can be caught in C++ to avoid accessing a "connected" device when it is in fact disconnected? Am I completely off in my diagnosis?

Any help would be appreciated!

Can I convert CFData to Key

Hi,

I would like to use RSA keys generate by IOS in node to encrypt the Data from IOS we can send CFData and I would like to convert CFData to Seckey and encrypt a plain text

.trackDevices fails about one tenth of the time.

Devices being added or removed are not noticed roughly 1/10 of the time. I'm not sure what other information to provide along with this.

I am using an ES7 async function as the callback for trackDevices, if that's at all relevant.

Feature request: Return devices connected via wifi.

Return devices connected via wifi.

From documentation: "Note that only devices connected via a USB cable will be returned. Devices connected via Wi-Fi will not be returned. The main reason we do this is because you can only relay the syslog from USB connected devices. This restriction be lifted in the future."

1.4.0 missing bundled dependency node-pre-gyp's dependencies

in 1.3.3, the package publish to npm contains node-pre-gyp(bundled dependency)'s dependencies, but in 1.4.0, only node-pre-gyp is inside, but its dependencies are missing. it will install fail in some situation because of find unmatched dependencies.

image

An in-range update of debug is breaking the build 🚨

Version 3.2.0 of debug was just published.

Branch Build failing 🚨
Dependency debug
Current Version 3.1.0
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

debug is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build passed (Details).
  • continuous-integration/jenkins/branch: This commit cannot be built (Details).

Release Notes 3.2.0

A long-awaited release to debug is available now: 3.2.0.

Due to the delay in release and the number of changes made (including bumping dependencies in order to mitigate vulnerabilities), it is highly recommended maintainers update to the latest package version and test thoroughly.


Minor Changes

Patches

Credits

Huge thanks to @DanielRuf, @EirikBirkeland, @KyleStay, @Qix-, @abenhamdine, @alexey-pelykh, @DiegoRBaquero, @febbraro, @kwolfy, and @TooTallNate for their help!

Commits

The new version differs by 25 commits.

There are 25 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Crash without error message in the Electron application.

After about 1 week of debugging to figure out the cause of the application closing itself without any error message, I discovered that the main cause of crashing is from the node-ios-device library.
Everything works normally, but after about 1 hour, a crash occurs. What I think is strange is that a crash occurs even iosDevice.watch() was not called. Or just by importing the node-ios-devices library can a crash occur.

Sometimes, I got this message after crashing as well.

[21194:0607/225605.295914:FATAL:message_pump_kqueue.cc(387)] : Bad file descriptor (9)

This is a great library, I would appreciate it if you could show me how to fix this problem. (bow)

�Reproduction: https://github.com/zcmgyu/crash-electron-node-ios-device/blob/master/main.js#L22-L28

const handle = iosDevice.watch();
  handle.on('change', devices => {
    console.log('Connected devices:', devices);
  });
  handle.on('error', console.error);

  iosDevice.on('log', msg => console.log(msg));

This is logs output from iosDevice.on('log')

$ electron .
Creating device list with 1 devices
Connected devices: [
  {
    udid: 'XXXX',
    interfaces: [ 'Wi-Fi' ],
    name: 'ZC X',
    buildVersion: '17F75',
    cpuArchitecture: 'arm64',
    deviceClass: 'iPhone',
    deviceColor: 'Black',
    hardwareModel: 'D22AP',
    modelNumber: 'MQAY2',
    productType: 'iPhone10,3',
    productVersion: '13.5',
    serialNumber: 'FK1VVTGLJCLL',
    trustedHostAttached: false
  }
]
Adding listener
Creating device list with 1 devices
Resetting timer due to new device notification
Device XXXX disconnected via Wi-Fi
Connected devices: []
Creating device list with 0 devices
Dispatching device changes to 1 listener (thread 2978043419396287625)
Resetting timer due to new device notification
Device XXXX connected via Wi-Fi
Getting device info for XXXX
Connecting to device: XXXX
Pairing device: XXXX
Validating device pairing
Starting session: XXXX
Stopping session: XXXX
Disconnecting from device: XXXX
Connected devices: [
  {
    udid: 'XXXX',
    interfaces: [ 'Wi-Fi' ],
    name: 'ZC X',
    buildVersion: '17F75',
    cpuArchitecture: 'arm64',
    deviceClass: 'iPhone',
    deviceColor: 'Black',
    hardwareModel: 'D22AP',
    modelNumber: 'MQAY2',
    productType: 'iPhone10,3',
    productVersion: '13.5',
    serialNumber: 'FK1VVTGLJCLL',
    trustedHostAttached: false
  }
]
Creating device list with 1 devices
Dispatching device changes to 1 listener (thread 2978043419396287625)
Resetting timer due to new device notification
Device XXXX disconnected via Wi-Fi
Connected devices: []
✨  Done in 225.28s.

node-ios-device: 2.0.2
electron: 9.0.2
node: 14.3.0

node-gyp error

When trying to install tio2 I receive this error:

> [email protected] install /lib/node_modules/tio2/node_modules/ti-mocha
> node ./lib/install.js


> [email protected] install /lib/node_modules/tio2/node_modules/ioslib/node_modules/node-ios-device
> node-gyp rebuild

gyp: binding.gyp not found (cwd: /usr/lib/node_modules/tio2/node_modules/ioslib/node_modules/node-ios-device) while trying to load binding.gyp
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:343:16)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Linux 4.0.4-303.fc22.x86_64
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
ERR! cwd /usr/lib/node_modules/tio2/node_modules/ioslib/node_modules/node-ios-device
gyp ERR! node -v v0.10.36
gyp ERR! node-gyp -v v1.0.3
gyp ERR! not ok 
npm ERR! Linux 4.0.4-303.fc22.x86_64
npm ERR! argv "node" "/bin/npm" "install" "-g" "tio2"
npm ERR! node v0.10.36
npm ERR! npm  v2.11.0
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the node-ios-device package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls node-ios-device
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /root/npm-debug.log

node-gyp --version
v2.0.1

node --version
v0.10.36

npm --version
2.11.0

its fails at node-ios-device so I think the issue belongs here

An in-range update of aws-sdk is breaking the build 🚨

Version 2.313.0 of aws-sdk was just published.

Branch Build failing 🚨
Dependency aws-sdk
Current Version 2.312.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

aws-sdk is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build passed (Details).
  • continuous-integration/jenkins/branch: This commit cannot be built (Details).

Release Notes Release v2.313.0

See changelog for more information.

Commits

The new version differs by 1 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Rebuild Failing

I am attempting to install vcremote, and it appears to be working fine unit it gets to [email protected] install: 'note-gyp rebuild' which results in an Exit status 1.

Node version 6.3.1
NPM version 3.10.3

npm-debug.txt

Update node support

See #74 for details (its to support node 17)

node 19 tries to download https://github.com/tidev/node-ios-device/releases/download/v1.9.4/node_ios_device-v1.9.4-node-v111-darwin-arm64.tar.gz
node 18 https://github.com/tidev/node-ios-device/releases/download/v1.9.4/node_ios_device-v1.9.4-node-v108-darwin-x64.tar.gz

Missing compatible node-ios-device library

My node is v5.0.0 (module API v47)

However when I inject the node-ios-device, I got incompatible issue

Missing compatible node-ios-device library
at /Volumes/Data/Projects/krypton/coms/desktop/node_modules/node-ios-device/ios-device.js:58:21

I debug and see that
modulesVer === 46
But node binary is "node_ios_device_v47.node"

I tried to switch to node v4.2.2 (module API v46) and your module works well. But in your home page states that node-ios-device is currently compatible with node v5, so could you please review it and make your module compatible with the latest node

Missing darwin-arm64 in prebuilds

I've known from version v3.1.1, node-ios-device has already supported build for arm64 chipset.
When I adapt this library, except darwin-ia32 darwin-x64, it seems missing darwin-arm64 in node_modules/node-ios-device/prebuilds folder.
Do we need to add this build manually by the command yarn prebuild-arm64?
Thanks in advance 🙇🏻

.trackDevices doesn't seem to catch any events

I've tried everything I can think of to get trackDevices to work and I'm at a loss. The devices function works fine tells me the status of the phone when called, but for some reason trackDevices doesn't catch any 'device' or 'error' events. Should I be listening for other events? My code is just the example in the README.
Mac version: 10.12.4
Node version: 7.2.1
IOS Device: iPhone 6s

#14
I saw that you're using the iTunes library to talk to the devices, are you supplying your own, or just using the one that exists on the machine?

Thanks for the help.

Unplugged devices still persist on list

After 30 seconds I unplugged the iOS device from PC, the device will remove from the list and continues to persist on the list after 3 seconds.

npx node-ios-device watch

macOS: 10.15.3
Devices: iPhone X (13.3.1)

Updated:

I released that though it connected via Wifi also listed on this list. So, it's no problem for me at all.

Note that only devices connected via a USB cable will be returned. Devices connected via Wi-Fi will not be returned. The main reason we do this is because you can only relay the syslog from USB connected devices.

So I think the above document is not true anymore.

.trackDevices() gets triggered on unlikely events

As per documentation:

trackDevices()
Continuously retrieves an array of all connected iOS devices. Whenever a device is connected or disconnected, the devices event is emitted.

tractDevices()'s callback should only be triggered when new devices are connected or current devices get disconnected. But I have observed this being called on unlikely events such as, starting QuickTime video recording on a device.

Steps To Reproduce

  • Connect a device
  • Run this
var iosDevice = require('./ios-device');

iosDevice
	.trackDevices()
	.on('devices', function (devices) {
		console.log('Connected devices:');
		console.log(devices);
	})
	.on('error', function (err) {
		console.error('Error!', err);
	});
  • Start quickTime video recording for the device (QuickTimePlayer -> File -> New Movie Recording -> Select Device)

.on('devices') callback will be triggered which is not expected here.

Devices with all-katakana names are presented as nameless

My iPhone is called 'チルノ'.

$ cat detect.js 
var iosDevice = require('node-ios-device');

iosDevice.devices(function (err, devices) {
    console.log(devices);
});

$ node detect.js    
[ { udid: '[…]',
    buildVersion: '12F70',
    cpuArchitecture: 'arm64',
    deviceClass: 'iPhone',
    deviceColor: '#e1e4e3',
    hardwareModel: 'N61AP',
    modelNumber: 'MG482',
    productType: 'iPhone7,2',
    productVersion: '8.3',
    serialNumber: '[…]' } ]

But when I rename the device to 'cirno':

$ node detect.js
[…]
    name: 'cirno',
[…]

Surprisingly, when I call the device 'チルno', that gets respected:

    name: 'チルno',

The Titanium build scripts expect devices to have names and break in particularly spectacular and confusing ways when they don't. I'm sure there are others.

Also filed as TC-5491.

An in-range update of node-gyp-build is breaking the build 🚨

The dependency node-gyp-build was updated from 4.1.0 to 4.1.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

node-gyp-build is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/jenkins/branch: This commit looks good (Details).
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Commits

The new version differs by 4 commits.

  • e18b05e 4.1.1
  • e70444d Mark end of options to /bin/sh with "--" (#26)
  • 81e3715 Upgrade standard devDependency from ^13.0.2 to ^14.0.0 (#25)
  • 362a1ad Upgrade standard devDependency from ^8.6.0 to ^13.0.2 (#23)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

What is the process for adding a property recovered from the iOS device?

youanden@Georgiys-MBP$ npm -v
2.14.2
youanden@Georgiys-MBP$ node -v
v0.12.7

Preface:
I've worked with libimobiledevice before and went through a very painful polling technique using the binaries and command-line to check for new devices, attempt to pair, wait for the user to pair, then use ideviceinfo to get the raw properties, then parse, etc. This library looks like a god-send.

I've edited ios-device.cpp to add a property found in mobiledevice.h : InternationalMobileEquipmentIdentity, and tried to enter the folder and do one of the following:
npm install
node-gyp rebuild
npm rebuild
or from the project directory, npm rebuild.

Do I just have to edit the ios-device.cpp or is there some other location I need to edit before the return object has the added property?

iOS Device Trust Issue

Hi,

First of all thanks for the great library. However I am running into an issue -
It doesn't work unless device is trusted. Once I trust the device, I have to reconnect the device to get the details, is there a direct way to handle this. Currently I am using this - /

const handle = iosDevice
	.trackDevices()
	.on('devices', console.log);
});

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.