Common Issues - macadmins/nudge GitHub Wiki
Nudge is a multi-linguistic application. Nudge needs to understand what language you are targeting, through the use of the _language key. Please ensure you are deploying this key in either your mobile configuration file or JSON.
Configuration profile set for Nudge to use a JSON file, but the JSON configuration isn't being applied.
Nudge won't be able to read the settings from your JSON configuration file if the plist used to build your configuration profile is invalid. Please ensure your plist is properly validated by running plutil -lint /path/to/profile
.
Here's an example of a valid plist with the minimum required PayloadType
and json-url
keys:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadType</key>
<string>com.github.macadmins.Nudge</string>
<key>json-url</key>
<string>https://example.com/nudge.json</string>
</dict>
</plist>
Here's what this example plist looks like when uploaded into an Application & Custom Settings
configuration profile in Jamf Pro:
Make sure the preference domain is set to com.github.macadmins.Nudge
and not to com.github.macadmins.Nudge.json
-rw-r--r-- 1 root wheel 230 May 25 10:32 com.github.macamdins.Nudge.json
(what's wrong with my example?)
Some Mac Admins tend to over-configure Nudge. The following examples are designed to show a bare-minimum configuration; if this meets your needs, you're done.
Note how only two settings — requiredInstallationDate
and requiredMinimumOSVersion
— are required to prompt users to update.
Nudge: Deadline in the past / Greater than released OS |
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>osVersionRequirements</key>
<array>
<dict>
<key>requiredInstallationDate</key>
<string>2021-09-15T00:00:00Z</string>
<key>requiredMinimumOSVersion</key>
<string>12.99</string>
</dict>
</array>
</dict>
</plist>
Jamf Pro Form Editor: Deadline in the past / Greater than released OS |
Jamf Pro Plist Preview: Deadline in the past / Greater than released OS |
Nudge: Deadline in the future / Greater than released OS |
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>osVersionRequirements</key>
<array>
<dict>
<key>requiredInstallationDate</key>
<string>2022-05-26T00:00:00Z</string>
<key>requiredMinimumOSVersion</key>
<string>12.99</string>
</dict>
</array>
</dict>
</plist>
Jamf Pro Form Editor: Deadline in the future / Greater than released OS |
Jamf Pro Plist Preview: Deadline in the future / Greater than released OS |
Deleting this file by dragging it to the trash will cause Nudge to not launch and show the following error in the logs:
2024-08-08 13:19:28.611386+0100 localhost Nudge[81056]: [com.github.macadmins.Nudge:sofa] Failed to decode sofa JSON after redownload: keyNotFound(CodingKeys(stringValue: "SecurityInfo", intValue: nil), Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "OSVersions", intValue: nil), _JSONKey(stringValue: "Index 0", intValue: 0), CodingKeys(stringValue: "Latest", intValue: nil)], debugDescription: "No value associated with key CodingKeys(stringValue: \"SecurityInfo\", intValue: nil) (\"SecurityInfo\").", underlyingError: nil))`
`2024-08-08 13:19:28.611401+0100 localhost Nudge[81056]: [com.github.macadmins.Nudge:sofa] Could not fetch SOFA feed
If you need to test Nudge against a recently published update you can either lower the refreshSOFAFeedTime or you can use the following command to delete the sofa-macos_data_feed.json
rm -rf ~/Library/Application\ Support/com.github.macadmins.Nudge && rm -rf ~/Library/Caches/com.github.macadmins.Nudge && defaults delete com.github.macadmins.Nudge LastEtag
This is for troubleshooting and testing purposes only and should not be deployed at scale across your environment.