Package Exports
- ioslib
- ioslib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ioslib) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
iOS Utility Library
This is a library of utilities for dealing programmatically with iOS applications, used namely for tools like Hyperloop and Titanium SDK.
ioslib supports Xcode 6 and newer.
Installation
From NPM:
npm install ioslibExamples
Detect all the connected iOS devices:
var ioslib = require('ioslib');
ioslib.device.detect(function (err, devices) {
if (err) {
console.error(err);
} else {
console.log(devices);
}
});Install an application on device
var deviceUDID = null; // string or null to pick first device
ioslib.device.install(deviceUDID, '/path/to/name.app', 'com.company.appname')
.on('installed', function () {
console.log('App successfully installed on device');
})
.on('appStarted', function () {
console.log('App has started');
})
.on('log', function (msg) {
console.log('[LOG] ' + msg);
})
.on('appQuit', function () {
console.log('App has quit');
})
.on('error', function (err) {
console.error(err);
});Launch the iOS Simulator
ioslib.simulator.launch(null, function (err, simHandle) {
console.log('Simulator launched');
ioslib.simulator.stop(simHandle, function () {
console.log('Simulator stopped');
});
});Launch, install, and run an application on simulator
var simUDID = null; // string or null to pick a simulator
ioslib.simulator.launch(simUDID, {
appPath: '/path/to/name.app'
})
.on('launched', function (msg) {
console.log('Simulator has launched');
})
.on('appStarted', function (msg) {
console.log('App has started');
})
.on('log', function (msg) {
console.log('[LOG] ' + msg);
})
.on('error', function (err) {
console.error(err);
});Force stop an application running on simulator
ioslib.simulator.launch(simUDID, {
appPath: '/path/to/name.app'
})
.on('launched', function (simHandle) {
console.log('Simulator launched');
ioslib.simulator.stop(simHandle).on('stopped', function () {
console.log('Simulator stopped');
});
});Find a valid device/cert/provisioning profile combination
ioslib.findValidDeviceCertProfileCombos({
appId: 'com.company.appname'
}, function (err, results) {
if (err) {
console.error(err);
} else {
console.log(results);
}
});Detect everything
ioslib.detect(function (err, info) {
if (err) {
console.error(err);
} else {
console.log(info);
}
});Detect iOS certificates
ioslib.certs.detect(function (err, certs) {
if (err) {
console.error(err);
} else {
console.log(certs);
}
});Detect provisioning profiles
ioslib.provisioning.detect(function (err, profiles) {
if (err) {
console.error(err);
} else {
console.log(profiles);
}
});Detect Xcode installations
ioslib.xcode.detect(function (err, xcodeInfo) {
if (err) {
console.error(err);
} else {
console.log(xcodeInfo);
}
});Running Tests
For best results, connect an iOS device.
To run all tests:
npm testTo see debug logging, set the DEBUG environment variable:
DEBUG=1 npm testTo run a specific test suite:
npm run-script test-certs
npm run-script test-device
npm run-script test-env
npm run-script test-ioslib
npm run-script test-provisioning
npm run-script test-simulator
npm run-script test-xcodeContributing
Interested in contributing? There are several ways you can help contribute to this project.
New Features, Improvements, Bug Fixes, & Documentation
Source code contributions are always welcome! Before we can accept your pull request, you must sign a Contributor License Agreement (CLA). Please visit https://tidev.io/contribute for more information.
Donations
Please consider supporting this project by making a charitable donation. The money you donate goes to compensate the skilled engineeers and maintainers that keep this project going.
Code of Conduct
TiDev wants to provide a safe and welcoming community for everyone to participate. Please see our Code of Conduct that applies to all contributors.
Security
If you find a security related issue, please send an email to security@tidev.io instead of publicly creating a ticket.
Stay Connected
For the latest information, please find us on Twitter: Titanium SDK and TiDev.
Join our growing Slack community by visiting https://slack.tidev.io!
Legal
Titanium is a registered trademark of TiDev Inc. All Titanium trademark and patent rights were transferred and assigned to TiDev Inc. on 4/7/2022. Please see the LEGAL information about using our trademarks, privacy policy, terms of usage and other legal information at https://tidev.io/legal.