- 
        make ipaBuilding an iOS Application without XcodeEver wanted to build an iOS app, but you’re not a big fan of Xcode? Would you like to know what on earth is the black magic that makes your code into an iOS application? Well, you’ve come to the right place. 
- 
        PSA: Stop Creating .a Files“Archive Files Considered Harmful”Archive ( .a) files are commonly used as the file format of choice when creating statically linked libraries. However, archive files have many pitfalls by design and are usually not worth the trouble when compared to plain object (.o) files.
- 
        Lock-Free ListGetting Familiar & Setting UpEvery once in a while, you run into a seemingly simple problem, that turns about to be much more interesting, and you open up to a whole new world. 
- 
        The Appdome Way of Using MakeMulti-platform Building with MakeAppdome’s build system is quite complex – it must build dozens of modules (each with its own quirks and compilation flags) on three platforms (Android and two iOS “flavors”), while avoiding code duplication and keeping development as easy as possible. In this article, we’ll recreate a similar (yet simpler) make-based build system that can create both 64-bit dynamic libraries that runs on both macOS and iOS using a single codebase, without having to run./configure-like scripts ormake cleanto switch targets.
- 
        TowelrootAn analysis of Towelroot and the futex vulnerabilityA few years back I did an article series about Towelroot and the futex-vulnerability. Since then the website migrated several times and the articles got butchered. 
- 
        A nil that is not a NULLCreating a nil-like Object for Fun and ProfitA cool feature of the Objective-C runtime is that nil“responds” to every selector, and always returns a value that is equivalent to0ornilitself. This feature, together with the dynamic nature of Objective-C, can be exploited to aid in research of Objective-C code, and bypassing API limitations.
- 
        No-Bugs No-Glory: Issue no. 1Logging Quirks on AndroidSuppose you wanted to implement encrypted disk-I/O in your application. The way to go about it would be intercept all the I/O system calls and reimplement them so that data written/read will be encrypted/decrypted. One method to intercept those functions would be to hook them. Meaning, set up the process in such a way that when writeis called, instead some customHOOK_writeimplementation is called. In addition, you might want to know what’s happening inside your functions, so you will naturally use some sort of logging mechanism. In Android’s case you will use the__android_log*API supplied byliblog.so. However, logs are something to be seen by the developers only, and they do add a bit of an overhead to the product, both in size (MiBs) and in performance, so you want to be able to easily switch them off. Surprisingly, a combination of these (rather innocuous) elements can cause some very odd behavior on Android under certain conditions.
- 
        Automating iOS Tasks from a Mac's TerminalCreating Command Line Versions of Xcode FunctionalitiesOne of the common tasks an iOS developer would want to perform is launching an application on a device from a connected Mac. Usually, this is done from Xcode, which can build, install and launch an application. However, this only covers the very basic scenario – launching an app you just built on a device. But what if you want to launch an application via command line, or a script? What if you’re not even using Xcode for your project? This functionality is very critical, for example, for automatic testing. It enables automatically testing hundreds of applications in nightly cycles that guarantee top quality reliability, and you can’t test an app before launching it first. 
subscribe via RSS
