Skip to content
This repository has been archived by the owner on Jan 27, 2021. It is now read-only.

Create and sign iOS mobileconfig configuration files

License

Notifications You must be signed in to change notification settings

CarbonCollins/mobileconfig

 
 

Repository files navigation

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