Autopkg-assets.pkg Here
Some community recipes already hint at this pattern—using a Requires on a “meta” package that provides common utilities. Formalizing it as autopkg-assets.pkg turns a clever hack into a maintainable architecture. AutoPkg handles the what (which software to get) and the how (processors to run). autopkg-assets.pkg handles the with what —the custom scripts, icons, and tools that make a generic download into a truly managed piece of software.
autopkg-assets.pkg solves this elegantly. Recipes depend on it via a simple Requires key, and the asset package is installed once per machine (or once per AutoPkg runner). When you need to update an asset, you rebuild autopkg-assets.pkg and bump its version—no recipe surgery required. Creating the package is straightforward. Most teams use pkgbuild : autopkg-assets.pkg
<key>Requires</key> <array> <string>com.yourorg.autopkg-assets</string> </array> Imagine you maintain a GoogleChrome.pkg recipe. Chrome requires no license acceptance, but your organization demands a post‑install script that disables automatic updates and writes a custom brand plist. Some community recipes already hint at this pattern—using
Assets/ scripts/ accept_zoom_license.sh configure_outlook_profile.py icons/ company_vpn.icns tools/ jq Once built, host the package on an internal web server or a Jamf distribution point. Then, in any AutoPkg recipe that needs those assets, add: autopkg-assets
If your AutoPkg setup is still copying the same license script into ten different recipe repos, you’re working too hard. Build autopkg-assets.pkg once, depend on it everywhere, and reclaim your automation sanity.