(Created page with 'Use the following guidelines to avoid your package or app being fragile or breaking at the slightest gust of wind, and to increase the chances of it being accepted by a community…') |
(→Applications and Tweaks: Make note of what HBRespringController calls through to) |
||
(16 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
Use the following guidelines to avoid your package or app being fragile | Use the following guidelines to avoid your package or app being fragile and to increase the chances of it being accepted by a community host. | ||
* | |||
* | == Applications and Tweaks == | ||
** | * <code>NSHomeDirectory()</code> doesn't guarantee that it will return <code>/var/mobile</code>, especially from within sandboxed processes. | ||
* | ** If your code is running as root, use extra caution when writing files that mobile can access - you might break the file's access permissions. | ||
* | ** App Store apps will return their sandbox data path from <code>NSHomeDirectory()</code>. | ||
* See [[Cydia Substrate Pitfalls]] for additional guidelines regarding tweaks. | |||
* You should consider the UDID deprecated like Apple has for some time, but if you need the device's UDID, use [[libMobileGestalt.dylib]]. | |||
* If you need to use singletons, see [[singleton pattern]] for advice. | |||
* If you need to respring from a tweak and you are targeting iOS 6 - 7, kill backboardd instead of SpringBoard. Killing SpringBoard has been known to cause some issues regarding the backlight. For iOS 8 and newer, if possible, use <code>[[FBSSystemService#Relaunch SpringBoard with relaunch URL|SBSRelaunchAction]]</code> or <code>-[HBRespringController respring]</code> from [https://github.com/hbang/libcephei/blob/master/HBRespringController.x libcephei] for a more appropriate way to respring. Simply killing the processes can destroy battery usage data (the feature since iOS 8). |
Latest revision as of 03:42, 29 May 2021
Use the following guidelines to avoid your package or app being fragile and to increase the chances of it being accepted by a community host.
Applications and Tweaks
NSHomeDirectory()
doesn't guarantee that it will return/var/mobile
, especially from within sandboxed processes.- If your code is running as root, use extra caution when writing files that mobile can access - you might break the file's access permissions.
- App Store apps will return their sandbox data path from
NSHomeDirectory()
.
- See Cydia Substrate Pitfalls for additional guidelines regarding tweaks.
- You should consider the UDID deprecated like Apple has for some time, but if you need the device's UDID, use libMobileGestalt.dylib.
- If you need to use singletons, see singleton pattern for advice.
- If you need to respring from a tweak and you are targeting iOS 6 - 7, kill backboardd instead of SpringBoard. Killing SpringBoard has been known to cause some issues regarding the backlight. For iOS 8 and newer, if possible, use
SBSRelaunchAction
or-[HBRespringController respring]
from libcephei for a more appropriate way to respring. Simply killing the processes can destroy battery usage data (the feature since iOS 8).