Getting f.lux onto your iOS Device with Xcode
On 11 November 2015, all hell broke lose when f.lux announced that they had come up with a solution to load their iOS version of f.lux onto iOS devices without Jailbreaking. (For the record, I’m a strong believer of not Jailbreaking iOS devices as the security mechanisms are in-place to protect your important private data.)
This is made possible due to a policy change by Apple, announced in WWDC 2015, to allow personal apps developed and compiled on Xcode to be loaded on and run on personal iOS devices, without needing an iOS Developer Program membership, bypassing the App Store. This thus becomes a technique for which unapproved apps can be distributed (in source form) and built by adventurous users and loaded onto their own iOS devices. Apps “sideloaded” with this method have a lifespan of 90 days, after which, they require to be resigned and reloaded onto the iOS devices before they can continue functioning.
In my opinion, this is a great way for OpenSource applications to enter a user’s device, without having to go through the hassle of the AppStore process, where there may be conflicts with the source code license.
Unfortunately, as f.lux distributed a skeletal Xcode project with the bulk of the application logic hidden within a compiled binary, Apple contacted the f.lux developers to remove the download as it violated the Developer Program Agreement.
My suspicions was that they were distributing a binary, rather than unobfuscated source code, and that is potentially risky for users. Who knows, the binary blob could be secretly uploading personal data and nobody would know better. I believe that it is for this reason that prompted Apple to respond so quickly. After all, GBA4IOS is still available and in source form.
Thankfully, there’s another unaffiliated alternative, GoodNight. It nicely mimics most of f.lux’s features, without the annoying bugs stuck in the last posted version of f.lux before it was taken down.
To install GoodNight on your iOS device, you’ll need the following:
- Apple ID
- iOS device
- Xcode (7.1 is fine)
- USB connection to your iOS device
If you have them all, follow these fine instructions, but using the latest released version of Xcode instead of the beta. The latest version of Xcode was of this writing is 7.2.
Good luck and have a better sleep! Good night!