I recently encountered a software update that oﬀered high-resolution support for MacBook Pro Retina models. However, in internal testing, it also produced problems with MacBook Air systems — but there were no reports of problems on any other models.
Based on experience with conditional_items in Munki manifests, I decided to look for an equivalent in pkginfo ﬁles. The installable_condition key let me embed an NSPredicate condition based on the machine_model attribute. As long as the expression evaluates as “true,” the payload is considered installable. Note that this will increase the the number of warnings you see from your managed clients if you watch such things through MunkiWebAdmin or other methods.
That was ﬁne and it worked. However, I was convinced that more speciﬁcally matching this update with MacBook Pro Retina models (MacBookPro10,1 and MacBookPro10,2) made sense. So, I tried out another condition:
I had slight concern that there might be future non-Retina models whose identiﬁers might start with the same “MacBookPro10” string. The 1 and 2 revisions might not be the end of the MacBookPro10 lineup. Any future rMBP revisions might not work with this particular software update, so I narrowed down the ﬁlter further.
This, again, tested out successfully for. The trick with this last variant was that “MATCHES” allowed the use ICU regular expressions in the ﬁlter. I chose the “” pattern to match on either “1” or “2.”