Packaging
A .deb is a control file plus a tree that is copied onto the
filesystem. Everything installs under /Library/TweakInject.
The control file
control
Package: com.example.mytweak Name: MyTweak Version: 1.0.0 Architecture: darwin-arm64e Description: What it does, in one line. Maintainer: Your Name Author: Your Name Section: Tweaks Depends: mobilesubstrate (>= 0.9.5000)
| Field | Notes |
|---|---|
Package | Reverse-DNS identifier. This is your identity everywhere, including in a licence check. |
Name | What people see. |
Version | Must match what the listing publishes, or the app reports an update immediately after installing. |
Architecture | darwin-arm64e for Apple silicon. |
Depends | Resolved by the installer before your tweak is unpacked. |
The payload tree
Layout
layout/
└── Library/
└── TweakInject/
├── Tweaks/Bundles/MyTweak.bundle/
└── Preferences/PreferenceBundles/MyTweakPrefs.bundle/
Dependencies worth declaring
-
com.doraorak.preferenceloaderxif your tweak ships a preference bundle and you want its settings to appear in System Settings. mobilesubstrateif you hook functions, which is what providesMSHookFunction.
Version drift
The version inside the .deb and the version in the store listing
have to agree. When they do not, the installed record reports the payload's
version while the listing advertises another, and the app offers an update
for something just installed.