@carboncollins/mobileconfig

Create and sign iOS mobileconfig configuration files

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
43Jun 23, 2020Apr 26, 2018Minified + gzip package size for @carboncollins/mobileconfig in KB

Readme

mobileconfig

npm (scoped) npm node license NSP Status Maintainability Test Coverage Build Status

Create and sign iOS and mac mobileconfig configuration files.

This module has been bassed off of the previous work done by andris9/mobileconfig and converted to be an ES6 module and use classes for creating profiles with multiple configuration payloads.

Currently this module supports adding the following payloads to a profile:

  • ActiveDirectoryCertificatePayload
  • AirPlayPayload
  • AirPlaySecurityPayload
  • AirPrintPayload
  • APNPayload
  • AppLockPayload
  • CalDAVPayload
  • CalendarSubscriptionPayload
  • CardDAVPayload
  • CertificatePayload
  • CertificatePreferencePayload
  • WebClipPayload
  • WiFiPayload

and for any other payload or a custom payload you can use the RawPayload.

Profile signing is handled by jsrsasign allowing the profile to be signed on any platform that supports Node.JS.

Usage

This package can be both required and imported into your application by using the following:

require

const mobileconfig = require('@carboncollins/mobileconfig');

import (ES6)

import mobileconfig from '@carboncollins/mobileconfig';

example for creating and generating a mobile profile with an airplay payload:

const profile = new mobileconfig.MobileConfigProfile({
  displayName: 'Test Profile',
  description: 'A test profile to see if it works',
  identifier: 'com.mobileconfig.testprofile',
  organization: 'mobileconfig',
  durationUntilRemoval: 60
});

profile.addPayload(new mobileconfig.AirPlayPayload({
  whitelist: [{ deviceId: 'xx:xx:xx:xx:xx:xx' }],
  passwords:[{ deviceName: 'test airplay device', deviceId: 'xx:xx:xx:xx:xx:xx', password: 'testpassword' }],
  displayName: 'airplay device'
}));

console.log(mobileconfig.generatePropertyList(profile))

API docs

for documentation on this module please checkout the API Docs

Dev notes:

There is a known issue with signing profiles which is currently being looked into

License

MIT

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.