October 18, 2024

Installer v4.0 Repository Structure

Posted July 25, 2008 at 5:17pm by iClarified · 18475 views
RiP Dev has posted some useful information regarding the repo structure for the upcoming v4.0 Installer.app

If you maintain your own repo you might want to pay close attention to this information.

-----
Installer 4 uses the new repository structure which is aimed at minimizing the traffic for both repo owner and the user, as well as expands the standard a little bit. It is still good old plists, but for the repo owner perspective, you don't really have to mock with them at all :)

Here's how it works. Each package (a .zip file) now must contain a .plist file inside describing the package - including install/uninstall scripts, description, version, identifier, dependencies, and so on. It may also contain a png icon to be displayed as the package icon in the Installer.

When the repository owner puts the file in the repository directory tree (in the appropriate folder for the category), the repository engine does the rest - automagically extracts the plist (and the package icon) from the package archive, parses it, puts in the appropriate places and gets it ready to be served to Installer.

I have finished the repo engine code (it uses PHP) and is currently going to give it a test run for a few days internally, then we'll put it in the public domain to re-use and abuse, along with a more detailed instructions on the package structure and plist keys (they are mostly the same).

A nice additional feature I didn't mention yet - you can now specify an arbitrary URL to be used as a package info, so you can create spiffy webpages describing your über product in a totally custom way (the document will be shown in a web view replacing standard package info page).

Regarding distribution / installation of Installer 4. We are still ironing the details, but it will likely be available as a part of the Pwnage Tool (as before), as a stand-alone installer (akin to AppTapp installer back in 1.0.x days), and possibly on Cydia. We'll see how it works out.
-----