Create and sign iOS mobileconfig configuration files


433.2.14 years ago4 years agoMinified + gzip package size for @carboncollins/mobileconfig in KB



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.


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


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'


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



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.