All Projects → PoomSmart → preferenceloader-sim

PoomSmart / preferenceloader-sim

Licence: LGPL-3.0 license
Drop-in replacement for preferenceloader, for iOS simulators.

Simulator version of PreferenceLoader

This project aims to make testing tweak settings bundle possible on iOS simulator. simject is required and used by this project.

Setting up simulator

make setup PL_SIMULATOR_VERSION=9.3 For instance, if you target iOS simulator 9.3

Or

make setup if you specify the version in locatesim.mk

Uninstallation

make remove PL_SIMULATOR_VERSION=9.3

Or

make remove if you specify the version in locatesim.mk

Sample projects

Original README

This is a drop-in replacement for Thomas Moore's PreferenceLoader project. I personally found this necessary, as there were various things about the existing PreferenceLoader I did not like.

Complaints about the Original

  • unnecessary hooking
  • +[NSData initWithContentsOfFile:]
  • -[NSBundle pathForResource:ofType:]
  • -[PSSpecifier setupIconImageWithPath:]
  • Due to the way PreferenceLoader was implemented (intercepting the toplevel settings plists as they were read from disk and inserting our data directly into them (!)) it had certain filenames hardcoded, such as Settings-(iPhone|iPod).plist, and wouldn't work for other devices.
  • Due to the broad hooks above, all sorts of things that don't need to be intercepted are. Every resource path calculated from a bundle gets extra checks tacked onto it, and every NSData-read-from-file gets a filename check.
  • Its current lack of compatibility with iPhoneOS 3.2 and the iPad (relies on a removed ivar, and Settings-Wildcat.plist is not processed.)

What this Replacement offers

  • source availability
  • error recovery (loading a bad bundle results in a simple "There was an error loading ..." instead of a blank preferences panel)
  • cleaner design
  • iPhoneOS 3.2 and iPad compatibility.

License

PreferenceLoader is made available under the provisions of the GNU Lesser General Public License (LGPL), version 3.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].