About:

Bryce Bostwick works on iOS Infrastructure at LinkedIn, with a passion for exploring iOS internals and pushing frameworks to new limits.

Website:

Specializations:

Interests:

IOS internals Frameworks Tooling

Incoming Links:

Subscribe to RSS:
This post presents an improved method swizzling framework that overcomes limitations of Apple's Main Thread Checker by efficiently managing a large number of methods through innovative techniques.
The text discusses the challenges of debugging an app that blocks debuggers, exits early if code is injected, and crashes the phone if run with a jailbreak. The author explains the process of bypassing the PT_DENY_ATTACH protectio...
The author and his wife are fans of the New York Times games and decided to customize the NYT Games App for their wedding by creating puzzles about themselves and their big day. They used NSURLProtocol to change the way iOS' netwo...
...
The text discusses how to trick iOS into animating app icons by abusing the Alternate App Icons system. It explains the problems faced when trying to change app icons and how to fix them. It also delves into the technical details ...
The text discusses the history of Xcode plugins, the removal of plugin support in Xcode 14, and the process of adding plugin support back into Xcode. It covers topics such as disabling hardened runtime, re-codesigning Xcode, disab...
The text discusses how to remove randomness from a third-party app using LLDB. It provides a test program and explains how to get rid of randomness using fixed size, fixed data, dynamic size, fixed data, and dynamic size, dynamic ...
The article discusses the difficulty of showing multiple copies of a single UIView instance and explores different methods to achieve this. It starts with the author's need to preview an animation in different contexts and then de...
The text discusses the process of mapping Vim keys in Xcode 13's new Vim Mode. It explains the background of Xcode 13's Vim Mode, the challenges faced, and the steps to create an Xcode plugin to remap keys. The author also shares ...
The post discusses the iOS 13 feature of cropping images in the screenshot preview window, revealing that the feature is handled by the SSScreenshotMetadataHarvester class. It explains how the metadata harvester works, how to feed...
The text explains how to toggle iOS render debug options without a computer, using the CARenderServerSetDebugOption function. It provides code examples for setting options from a simulator and a device, and suggests building a pre...
The text discusses the use of non-numeric app badges on iOS, exploring the possibility of using arbitrary text and emoji as app badges instead of just numbers. It also mentions the limitations and potential use cases of this featu...
The text explains how to replace the implementation of every single method in a given framework using a technique called swizzling. It covers the basics of swizzling, scaling up to replacing more method implementations, using tram...
The post discusses the Main Thread Checker in Xcode, focusing on the configuration options available to customize the tool. It provides detailed information on how to set configuration options, increase the maximum hit count, supp...
The text explains a fast method for stubbing from LLDB, using the thread return command. It discusses the drawbacks of this method and explores other options such as swizzling from LLDB and other alternatives. It also mentions the...
The text discusses the behavior of a particular task defined in a system process, which runs once every 24 hours with a margin of error of ±12 hours. It explores the challenges of invoking these tasks on demand and provides a tool...
The text explains how to recreate iMessage's confetti implementation using CAEmitterLayer and CAEmitterBehavior. It goes through the step-by-step process of creating confetti images, setting up the emitter layer, adding behaviors,...
The text discusses CAEmitterBehavior, an undocumented class that enhances the power of CAEmitterLayer. It covers the different types of emitter behaviors available, such as Wave, Drag, Align To Motion, Value Over Life, Color Over ...