<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    
    <title>GitHub Objective-C Daily Trending Repositories</title>
    <description>Daily Trending Repositories of Objective-C on GitHub</description>
    
    <pubDate>Mon, 10 Aug 2026 07:32:33 GMT</pubDate>
    <link>https://mshibanami.github.io/GitHubTrendingRSS</link>
    
    <item>
      <title>opa334/TrollStore</title>
      <link>https://github.com/opa334/TrollStore</link>
      <description>&lt;p&gt;Jailed iOS app that can install IPAs permanently with arbitary entitlements and root helpers because it trolls Apple&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;TrollStore&lt;/h1&gt; 
&lt;p&gt;TrollStore is a permasigned jailed app that can permanently install any IPA you open in it.&lt;/p&gt; 
&lt;p&gt;It works because of an AMFI/CoreTrust bug where iOS does not correctly verify code signatures of binaries in which there are multiple signers.&lt;/p&gt; 
&lt;p&gt;Supported versions: 14.0 beta 2 - 16.6.1, 16.7 RC (20H18), 17.0&lt;/p&gt; 
&lt;h2&gt;Installing TrollStore&lt;/h2&gt; 
&lt;p&gt;For installing TrollStore, refer to the guides at &lt;a href=&quot;https://ios.cfw.guide/installing-trollstore&quot;&gt;ios.cfw.guide&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;16.7.x (excluding 16.7 RC) and 17.0.1+ will NEVER be supported (unless a third CoreTrust bug is discovered, which is unlikely).&lt;/p&gt; 
&lt;h2&gt;Updating TrollStore&lt;/h2&gt; 
&lt;p&gt;When a new TrollStore update is available, a button to install it will appear at the top in the TrollStore settings. After tapping the button, TrollStore will automatically download the update, install it, and respring.&lt;/p&gt; 
&lt;p&gt;Alternatively (if anything goes wrong), you can download the TrollStore.tar file under Releases and open it in TrollStore, TrollStore will install the update and respring.&lt;/p&gt; 
&lt;h2&gt;Uninstalling an app&lt;/h2&gt; 
&lt;p&gt;Apps installed from TrollStore can only be uninstalled from TrollStore itself, tap an app or swipe it to the left in the &#39;Apps&#39; tab to delete it.&lt;/p&gt; 
&lt;h2&gt;Persistence Helper&lt;/h2&gt; 
&lt;p&gt;The CoreTrust bug used in TrollStore is only enough to install &quot;System&quot; apps, this is because FrontBoard has an additional security check (it calls libmis) every time before a user app is launched. Unfortunately it is not possible to install new &quot;System&quot; apps that stay through an icon cache reload. Therefore, when iOS reloads the icon cache, all TrollStore installed apps including TrollStore itself will revert back to &quot;User&quot; state and will no longer launch.&lt;/p&gt; 
&lt;p&gt;The only way to work around this is to install a persistence helper into a system app, this helper can then be used to reregister TrollStore and its installed apps as &quot;System&quot; so that they become launchable again, an option for this is available in TrollStore settings.&lt;/p&gt; 
&lt;p&gt;On jailbroken iOS 14 when TrollHelper is used for installation, it is located in /Applications and will persist as a &quot;System&quot; app through icon cache reloads, therefore TrollHelper is used as the persistence helper on iOS 14.&lt;/p&gt; 
&lt;h2&gt;URL Scheme&lt;/h2&gt; 
&lt;p&gt;As of version 1.3, TrollStore replaces the system URL scheme &quot;apple-magnifier&quot; (this is done so &quot;jailbreak&quot; detections can&#39;t detect TrollStore like they could if TrollStore had a unique URL scheme). This URL scheme can be used to install applications right from the browser, or to enable JIT from the app itself (only 2.0.12 and above), the format goes as follows:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;apple-magnifier://install?url=&amp;lt;URL_to_IPA&amp;gt;&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;apple-magnifier://enable-jit?bundle-id=&amp;lt;Bundle_ID&amp;gt;&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;On devices that don&#39;t have TrollStore (1.3+) installed, this will just open the magnifier app.&lt;/p&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;p&gt;The binaries inside an IPA can have arbitrary entitlements, fakesign them with ldid and the entitlements you want (&lt;code&gt;ldid -S&amp;lt;path/to/entitlements.plist&amp;gt; &amp;lt;path/to/binary&amp;gt;&lt;/code&gt;) and TrollStore will preserve the entitlements when resigning them with the fake root certificate on installation. This gives you a lot of possibilities, some of which are explained below.&lt;/p&gt; 
&lt;h3&gt;Banned entitlements&lt;/h3&gt; 
&lt;p&gt;iOS 15 on A12+ has banned the following three entitlements related to running unsigned code, these are impossible to get without a PPL bypass, apps signed with them will crash on launch.&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;com.apple.private.cs.debugger&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;dynamic-codesigning&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;com.apple.private.skip-library-validation&lt;/code&gt;&lt;/p&gt; 
&lt;h3&gt;Unsandboxing&lt;/h3&gt; 
&lt;p&gt;Your app can run unsandboxed using one of the following entitlements:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;key&amp;gt;com.apple.private.security.container-required&amp;lt;/key&amp;gt;
&amp;lt;false/&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;key&amp;gt;com.apple.private.security.no-container&amp;lt;/key&amp;gt;
&amp;lt;true/&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;key&amp;gt;com.apple.private.security.no-sandbox&amp;lt;/key&amp;gt;
&amp;lt;true/&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The third one is recommended if you still want a sandbox container for your application.&lt;/p&gt; 
&lt;p&gt;You might also need the platform-application entitlement in order for these to work properly:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;key&amp;gt;platform-application&amp;lt;/key&amp;gt;
&amp;lt;true/&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Please note that the platform-application entitlement causes side effects such as some parts of the sandbox becoming tighter, so you may need additional private entitlements to circumvent that. (For example afterwards you need an exception entitlement for every single IOKit user client class you want to access).&lt;/p&gt; 
&lt;p&gt;In order for an app with &lt;code&gt;com.apple.private.security.no-sandbox&lt;/code&gt; and &lt;code&gt;platform-application&lt;/code&gt; to be able to access it&#39;s own data container, you might need the additional entitlement:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;key&amp;gt;com.apple.private.security.storage.AppDataContainers&amp;lt;/key&amp;gt;
&amp;lt;true/&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Root Helpers&lt;/h3&gt; 
&lt;p&gt;When your app is not sandboxed, you can spawn other binaries using posix_spawn, you can also spawn binaries as root with the following entitlement:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;key&amp;gt;com.apple.private.persona-mgmt&amp;lt;/key&amp;gt;
&amp;lt;true/&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;You can also add your own binaries into your app bundle.&lt;/p&gt; 
&lt;p&gt;Afterwards you can use the &lt;a href=&quot;https://raw.githubusercontent.com/opa334/TrollStore/main/Shared/TSUtil.m#L79&quot;&gt;spawnRoot function in TSUtil.m&lt;/a&gt; to spawn the binary as root.&lt;/p&gt; 
&lt;h3&gt;Things that are not possible using TrollStore&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Getting proper platformization (&lt;code&gt;TF_PLATFORM&lt;/code&gt; / &lt;code&gt;CS_PLATFORMIZED&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;Spawning a launch daemon (Would need &lt;code&gt;CS_PLATFORMIZED&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;Injecting a tweak into a system process (Would need &lt;code&gt;TF_PLATFORM&lt;/code&gt;, a userland PAC bypass and a PMAP trust level bypass)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Compilation&lt;/h3&gt; 
&lt;p&gt;To compile TrollStore, ensure &lt;a href=&quot;https://theos.dev/docs/installation&quot;&gt;theos&lt;/a&gt; is installed. Additionaly ensure &lt;a href=&quot;https://brew.sh/&quot;&gt;brew&lt;/a&gt; is installed and install &lt;a href=&quot;https://formulae.brew.sh/formula/libarchive&quot;&gt;libarchive&lt;/a&gt; from brew.&lt;/p&gt; 
&lt;h2&gt;Credits and Further Reading&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://twitter.com/alfiecg_dev/&quot;&gt;@alfiecg_dev&lt;/a&gt; - Found the CoreTrust bug that allows TrollStore to work through patchdiffing and worked on automating the bypass.&lt;/p&gt; 
&lt;p&gt;Google Threat Analysis Group - Found the CoreTrust bug as part of an in-the-wild spyware chain and reported it to Apple.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://twitter.com/LinusHenze&quot;&gt;@LinusHenze&lt;/a&gt; - Found the installd bypass used to install TrollStore on iOS 14-15.6.1 via TrollHelperOTA, as well as the original CoreTrust bug used in TrollStore 1.0.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://youtu.be/rPTifU1lG7Q&quot;&gt;Fugu15 Presentation&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://worthdoingbadly.com/coretrust/&quot;&gt;Write-Up on the first CoreTrust bug with more information&lt;/a&gt;.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/adaf5740cfe66efacd7d942e6be0ba87e6cf7d87924877a1183bba0f6ccd326d/opa334/TrollStore" medium="image" />
      
    </item>
    
    <item>
      <title>PojavLauncherTeam/PojavLauncher_iOS</title>
      <link>https://github.com/PojavLauncherTeam/PojavLauncher_iOS</link>
      <description>&lt;p&gt;A Minecraft: Java Edition Launcher for Android and iOS based on Boardwalk. Succeeded by https://github.com/AngelAuraMC/Amethyst-iOS&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;PojavLauncher for iOS&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/PojavLauncherTeam/PojavLauncher_iOS/actions/workflows/development.yml&quot;&gt;&lt;img src=&quot;https://github.com/PojavLauncherTeam/PojavLauncher_iOS/actions/workflows/development.yml/badge.svg?branch=main&quot; alt=&quot;Development build&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://crowdin.com/project/pojavlauncher&quot;&gt;&lt;img src=&quot;https://badges.crowdin.net/pojavlauncher/localized.svg?sanitize=true&quot; alt=&quot;Crowdin&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/pojavlauncher-724163890803638273&quot;&gt;&lt;img src=&quot;https://img.shields.io/discord/724163890803638273.svg?label=&amp;amp;logo=discord&amp;amp;logoColor=ffffff&amp;amp;color=7389D8&amp;amp;labelColor=6A7EC2&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Important note&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;PojavLauncher has been discontinued&lt;/strong&gt; and is no longer supported. Its successor is available &lt;a href=&quot;https://github.com/AngelAuraMC/Amethyst-iOS&quot;&gt;here&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Introduction&lt;/h2&gt; 
&lt;p&gt;PojavLauncher is a Minecraft: Java Edition launcher for Android, iOS, and iPadOS, based off of zhuowei&#39;s &lt;a href=&quot;https://github.com/zhuowei/Boardwalk&quot;&gt;Boardwalk&lt;/a&gt; project.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Supports most versions of Minecraft: Java Edition, from the very first beta to the newest snapshots.&lt;/li&gt; 
 &lt;li&gt;Supports Forge, Fabric, OptiFine, and Quilt for you to customize the experience with supported mods.&lt;/li&gt; 
 &lt;li&gt;Includes customizable on-screen controls, keyboard and mouse support, and game controller support.&lt;/li&gt; 
 &lt;li&gt;Optimized for jailbroken and TrollStore devices to enable better capabilities.&lt;/li&gt; 
 &lt;li&gt;Microsoft account and demo mode support for logging into Minecraft.&lt;/li&gt; 
 &lt;li&gt;...and much more!&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;This repository contains the code for our iOS and iPadOS port of PojavLauncher. Looking for &lt;a href=&quot;https://github.com/PojavLauncherTeam/PojavLauncher&quot;&gt;Android?&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Getting started with PojavLauncher&lt;/h2&gt; 
&lt;p&gt;The &lt;a href=&quot;https://pojavlauncherteam.github.io/INSTALL.html#ios&quot;&gt;PojavLauncher Website&lt;/a&gt; has extensive documentation on how to install, set up, and play! For those who wish to install quickly, here&#39;s the basics:&lt;/p&gt; 
&lt;h3&gt;Requirements&lt;/h3&gt; 
&lt;p&gt;At the minimum, you&#39;ll need one of the following devices on &lt;strong&gt;iOS 14.0&lt;/strong&gt; and later:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;iPhone 6s and later&lt;/li&gt; 
 &lt;li&gt;iPad (5th generation) and later&lt;/li&gt; 
 &lt;li&gt;iPad Air (2nd generation) and later&lt;/li&gt; 
 &lt;li&gt;iPad mini (4th generation) and later&lt;/li&gt; 
 &lt;li&gt;iPad Pro (all models)&lt;/li&gt; 
 &lt;li&gt;iPod touch (7th generation)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;However, we recommend one of the following devices on &lt;strong&gt;iOS 14.0&lt;/strong&gt; and later:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;iPhone XS and later, excluding iPhone XR and iPhone SE (2nd generation)&lt;/li&gt; 
 &lt;li&gt;iPad (10th generation) and later&lt;/li&gt; 
 &lt;li&gt;iPad Air (4th generation) and later&lt;/li&gt; 
 &lt;li&gt;iPad mini (6th generation) and later&lt;/li&gt; 
 &lt;li&gt;iPad Pro (all models, except for 9.7-inch)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Recommended devices provide a smoother and more enjoyable gameplay experience compared to other supported devices.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;tvOS support is in development.&lt;/li&gt; 
 &lt;li&gt;iOS 17.x and iOS 18.x is supported. However, a computer is required. These methods will ultilized usage of pymobiledevice3. Python 3.11.(x) must be properly set up on your computer. For more information, please check out the official Wiki: &lt;a href=&quot;https://pojavlauncherteam.github.io/JIT.html#what-are-the-methods-to-enable-jit&quot;&gt;https://pojavlauncherteam.github.io/JIT.html#what-are-the-methods-to-enable-jit&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Setting up to sideload&lt;/h3&gt; 
&lt;p&gt;PojavLauncher can be sideloaded in many ways. Our recommended solution is to install &lt;a href=&quot;https://github.com/opa334/TrollStore&quot;&gt;TrollStore&lt;/a&gt; if your iOS version supports it. Installing with TrollStore allows you to permenantly sign the application, automatically enable JIT, and increase memory limits.&lt;/p&gt; 
&lt;p&gt;For iOS/iPadOS 17.0: Unfortunately,the above process will not work. It is required that you must use &lt;a href=&quot;https://github.com/JJTech0130/TrollRestore&quot;&gt;TrollRestore&lt;/a&gt;. Any versions above iOS/iPadOS 17.0 will NOT be supported (as of December 23, 2024).&lt;/p&gt; 
&lt;p&gt;If you cannot, &lt;a href=&quot;https://altstore.io&quot;&gt;AltStore&lt;/a&gt; and &lt;a href=&quot;https://sidestore.io&quot;&gt;SideStore&lt;/a&gt; are your next best options.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;Signing services that do not use your UDID (and use distribution certificates) are not supported, as PojavLauncher requires capabilities they do not allow. However, if you do managed to gain access to a Development certificate, due to it having the necessary entitlement (being com.apple.security.get-task-allow) to attach a debugger to the running process (enabling JIT), you may use a Development certificate.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Only install sideloading software and PojavLauncher from trusted sources. We are not responsible for any harm caused by using unofficial software.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Jailbreaks also benefit from permenant signing, autoJIT, and increased memory limits, however we do not recommend them for regular use.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Installing PojavLauncher&lt;/h3&gt; 
&lt;h4&gt;Release build (TrollStore)&lt;/h4&gt; 
&lt;ol&gt; 
 &lt;li&gt;Download an IPA of PojavLauncher in &lt;a href=&quot;https://github.com/PojavLauncherTeam/PojavLauncher_iOS/releases&quot;&gt;Releases&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;Open the package in TrollStore using the share menu.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h4&gt;Release build (AltStore/SideStore trusted source)&lt;/h4&gt; 
&lt;ol&gt; 
 &lt;li&gt;Add &lt;code&gt;PojavLauncher Repository&lt;/code&gt; from the Trusted Sources menu.&lt;/li&gt; 
 &lt;li&gt;Tap &lt;code&gt;FREE&lt;/code&gt; to begin installing.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h4&gt;Nightly builds&lt;/h4&gt; 
&lt;p&gt;&lt;em&gt;These builds can contain game-breaking bugs. Use with caution.&lt;/em&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Download an IPA build of PojavLauncher in the &lt;a href=&quot;https://github.com/PojavLauncherTeam/PojavLauncher_iOS/actions&quot;&gt;Actions tab&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;Open the downloaded IPA in your sideloading app to install.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Enabling JIT&lt;/h3&gt; 
&lt;p&gt;PojavLauncher makes use of &lt;strong&gt;just-in-time compilation&lt;/strong&gt;, or JIT, to provide usable speeds for the end user. JIT is not supported on iOS without the application being debugged, so workarounds are required to enable it. You can use this chart to determine the best solution for you and your setup.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Application&lt;/th&gt; 
   &lt;th&gt;AltStore&lt;/th&gt; 
   &lt;th&gt;SideStore&lt;/th&gt; 
   &lt;th&gt;TrollStore&lt;/th&gt; 
   &lt;th&gt;Jitterbug&lt;/th&gt; 
   &lt;th&gt;Jailbroken&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Requires ext-device&lt;/td&gt; 
   &lt;td&gt;Yes&lt;/td&gt; 
   &lt;td&gt;No&lt;/td&gt; 
   &lt;td&gt;No&lt;/td&gt; 
   &lt;td&gt;If VPN unavailable&lt;/td&gt; 
   &lt;td&gt;No&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Requires Wi-Fi&lt;/td&gt; 
   &lt;td&gt;Yes&lt;/td&gt; 
   &lt;td&gt;Yes&lt;/td&gt; 
   &lt;td&gt;No&lt;/td&gt; 
   &lt;td&gt;Yes&lt;/td&gt; 
   &lt;td&gt;No&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Auto enabled&lt;/td&gt; 
   &lt;td&gt;Yes(*)&lt;/td&gt; 
   &lt;td&gt;No&lt;/td&gt; 
   &lt;td&gt;Yes&lt;/td&gt; 
   &lt;td&gt;No&lt;/td&gt; 
   &lt;td&gt;Yes&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;(*) AltServer running on the local network is required.&lt;/p&gt; 
&lt;h2&gt;Contributors&lt;/h2&gt; 
&lt;p&gt;PojavLauncher is amazing, and surprisingly stable, and it wouldn&#39;t be this way without the commmunity that helped and contribute to the project! Some notable names:&lt;/p&gt; 
&lt;p&gt;@khanhduytran0 - Lead iOS port developer&lt;br /&gt; @crystall1nedev - Lead iOS port developer&lt;br /&gt; @artdeell&lt;br /&gt; @Mathius-Boulay&lt;br /&gt; @zhuowei&lt;br /&gt; @jkcoxson&lt;br /&gt; @Diatrus&lt;/p&gt; 
&lt;h2&gt;Third party components and their licenses&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/PojavLauncherTeam/caciocavallo&quot;&gt;Caciocavallo&lt;/a&gt;: &lt;a href=&quot;https://github.com/PojavLauncherTeam/caciocavallo/raw/master/LICENSE&quot;&gt;GNU GPLv2 License&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://code.google.com/p/jsr-305&quot;&gt;jsr305&lt;/a&gt;: &lt;a href=&quot;http://opensource.org/licenses/BSD-3-Clause&quot;&gt;3-Clause BSD License&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/zhuowei/Boardwalk&quot;&gt;Boardwalk&lt;/a&gt;: &lt;a href=&quot;https://github.com/zhuowei/Boardwalk/raw/master/LICENSE&quot;&gt;Apache 2.0 License&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/ptitSeb/gl4es&quot;&gt;GL4ES&lt;/a&gt; by @lunixbochs @ptitSeb: &lt;a href=&quot;https://github.com/ptitSeb/gl4es/raw/master/LICENSE&quot;&gt;MIT License&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://gitlab.freedesktop.org/mesa/mesa&quot;&gt;Mesa 3D Graphics Library&lt;/a&gt;: &lt;a href=&quot;https://docs.mesa3d.org/license.html&quot;&gt;MIT License&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/khanhduytran0/metalangle&quot;&gt;MetalANGLE&lt;/a&gt; by @kakashidinho and ANGLE team: &lt;a href=&quot;https://github.com/kakashidinho/metalangle/raw/master/LICENSE&quot;&gt;BSD 2.0 License&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/KhronosGroup/MoltenVK&quot;&gt;MoltenVK&lt;/a&gt;: &lt;a href=&quot;https://github.com/KhronosGroup/MoltenVK/raw/master/LICENSE&quot;&gt;Apache 2.0 License&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/kcat/openal-soft&quot;&gt;openal-soft&lt;/a&gt;: &lt;a href=&quot;https://github.com/kcat/openal-soft/raw/master/COPYING&quot;&gt;LGPLv2 License&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.azul.com/downloads/?package=jdk&quot;&gt;Azul Zulu JDK&lt;/a&gt;: &lt;a href=&quot;https://openjdk.java.net/legal/gplv2+ce.html&quot;&gt;GNU GPLv2 License&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/PojavLauncherTeam/lwjgl3&quot;&gt;LWJGL3&lt;/a&gt;: &lt;a href=&quot;https://github.com/LWJGL/lwjgl3/raw/master/LICENSE.md&quot;&gt;BSD-3 License&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/PojavLauncherTeam/lwjglx&quot;&gt;LWJGLX&lt;/a&gt; (LWJGL2 API compatibility layer for LWJGL3): unknown license.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/khanhduytran0/DBNumberedSlider&quot;&gt;DBNumberedSlider&lt;/a&gt;: &lt;a href=&quot;https://github.com/immago/DBNumberedSlider/raw/master/LICENSE&quot;&gt;Apache 2.0 License&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/khanhduytran0/fishhook&quot;&gt;fishhook&lt;/a&gt;: &lt;a href=&quot;https://github.com/facebook/fishhook/raw/main/LICENSE&quot;&gt;BSD-3 License&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/khanhduytran0/shaderc&quot;&gt;shaderc&lt;/a&gt; (used by Vulkan rendering mods): &lt;a href=&quot;https://github.com/google/shaderc/raw/main/LICENSE&quot;&gt;Apache 2.0 License&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/mozilla-mobile/firefox-ios/tree/b2f89ac40835c5988a1a3eb642982544e00f0f90/ThirdParty/NRFileManager&quot;&gt;NRFileManager&lt;/a&gt;: &lt;a href=&quot;https://www.mozilla.org/en-US/MPL/2.0&quot;&gt;MPL-2.0 License&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/rileytestut/AltKit&quot;&gt;AltKit&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/abbeycode/UnzipKit&quot;&gt;UnzipKit&lt;/a&gt;: &lt;a href=&quot;https://github.com/abbeycode/UnzipKit/raw/master/LICENSE&quot;&gt;BSD-2 License&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/xpn/DyldDeNeuralyzer&quot;&gt;DyldDeNeuralyzer&lt;/a&gt;: bypasses Library Validation for loading external runtime&lt;/li&gt; 
 &lt;li&gt;Thanks to &lt;a href=&quot;https://mc-heads.net&quot;&gt;MCHeads&lt;/a&gt; for providing Minecraft avatars.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Special thanks to MacStadium!&lt;/h2&gt; 
&lt;p&gt;This project is listed under the MacStadium Open Source Program, which allows all of us developers to keep on moving forward even without physical access to a Mac.&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/55281754/183129754-c3736bb9-d528-4af7-9351-a12b3be7549e.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt; 
&lt;!-- sillysock was here --&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/b3fc8509d65928b6032637d062f5f3f263c7f4d4413c244f07db1809c630070b/PojavLauncherTeam/PojavLauncher_iOS" medium="image" />
      
    </item>
    
    <item>
      <title>Mininglamp-OSS/octo-ios</title>
      <link>https://github.com/Mininglamp-OSS/octo-ios</link>
      <description>&lt;p&gt;OCTO iOS Client — Open-source enterprise IM&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/docs/assets/logo-light.png#gh-light-mode-only&quot; width=&quot;200&quot; alt=&quot;OCTO&quot; /&gt; &lt;img src=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/docs/assets/logo-dark.png#gh-dark-mode-only&quot; width=&quot;200&quot; alt=&quot;OCTO&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;b&gt;OCTO — the open workplace built for humans × AI agents.&lt;/b&gt;&lt;br /&gt; &lt;sub&gt;Let &lt;b&gt;Lobsters&lt;/b&gt; (OpenClaw-powered digital doubles) do the &lt;i&gt;thinking&lt;/i&gt; and &lt;i&gt;doing&lt;/i&gt;. You focus on &lt;i&gt;taste&lt;/i&gt;.&lt;/sub&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/Mininglamp-OSS&quot;&gt;&lt;b&gt;🏠 OCTO Home&lt;/b&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/#-quickstart&quot;&gt;&lt;b&gt;🚀 Quickstart&lt;/b&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/#-octo-ecosystem&quot;&gt;&lt;b&gt;📦 Ecosystem&lt;/b&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/CONTRIBUTING.md&quot;&gt;&lt;b&gt;🤝 Contributing&lt;/b&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/License-Apache_2.0-blue.svg?sanitize=true&quot; alt=&quot;License&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/README.zh.md&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/lang-%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87-red.svg?sanitize=true&quot; alt=&quot;简体中文&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;hr /&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;🌐 &lt;strong&gt;Read in&lt;/strong&gt;: &lt;strong&gt;English&lt;/strong&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/README.zh.md&quot;&gt;简体中文&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h1&gt;OCTO iOS&lt;/h1&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Native iOS client&lt;/strong&gt; for the OCTO messaging platform — Swift / Objective-C, talking to &lt;code&gt;octo-server&lt;/code&gt; over REST + WebSocket.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;code&gt;octo-ios&lt;/code&gt; is the official iOS front-end for OCTO. It is a native Swift / Objective-C app (not a webview wrapper) that talks to &lt;a href=&quot;https://github.com/Mininglamp-OSS/octo-server&quot;&gt;&lt;code&gt;octo-server&lt;/code&gt;&lt;/a&gt; over REST + WebSocket, and drives the same Lobster-agent conversation surface as &lt;a href=&quot;https://github.com/Mininglamp-OSS/octo-web&quot;&gt;&lt;code&gt;octo-web&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://github.com/Mininglamp-OSS/octo-android&quot;&gt;&lt;code&gt;octo-android&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;🌟 Why OCTO iOS&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Native, not a webview.&lt;/strong&gt; UIKit + SwiftUI hybrid, uses platform features (APNS push, Share / Notification / Widget extensions, Universal Links, Shortcuts) rather than shipping a browser shell. First-class mobile UX for Lobster conversations.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Ships without secrets.&lt;/strong&gt; No &lt;code&gt;GoogleService-Info.plist&lt;/code&gt;, no signing certificates, no provisioning profiles bound to the upstream team. You bring your own Apple Developer team, your own Bundle Identifier (&lt;code&gt;com.example.octo&lt;/code&gt; placeholder → &lt;code&gt;com.yourcompany.octo&lt;/code&gt;), your own Firebase project, your own certificates. All stripped by the &lt;code&gt;octo-release&lt;/code&gt; pipeline before this repo is published.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Mirrors the web surface.&lt;/strong&gt; Same REST + WebSocket protocol as &lt;code&gt;octo-web&lt;/code&gt; / &lt;code&gt;octo-android&lt;/code&gt;, same i18n resource keys (English · 简体中文), same Lobster identity / streaming / typing indicators — so feature work can land on three clients without a protocol fork.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;🚀 Quickstart&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;⚠️ Mandatory pre-flight&lt;/strong&gt; — this fork will &lt;strong&gt;not&lt;/strong&gt; build a signed or distributable &lt;code&gt;.ipa&lt;/code&gt; until you swap four placeholder artefacts:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Bundle Identifier&lt;/strong&gt; — see &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/README-BUNDLE-ID.md&quot;&gt;&lt;code&gt;README-BUNDLE-ID.md&lt;/code&gt;&lt;/a&gt; for the full rename checklist across the &lt;code&gt;.pbxproj&lt;/code&gt;, entitlements, and every extension target (&lt;code&gt;com.example.octo&lt;/code&gt; → your reverse-DNS).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Firebase configuration&lt;/strong&gt; — see &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/firebase-template.md&quot;&gt;&lt;code&gt;firebase-template.md&lt;/code&gt;&lt;/a&gt; for how to obtain and drop in your own &lt;code&gt;GoogleService-Info.plist&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Provisioning / certificates&lt;/strong&gt; — use your Apple Developer team&#39;s own signing certificate and provisioning profile; the upstream fork references none.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Universal Links&lt;/strong&gt; — see &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/universal-link-setup.md&quot;&gt;&lt;code&gt;universal-link-setup.md&lt;/code&gt;&lt;/a&gt; for the &lt;code&gt;apple-app-site-association&lt;/code&gt; file that your domain must host before deep-links resolve to your build.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Once those are done, open in Xcode:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/Mininglamp-OSS/octo-ios.git
cd octo-ios

# CocoaPods (if used):
pod install

# Or Swift Package Manager — handled by Xcode on open.

open OCTO.xcworkspace   # or OCTO.xcodeproj
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;From CLI, a development build after signing is configured:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;xcodebuild -workspace OCTO.xcworkspace \
    -scheme OCTO \
    -configuration Debug \
    -destination &#39;generic/platform=iOS Simulator&#39; \
    build
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;By default the app points at &lt;code&gt;http://localhost:8080&lt;/code&gt; for &lt;code&gt;octo-server&lt;/code&gt;. Edit &lt;code&gt;OCTO/Config/Config.plist&lt;/code&gt; (or the flavour-specific equivalent) to aim at your own deployment.&lt;/p&gt; 
&lt;h2&gt;📦 Modules / Architecture&lt;/h2&gt; 
&lt;p&gt;Top-level layout (typical OCTO iOS tree):&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Path&lt;/th&gt; 
   &lt;th&gt;Purpose&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OCTO/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Main app target — view controllers, SwiftUI views, app delegate&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OCTO/UI/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Screen surfaces: chat, channels, org, settings&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OCTO/Data/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;REST + WebSocket client, local cache, Core Data / Realm models&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OCTO/Agent/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Lobster-aware UI components (streaming, tool-call previews, agent identity)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OCTO/Push/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;APNS registration + push routing + notification-service extension&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OCTO/Resources/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Assets, localisations (&lt;code&gt;en.lproj&lt;/code&gt;, &lt;code&gt;zh-Hans.lproj&lt;/code&gt;), launch storyboards&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;ShareExtension/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Share-sheet target for forwarding content into OCTO&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;NotificationExtension/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Rich-notification + encryption-aware decryption target&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;WuKongSDK/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;WuKongIM iOS client wrapper (real-time messaging transport)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;Pods/&lt;/code&gt; or &lt;code&gt;Packages/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;CocoaPods / SPM dependencies&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Runtime pillars:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Auth&lt;/strong&gt; — token / refresh-token stored in Keychain.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Transport&lt;/strong&gt; — &lt;code&gt;URLSession&lt;/code&gt; for REST; WuKongIM iOS SDK for the persistent WebSocket.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Persistence&lt;/strong&gt; — Core Data (or Realm, depending on flavour) for message cache and offline drafts; file attachments under the app container.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Push&lt;/strong&gt; — APNS device token → &lt;code&gt;octo-server&lt;/code&gt; → Firebase fan-out (optional) → Notification-Service extension decrypts the payload before display.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;UI&lt;/strong&gt; — UIKit navigation skeleton + SwiftUI screens where it pays off; Dynamic Type + Dark Mode supported by default.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;🔗 OCTO Ecosystem&lt;/h2&gt; 
&lt;!-- shared snippet: OCTO repo matrix. Keep identical across all 9 repos. --&gt; 
&lt;pre&gt;&lt;code class=&quot;language-mermaid&quot;&gt;graph TD
  subgraph Clients[Clients]
    Web[octo-web&amp;lt;br/&amp;gt;Web / PC]
    Android[octo-android&amp;lt;br/&amp;gt;Android]
    iOS[octo-ios&amp;lt;br/&amp;gt;iOS]
  end

  subgraph Core[Core Services]
    Server[octo-server&amp;lt;br/&amp;gt;Backend API]
    Matter[octo-matter&amp;lt;br/&amp;gt;Task / Todo]
    Summary[octo-smart-summary&amp;lt;br/&amp;gt;AI Summary]
    Admin[octo-admin&amp;lt;br/&amp;gt;Admin Console]
  end

  subgraph Shared[Shared Libraries &amp;amp; Integrations]
    Lib[octo-lib&amp;lt;br/&amp;gt;Core Go Library]
    Adapters[octo-adapters&amp;lt;br/&amp;gt;Third-party Adapters]
  end

  Web --&amp;gt; Server
  Android --&amp;gt; Server
  iOS --&amp;gt; Server
  Admin --&amp;gt; Server
  Server --&amp;gt; Matter
  Server --&amp;gt; Summary
  Server --&amp;gt; Adapters
  Server -.uses.-&amp;gt; Lib
  Matter -.uses.-&amp;gt; Lib
  Adapters -.uses.-&amp;gt; Lib
&lt;/code&gt;&lt;/pre&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Repository&lt;/th&gt; 
   &lt;th&gt;Language&lt;/th&gt; 
   &lt;th&gt;Role&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Mininglamp-OSS/octo-server&quot;&gt;&lt;code&gt;octo-server&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Go&lt;/td&gt; 
   &lt;td&gt;Backend API · business orchestration · Lobster agent scheduling&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Mininglamp-OSS/octo-matter&quot;&gt;&lt;code&gt;octo-matter&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Go&lt;/td&gt; 
   &lt;td&gt;Task / Todo / Matter micro-service&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Mininglamp-OSS/octo-smart-summary&quot;&gt;&lt;code&gt;octo-smart-summary&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Go&lt;/td&gt; 
   &lt;td&gt;LLM-powered conversation summarisation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Mininglamp-OSS/octo-web&quot;&gt;&lt;code&gt;octo-web&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;TypeScript / React&lt;/td&gt; 
   &lt;td&gt;Web &amp;amp; PC (Electron) client&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Mininglamp-OSS/octo-android&quot;&gt;&lt;code&gt;octo-android&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Kotlin / Java&lt;/td&gt; 
   &lt;td&gt;Native Android client&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Mininglamp-OSS/octo-ios&quot;&gt;&lt;code&gt;octo-ios&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Swift / Objective-C&lt;/td&gt; 
   &lt;td&gt;Native iOS client&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Mininglamp-OSS/octo-admin&quot;&gt;&lt;code&gt;octo-admin&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;TypeScript / React&lt;/td&gt; 
   &lt;td&gt;Admin console (tenant / org / user / channel management)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Mininglamp-OSS/octo-lib&quot;&gt;&lt;code&gt;octo-lib&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Go&lt;/td&gt; 
   &lt;td&gt;Shared core library (protocol, crypto, storage, HTTP)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://github.com/Mininglamp-OSS/octo-adapters&quot;&gt;&lt;code&gt;octo-adapters&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;TypeScript / Python&lt;/td&gt; 
   &lt;td&gt;Third-party integrations (IM bridges, AI channels)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;🧭 Philosophy&lt;/h2&gt; 
&lt;p&gt;OCTO ships under three shared principles that apply to every repository in this matrix:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Local-first.&lt;/strong&gt; Anything that can run on the user&#39;s own box — chats, embeddings, agents — should. Your data stays yours; cloud is a choice, not a requirement.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Humans judge, AI thinks and acts.&lt;/strong&gt; Humans focus on &lt;em&gt;taste&lt;/em&gt; (what matters, what&#39;s right, what to ship). Lobster agents — OpenClaw-powered digital doubles — carry the &lt;em&gt;thinking&lt;/em&gt; and &lt;em&gt;execution&lt;/em&gt; load.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Release-as-product.&lt;/strong&gt; Every open-source cut is shipped as a self-contained product, not a code dump: one squash per release, Apache 2.0, no internal baggage, reproducible from this repo alone.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;🤝 Contributing&lt;/h2&gt; 
&lt;p&gt;We love pull requests! Before you open one, please read:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt; — workflow, branch model, commit style&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/CODE_OF_CONDUCT.md&quot;&gt;CODE_OF_CONDUCT.md&lt;/a&gt; — community expectations&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;For security issues please follow &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/SECURITY.md&quot;&gt;SECURITY.md&lt;/a&gt; instead of the public tracker.&lt;/p&gt; 
&lt;h2&gt;📄 License&lt;/h2&gt; 
&lt;p&gt;Apache License 2.0 — see &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/LICENSE&quot;&gt;LICENSE&lt;/a&gt; for the full text and &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/NOTICE&quot;&gt;NOTICE&lt;/a&gt; for third-party attributions.&lt;/p&gt; 
&lt;h2&gt;🙏 Acknowledgments&lt;/h2&gt; 
&lt;p&gt;&lt;code&gt;octo-ios&lt;/code&gt; owes its original scaffolding to:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/TangSengDaoDao/TangSengDaoDaoiOS&quot;&gt;TangSengDaoDaoiOS&lt;/a&gt;&lt;/strong&gt; — our upstream, by the TangSengDaoDao team.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/WuKongIM/WuKongIM&quot;&gt;WuKongIM&lt;/a&gt;&lt;/strong&gt; — the real-time messaging core that &lt;code&gt;octo-server&lt;/code&gt; drives behind this client.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;See &lt;a href=&quot;https://raw.githubusercontent.com/Mininglamp-OSS/octo-ios/main/NOTICE&quot;&gt;NOTICE&lt;/a&gt; for the full attribution list and third-party component licenses.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;sub&gt;Made with 🐙 by &lt;b&gt;OCTO Contributors&lt;/b&gt; · &lt;a href=&quot;https://github.com/Mininglamp-OSS&quot;&gt;Mininglamp-OSS&lt;/a&gt;&lt;/sub&gt; &lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/278b8297f045e9c2c66ab309ab5d4a32e285e32df6fce239c5a65fae3b521d62/Mininglamp-OSS/octo-ios" medium="image" />
      
    </item>
    
    <item>
      <title>geode-sdk/ios-launcher</title>
      <link>https://github.com/geode-sdk/ios-launcher</link>
      <description>&lt;p&gt;Manages installing and launching Geometry Dash for iOS&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Geode iOS Launcher&lt;/h1&gt; 
&lt;p&gt;Manages installing and launching &lt;strong&gt;Geometry Dash&lt;/strong&gt; with &lt;strong&gt;Geode&lt;/strong&gt; for iOS.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/geode-sdk/ios-launcher/main/screenshots/thumbnail.png&quot; /&gt; &lt;/p&gt; 
&lt;h2&gt;Requirements&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;iOS/iPadOS 14.0 or later&lt;/li&gt; 
 &lt;li&gt;Full version of Geometry Dash installed&lt;/li&gt; 
 &lt;li&gt;An internet connection&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Quick Start&lt;/h2&gt; 
&lt;ol&gt; 
 &lt;li&gt;Navigate to &lt;a href=&quot;https://github.com/geode-sdk/ios-launcher/releases/latest&quot;&gt;https://github.com/geode-sdk/ios-launcher/releases/latest&lt;/a&gt;, if you are not &lt;strong&gt;jailbroken&lt;/strong&gt;, download the latest &lt;strong&gt;ipa&lt;/strong&gt; file. If you wish to use the tweak and have &lt;strong&gt;TrollStore&lt;/strong&gt;, download the latest &lt;strong&gt;tipa&lt;/strong&gt; file.&lt;/li&gt; 
 &lt;li&gt;Install the launcher by following the &lt;a href=&quot;https://raw.githubusercontent.com/geode-sdk/ios-launcher/main/INSTALL.md&quot;&gt;Installation Guide&lt;/a&gt;. You can also access this guide by going in to the &lt;strong&gt;&lt;a href=&quot;http://INSTALL.md&quot;&gt;INSTALL.md&lt;/a&gt;&lt;/strong&gt; file in this repository.&lt;/li&gt; 
 &lt;li&gt;Enjoy using Geode!&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Support&lt;/h2&gt; 
&lt;p&gt;If you have any further questions, or need help, be sure to join &lt;a href=&quot;https://discord.gg/9e43WMKzhp&quot;&gt;our Discord server&lt;/a&gt;!&lt;/p&gt; 
&lt;h2&gt;Building / Development&lt;/h2&gt; 
&lt;p&gt;To build this project, you must have the following prerequisites installed:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://theos.dev/docs/&quot;&gt;Theos&lt;/a&gt; [WSL for Windows and GNU/Linux]&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://formulae.brew.sh/formula/make&quot;&gt;make&lt;/a&gt; [Mac OS only]&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;After installing these, you can compile the project by running:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone --recurse-submodules https://github.com/geode-sdk/ios-launcher
cd ios-launcher
make package FINALPACKAGE=1 STRIP=0
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Libraries&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/khanhduytran0/LiveContainer&quot;&gt;LiveContainer&lt;/a&gt; - Made the launcher possible!&lt;/li&gt; 
 &lt;li&gt;Feather&#39;s &lt;a href=&quot;https://github.com/khcrysalis/Zsign-Package&quot;&gt;Zsign&lt;/a&gt; fork - For signing the app and mods for allowing the launcher to load JIT-less! (Originally made by &lt;a href=&quot;https://github.com/zhlynn/zsign&quot;&gt;zhlynn&lt;/a&gt;, but forked for &lt;a href=&quot;https://github.com/khcrysalis/Feather&quot;&gt;Feather&lt;/a&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/sgl0v/MSColorPicker&quot;&gt;MSColorPicker&lt;/a&gt; - Helper for Color Picking&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/swisspol/GCDWebServer&quot;&gt;GCDWebServer&lt;/a&gt; - For the web debug panel!&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;This project is licensed under the &lt;a href=&quot;https://raw.githubusercontent.com/geode-sdk/ios-launcher/main/LICENSE&quot;&gt;Boost Software License 1.0&lt;/a&gt;. Additionally, this project also uses code from &lt;a href=&quot;https://github.com/khanhduytran0/LiveContainer&quot;&gt;LiveContainer&lt;/a&gt;. View the &lt;a href=&quot;https://raw.githubusercontent.com/geode-sdk/ios-launcher/main/NOTICE.md&quot;&gt;NOTICE.md&lt;/a&gt; for more details.&lt;/p&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/936793054/d358c7aa-b624-44a1-ba0e-7ed75185b1c9" medium="image" />
      
    </item>
    
    <item>
      <title>roothide/Bootstrap</title>
      <link>https://github.com/roothide/Bootstrap</link>
      <description>&lt;p&gt;A full featured bootstrap for iOS 15.0-17.0 A8-A17Pro &amp; M1+M2 using roothide&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;roothide Bootstrap&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/roothide/Bootstrap/stargazers&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/stars/roothide/Bootstrap?style=social&quot; alt=&quot;GitHub stars&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;A full featured bootstrap for iOS 15.0-17.0 A8-A17Pro &amp;amp; M1+M2 using roothide.&lt;/p&gt; 
&lt;h5&gt;&lt;em&gt;WARNING:&lt;/em&gt; By using this software, you take full responsibility for what you do with it. Any unofficial modifications to your device may cause irreparable damage. Refer to the FAQ linked in the &lt;code&gt;Usage&lt;/code&gt; section for safe usage of this software.&lt;/h5&gt; 
&lt;p&gt;roothide Bootstrap is available to download on this repositories &lt;a href=&quot;https://github.com/roothide/Bootstrap/releases&quot;&gt;Releases&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Building&lt;/h2&gt; 
&lt;p&gt;If you do not have access to MacOS, refer to the FAQ in the &lt;code&gt;Usage&lt;/code&gt; section to build with GitHub Actions instead.&lt;/p&gt; 
&lt;p&gt;You&#39;ll need MacOS to build, as you require Xcode from the App Store. Simply having Xcode Command Line Tools is &lt;em&gt;insufficient&lt;/em&gt;. Here&#39;s how to build the Bootstrap:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Update/Install Theos with roothide support&lt;/p&gt; &lt;pre&gt;&lt;code&gt;bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/roothide/theos/master/bin/install-theos)&quot;
&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;&lt;em&gt;If you encounter errors from a previous Theos installation, remove Theos in its entirety before continuing.&lt;/em&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Clone the GitHub repository and enter directory&lt;/p&gt; &lt;pre&gt;&lt;code&gt;git clone https://github.com/roothide/Bootstrap/ &amp;amp;&amp;amp; cd Bootstrap
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Build &lt;code&gt;Bootstrap.tipa&lt;/code&gt;&lt;/p&gt; &lt;pre&gt;&lt;code&gt;make package
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Transfer &lt;code&gt;Bootstrap.tipa&lt;/code&gt; from &lt;code&gt;./packages/&lt;/code&gt; to your device and install it with TrollStore&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Usage&lt;/h2&gt; 
&lt;p&gt;The roothide Bootstrap application &lt;strong&gt;must&lt;/strong&gt; be installed with &lt;a href=&quot;https://ios.cfw.guide/installing-trollstore/&quot;&gt;TrollStore&lt;/a&gt;. Use version &lt;code&gt;2.0.9&lt;/code&gt; or later for enabling developer mode on-device.&lt;/p&gt; 
&lt;p&gt;By design, roothide does not inject tweaks into any 3rd applications by default. To enable tweak injection into an application, press &lt;code&gt;App List&lt;/code&gt; in the Bootstrap app, and enable the toggle of the application you want to inject into.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;For installing Bootstrap&lt;/strong&gt;, refer to the guides at &lt;a href=&quot;https://onejailbreak.com/blog/bootstrap-roothide/&quot;&gt;https://onejailbreak.com/blog/bootstrap-roothide/&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Develop tweaks&lt;/h2&gt; 
&lt;p&gt;You can refer to the developer documentation &lt;a href=&quot;https://github.com/roothide/Developer&quot;&gt;here&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Discord server&lt;/h2&gt; 
&lt;p&gt;You can join the roothide Discord server for support or general discussion &lt;a href=&quot;https://discord.gg/ZvY2Yjw8GA&quot;&gt;here&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;The &quot;Our Table&quot; Icon&lt;/h2&gt; 
&lt;p&gt;The ProcursusTeam logo was originally made by &lt;a href=&quot;https://github.com/TheAlphaStream&quot;&gt;@TheAlphaStream&lt;/a&gt;, and later edited by &lt;a href=&quot;https://github.com/sourcelocation&quot;&gt;@sourcelocation&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Credits&lt;/h2&gt; 
&lt;p&gt;Huge thanks to these people, we couldn&#39;t have completed this project without their help!&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;absidue: &lt;a href=&quot;https://github.com/absidue&quot;&gt;https://github.com/absidue&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;akusio: &lt;a href=&quot;https://twitter.com/akusio_rr&quot;&gt;https://twitter.com/akusio_rr&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Alfie: &lt;a href=&quot;https://alfiecg.uk&quot;&gt;https://alfiecg.uk&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Amy While: &lt;a href=&quot;http://github.com/elihwyma&quot;&gt;http://github.com/elihwyma&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Barron: &lt;a href=&quot;https://tweaksdev22.github.io&quot;&gt;https://tweaksdev22.github.io&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;BomberFish: &lt;a href=&quot;https://twitter.com/bomberfish77&quot;&gt;https://twitter.com/bomberfish77&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;bswbw: &lt;a href=&quot;https://twitter.com/bswbw&quot;&gt;https://twitter.com/bswbw&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Capt Inc: &lt;a href=&quot;http://github.com/captinc&quot;&gt;http://github.com/captinc&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;CKatri: &lt;a href=&quot;https://procursus.social/@cameron&quot;&gt;https://procursus.social/@cameron&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Clarity: &lt;a href=&quot;http://github.com/TheRealClarity&quot;&gt;http://github.com/TheRealClarity&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Cryptic: &lt;a href=&quot;http://github.com/Cryptiiiic&quot;&gt;http://github.com/Cryptiiiic&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;dxcool223x: &lt;a href=&quot;https://twitter.com/dxcool223x&quot;&gt;https://twitter.com/dxcool223x&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Dhinakg: &lt;a href=&quot;http://github.com/dhinakg&quot;&gt;http://github.com/dhinakg&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;DuyKhanhTran: &lt;a href=&quot;https://twitter.com/TranKha50277352&quot;&gt;https://twitter.com/TranKha50277352&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;dleovl: &lt;a href=&quot;https://github.com/dleovl&quot;&gt;https://github.com/dleovl&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Elias Sfeir: &lt;a href=&quot;https://twitter.com/eliassfeir1&quot;&gt;https://twitter.com/eliassfeir1&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Ellie: &lt;a href=&quot;https://twitter.com/elliessurviving&quot;&gt;https://twitter.com/elliessurviving&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;EquationGroups: &lt;a href=&quot;https://twitter.com/equationgroups&quot;&gt;https://twitter.com/equationgroups&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Évelyne: &lt;a href=&quot;http://github.com/evelyneee&quot;&gt;http://github.com/evelyneee&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;GeoSnOw: &lt;a href=&quot;https://twitter.com/fce365&quot;&gt;https://twitter.com/fce365&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;G3n3sis: &lt;a href=&quot;https://twitter.com/G3nNuk_e&quot;&gt;https://twitter.com/G3nNuk_e&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;hayden: &lt;a href=&quot;https://procursus.social/@hayden&quot;&gt;https://procursus.social/@hayden&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Huy Nguyen: &lt;a href=&quot;https://twitter.com/little_34306&quot;&gt;https://twitter.com/little_34306&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;iAdam1n: &lt;a href=&quot;https://twitter.com/iAdam1n&quot;&gt;https://twitter.com/iAdam1n&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;iarrays: &lt;a href=&quot;https://iarrays.com&quot;&gt;https://iarrays.com&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;iDownloadBlog: &lt;a href=&quot;https://twitter.com/idownloadblog&quot;&gt;https://twitter.com/idownloadblog&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;iExmo: &lt;a href=&quot;https://twitter.com/iexmojailbreak&quot;&gt;https://twitter.com/iexmojailbreak&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;iRaMzi: &lt;a href=&quot;https://twitter.com/iramzi7&quot;&gt;https://twitter.com/iramzi7&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Jonathan: &lt;a href=&quot;https://twitter.com/jontelang&quot;&gt;https://twitter.com/jontelang&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Kevin: &lt;a href=&quot;https://github.com/iodes&quot;&gt;https://github.com/iodes&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;kirb: &lt;a href=&quot;http://github.com/kirb&quot;&gt;http://github.com/kirb&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;laileld: &lt;a href=&quot;https://twitter.com/h_h_x_t&quot;&gt;https://twitter.com/h_h_x_t&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Leptos: &lt;a href=&quot;https://github.com/leptos-null&quot;&gt;https://github.com/leptos-null&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;limneos: &lt;a href=&quot;https://twitter.com/limneos&quot;&gt;https://twitter.com/limneos&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Lightmann: &lt;a href=&quot;https://github.com/L1ghtmann&quot;&gt;https://github.com/L1ghtmann&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Linus Henze: &lt;a href=&quot;http://github.com/LinusHenze&quot;&gt;http://github.com/LinusHenze&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;MasterMike: &lt;a href=&quot;https://ios.cfw.guide&quot;&gt;https://ios.cfw.guide&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Misty: &lt;a href=&quot;https://twitter.com/miscmisty&quot;&gt;https://twitter.com/miscmisty&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Muirey03: &lt;a href=&quot;https://twitter.com/Muirey03&quot;&gt;https://twitter.com/Muirey03&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Nathan: &lt;a href=&quot;https://github.com/verygenericname&quot;&gt;https://github.com/verygenericname&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Nebula: &lt;a href=&quot;https://itsnebula.net&quot;&gt;https://itsnebula.net&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;niceios: &lt;a href=&quot;https://twitter.com/niceios&quot;&gt;https://twitter.com/niceios&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Nightwind: &lt;a href=&quot;https://twitter.com/NightwindDev&quot;&gt;https://twitter.com/NightwindDev&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Nick Chan: &lt;a href=&quot;https://nickchan.lol&quot;&gt;https://nickchan.lol&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;nzhaonan: &lt;a href=&quot;https://twitter.com/nzhaonan&quot;&gt;https://twitter.com/nzhaonan&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Oliver Tzeng: &lt;a href=&quot;https://github.com/olivertzeng&quot;&gt;https://github.com/olivertzeng&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;omrkujman: &lt;a href=&quot;https://twitter.com/omrkujman&quot;&gt;https://twitter.com/omrkujman&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;opa334: &lt;a href=&quot;http://github.com/opa334&quot;&gt;http://github.com/opa334&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;onejailbreak: &lt;a href=&quot;https://twitter.com/onejailbreak_&quot;&gt;https://twitter.com/onejailbreak_&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Phuc Do: &lt;a href=&quot;https://twitter.com/dobabaophuc&quot;&gt;https://twitter.com/dobabaophuc&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;PoomSmart: &lt;a href=&quot;https://twitter.com/poomsmart&quot;&gt;https://twitter.com/poomsmart&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;ProcursusTeam: &lt;a href=&quot;https://procursus.social/@team&quot;&gt;https://procursus.social/@team&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;roothide: &lt;a href=&quot;http://github.com/roothide&quot;&gt;http://github.com/roothide&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Sam Bingner: &lt;a href=&quot;http://github.com/sbingner&quot;&gt;http://github.com/sbingner&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Shadow-: &lt;a href=&quot;http://iosjb.top/&quot;&gt;http://iosjb.top/&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Snail: &lt;a href=&quot;https://twitter.com/somnusix&quot;&gt;https://twitter.com/somnusix&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;SquidGesture: &lt;a href=&quot;https://twitter.com/lclrc&quot;&gt;https://twitter.com/lclrc&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;sourcelocation: &lt;a href=&quot;http://github.com/sourcelocation&quot;&gt;http://github.com/sourcelocation&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;SeanIsTethered: &lt;a href=&quot;https://github.com/jailbreakmerebooted&quot;&gt;http://github.com/jailbreakmerebooted&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;TheosTeam: &lt;a href=&quot;https://theos.dev&quot;&gt;https://theos.dev&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;tigisoftware: &lt;a href=&quot;https://twitter.com/tigisoftware&quot;&gt;https://twitter.com/tigisoftware&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;tihmstar: &lt;a href=&quot;https://twitter.com/tihmstar&quot;&gt;https://twitter.com/tihmstar&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;xina520: &lt;a href=&quot;https://twitter.com/xina520&quot;&gt;https://twitter.com/xina520&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;xybp888: &lt;a href=&quot;https://twitter.com/xybp888&quot;&gt;https://twitter.com/xybp888&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;xsf1re: &lt;a href=&quot;https://twitter.com/xsf1re&quot;&gt;https://twitter.com/xsf1re&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;yandevelop: &lt;a href=&quot;https://twitter.com/yandevelop&quot;&gt;https://twitter.com/yandevelop&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;YourRepo: &lt;a href=&quot;https://twitter.com/yourepo&quot;&gt;https://twitter.com/yourepo&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;And &lt;em&gt;&lt;strong&gt;you&lt;/strong&gt;&lt;/em&gt;, the community, for giving insightful feedback and support.&lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/f0152e0a8e27ddad2c70e531a553617d626cd046cd9de0f6d7210c03c4c75f59/roothide/Bootstrap" medium="image" />
      
    </item>
    
    <item>
      <title>roothide/Developer</title>
      <link>https://github.com/roothide/Developer</link>
      <description>&lt;p&gt;document for tweak Developers&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;update jailbreak apps/tweaks for roothide&lt;/h1&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;install roothide/theos&lt;/p&gt; &lt;p&gt;&lt;code&gt;bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/roothide/theos/master/bin/install-theos)&quot;&lt;/code&gt;&lt;/p&gt; &lt;p&gt;and it&#39;s always automatically synchronized and maintains 100% compatibility with the original theos.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Build package for roothide&lt;/p&gt; &lt;p&gt;for those simple tweaks that don&#39;t use the file api to access jailbreak files, just&lt;/p&gt; &lt;p&gt;&lt;code&gt;make package&lt;/code&gt; with &lt;code&gt;THEOS_PACKAGE_SCHEME=roothide&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Using &lt;code&gt;roothide&lt;/code&gt; APIs if you need to use the file apis to access jailbreak files in source code&lt;/p&gt; &lt;pre&gt;&lt;code&gt;#include &amp;lt;roothide.h&amp;gt;

//then using roothide api to access jailbreak files

const char* c_path = jbroot(&quot;/path/to/jb/file&quot;);

NSString* objc_path = jbroot(@&quot;/path/to/jb/file&quot;);

std::string cpp_path = jbroot(std::string(&quot;/path/to/jb/file&quot;));
&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;the &lt;code&gt;jbroot&lt;/code&gt; API can be used in C/C++/Objective-C/Swift and its fully compatible with building rootful/rootless package&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;In Swift project, it&#39;s better to use a swift bridging header file for &lt;code&gt;#include &amp;lt;roothide.h&amp;gt;&lt;/code&gt; instead of using &lt;code&gt;import roothide&lt;/code&gt; in swift source files. this will ensure your project is compatible with building rootful/rootless, ref to &lt;a href=&quot;https://theos.dev/docs/swift#:~:text=Objective%2DC%20to%20Swift&quot;&gt;https://theos.dev/docs/swift#:~:text=Objective-C to Swift&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Add these &lt;code&gt;entitlements&lt;/code&gt; to your executable/app to make them work correctly with roothide:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;&amp;lt;key&amp;gt;platform-application&amp;lt;/key&amp;gt;
&amp;lt;true/&amp;gt;
&amp;lt;key&amp;gt;com.apple.private.security.no-sandbox&amp;lt;/key&amp;gt;
&amp;lt;true/&amp;gt;
&amp;lt;key&amp;gt;com.apple.private.security.storage.AppBundles&amp;lt;/key&amp;gt;
&amp;lt;true/&amp;gt;
&amp;lt;key&amp;gt;com.apple.private.security.storage.AppDataContainers&amp;lt;/key&amp;gt;
&amp;lt;true/&amp;gt;
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;If you want to build your project with Xcode instead of theos,&lt;br /&gt; here is the roothide sdk: &lt;a href=&quot;https://github.com/roothide/libroothide/releases/latest&quot;&gt;devkit.zip&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;roothide/theos is now compatible with building roothide packages from existing tweak projects that use rootless path macros, there is a warning message to ensure you have read this document and you can define the &lt;code&gt;DISABLE_ROOTLESS_COMPAT_WARNING&lt;/code&gt; macro to silence the message.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;For more details about roothide, please refer to&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/roothide/Developer/main/roothide.md&quot;&gt;the difference between roothide and legacy rootless&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/roothide/Developer/main/entitlements.md&quot;&gt;entitlements and data sharing via files&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/roothide/Developer/main/interface.md&quot;&gt;roothide&#39;s sdk api and tools&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h1&gt;support&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;roothideDev: &lt;a href=&quot;https://twitter.com/roothideDev&quot;&gt;https://twitter.com/roothideDev&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;roothide/theos-dev: &lt;a href=&quot;https://discord.gg/qaCFxr33CV&quot;&gt;https://discord.gg/qaCFxr33CV&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h1&gt;more info&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;roothide discord server: &lt;a href=&quot;https://discord.gg/ZvY2Yjw8GA&quot;&gt;https://discord.gg/ZvY2Yjw8GA&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;theos dev discord server: &lt;a href=&quot;https://discord.gg/z4RTnrcbKW&quot;&gt;https://discord.gg/z4RTnrcbKW&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/89fffa828c9b75c03811130a49c7960d921e2115d582bd755b790c085c21b758/roothide/Developer" medium="image" />
      
    </item>
    
    <item>
      <title>mixpanel/mixpanel-iphone</title>
      <link>https://github.com/mixpanel/mixpanel-iphone</link>
      <description>&lt;p&gt;Official iOS (Objective-C) Tracking Library for Mixpanel Analytics&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;a href=&quot;https://travis-ci.org/mixpanel/mixpanel-iphone&quot;&gt;&lt;img src=&quot;https://travis-ci.org/mixpanel/mixpanel-iphone.svg?branch=yolo-travis-ci&quot; alt=&quot;Build Status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://isitmaintained.com/project/mixpanel/mixpanel-iphone&quot; title=&quot;Average time to resolve an issue&quot;&gt;&lt;img src=&quot;http://isitmaintained.com/badge/resolution/mixpanel/mixpanel-iphone.svg?sanitize=true&quot; alt=&quot;Average time to resolve an issue&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://isitmaintained.com/project/mixpanel/mixpanel-iphone&quot; title=&quot;Percentage of issues still open&quot;&gt;&lt;img src=&quot;http://isitmaintained.com/badge/open/mixpanel/mixpanel-iphone.svg?sanitize=true&quot; alt=&quot;Percentage of issues still open&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://mixpanel.com&quot;&gt;&lt;img src=&quot;http://img.shields.io/cocoapods/v/Mixpanel.svg?style=flat&quot; alt=&quot;CocoaPods Version&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/Carthage/Carthage&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat&quot; alt=&quot;Carthage compatible&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://mixpanel.com&quot;&gt;&lt;img src=&quot;http://img.shields.io/cocoapods/l/Mixpanel.svg?style=flat&quot; alt=&quot;Apache License&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h1&gt;Table of Contents&lt;/h1&gt; 
&lt;!-- MarkdownTOC --&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/mixpanel/mixpanel-iphone/master/#overview&quot;&gt;Overview&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/mixpanel/mixpanel-iphone/master/#quick-start-guide&quot;&gt;Quick Start Guide&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/mixpanel/mixpanel-iphone/master/#1-install-mixpanel&quot;&gt;Install Mixpanel&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/mixpanel/mixpanel-iphone/master/#2-initialize-mixpanel&quot;&gt;Initialize Mixpanel&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/mixpanel/mixpanel-iphone/master/#3-send-data&quot;&gt;Send Data&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/mixpanel/mixpanel-iphone/master/#4-check-for-success&quot;&gt;Check for Success&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/mixpanel/mixpanel-iphone/master/#complete-code-example&quot;&gt;Complete Code Example&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/mixpanel/mixpanel-iphone/master/#faq&quot;&gt;FAQ&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/mixpanel/mixpanel-iphone/master/#i-want-to-know-more&quot;&gt;I want to know more!&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;!-- /MarkdownTOC --&gt; 
&lt;p&gt;&lt;a name=&quot;introduction&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h1&gt;Overview&lt;/h1&gt; 
&lt;p&gt;The Mixpanel library for iOS is an open source project, and we&#39;d love to see your contributions! We&#39;d also love for you to come and work with us! Check out &lt;a href=&quot;https://mixpanel.com/jobs/#openings&quot;&gt;https://mixpanel.com/jobs/#openings&lt;/a&gt; for details. If you are using Swift, we recommend our &lt;strong&gt;&lt;a href=&quot;https://github.com/mixpanel/mixpanel-swift&quot;&gt;Swift Library&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt; 
&lt;p&gt;Check out our &lt;a href=&quot;https://developer.mixpanel.com/docs/ios&quot;&gt;Advanced iOS - Objective-C Guide&lt;/a&gt; for additional advanced configurations and use cases, like setting up your project with European Union data storage.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/mixpanel/mixpanel-iphone/master/#complete-code-example&quot;&gt;Skip to a complete code example&lt;/a&gt;.&lt;/p&gt; 
&lt;h1&gt;Quick Start Guide&lt;/h1&gt; 
&lt;p&gt;Caution: From v4.0.0.beta.3 to v4.1.0, we have a bug that events with ampersand(&amp;amp;) will be rejected by the server. We recommend you update to v4.1.1 or above.&lt;/p&gt; 
&lt;h2&gt;1. Install Mixpanel&lt;/h2&gt; 
&lt;p&gt;You can install the Mixpanel iOS - Objective-C library by using CocoaPods or Carthage. You will need your project token for initializing your library. You can get your project token from &lt;a href=&quot;https://mixpanel.com/settings/project&quot;&gt;project settings&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Installation Option 1: CocoaPods&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;If this is your first time using CocoaPods, Install CocoaPods using &lt;code&gt;gem install cocoapods&lt;/code&gt;. Otherwise, continue to Step 3.&lt;/li&gt; 
 &lt;li&gt;Run &lt;code&gt;pod setup&lt;/code&gt; to create a local CocoaPods spec mirror.&lt;/li&gt; 
 &lt;li&gt;Create a Podfile in your Xcode project directory by running &lt;code&gt;pod init&lt;/code&gt; in your terminal, edit the Podfile generated, and add the following line: &lt;code&gt;pod &#39;Mixpanel&#39;&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Run &lt;code&gt;pod install&lt;/code&gt; in your Xcode project directory. CocoaPods should download and install the Mixpanel library, and create a new Xcode workspace. Open up this workspace in Xcode or typing &lt;code&gt;open *.xcworkspace&lt;/code&gt; in your terminal.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Installation Option 2: Carthage&lt;/h3&gt; 
&lt;p&gt;Mixpanel supports Carthage to package your dependencies as a framework. Include the following dependency in your Cartfile:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objc&quot;&gt;github &quot;mixpanel/mixpanel-iphone&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Check out the &lt;a href=&quot;https://github.com/Carthage/Carthage#quick-start&quot;&gt;Carthage docs&lt;/a&gt; for more info.&lt;/p&gt; 
&lt;h3&gt;Installation Option 3: Swift Package Manager&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;In Xcode, select File &amp;gt; Add Packages...&lt;/li&gt; 
 &lt;li&gt;Enter the package URL for this &lt;a href=&quot;https://github.com/mixpanel/mixpanel-iphone&quot;&gt;repository&lt;/a&gt; and must select a version greater than or equal to v4.0.0&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;2. Initialize Mixpanel&lt;/h2&gt; 
&lt;p&gt;To initialize the library, add `#Import &quot;Mixpanel/Mixpanel.h&quot; into &quot;AppDelegate.m&quot; and call &lt;a href=&quot;https://mixpanel.github.io/mixpanel-iphone/Classes/Mixpanel.html#//api/name/sharedInstanceWithToken:&quot;&gt;sharedInstanceWithToken:&lt;/a&gt; with your project token as its argument in &lt;a href=&quot;https://developer.apple.com/documentation/uikit/uiapplicationdelegate#//apple_ref/occ/intfm/UIApplicationDelegate/application:willFinishLaunchingWithOptions:&quot;&gt;application:didFinishLaunchingWithOptions:&lt;/a&gt;.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objc&quot;&gt;#import &quot;Mixpanel/Mixpanel.h&quot;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
  [Mixpanel sharedInstanceWithToken:@&quot;YOUR_API_TOKEN&quot; trackAutomaticEvents:NO];
...
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;a href=&quot;https://mixpanel.github.io/mixpanel-iphone/Classes/Mixpanel.html&quot;&gt;See all configuration options&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;3. Send Data&lt;/h2&gt; 
&lt;p&gt;Let&#39;s get started by sending event data. You can send an event from anywhere in your application. Better understand user behavior by storing details that are specific to the event (properties). After initializing the library, Mixpanel will &lt;a href=&quot;https://mixpanel.com/help/questions/articles/which-common-mobile-events-can-mixpanel-collect-on-my-behalf-automatically&quot;&gt;automatically collect common mobile events&lt;/a&gt;. You can enable/disable automatic collection through your &lt;a href=&quot;https://help.mixpanel.com/hc/en-us/articles/115004596186#enable-or-disable-common-mobile-events&quot;&gt;project settings&lt;/a&gt;. Also, Mixpanel automatically tracks some properties by default. &lt;a href=&quot;https://help.mixpanel.com/hc/en-us/articles/115004613766-Default-Properties-Collected-by-Mixpanel#iOS&quot;&gt;learn more&lt;/a&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objc&quot;&gt;Mixpanel *mixpanel = [Mixpanel sharedInstance];
[mixpanel track:@&quot;Sign Up&quot; properties:@{
  @&quot;source&quot;: @&quot;Pat&#39;s affiliate site&quot;,
  @&quot;Opted out of email&quot;: @YES
}];
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;4. Check for Success&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;http://mixpanel.com/report/events&quot;&gt;Open up Events in Mixpanel&lt;/a&gt; to view incoming events.&lt;/p&gt; 
&lt;p&gt;Once data hits our API, it generally takes ~60 seconds for it to be processed, stored, and queryable in your project.&lt;/p&gt; 
&lt;h2&gt;Complete Code Example&lt;/h2&gt; 
&lt;p&gt;Here&#39;s a runnable code example that covers everything in this quickstart guide.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objc&quot;&gt;#import &quot;Mixpanel/Mixpanel.h&quot;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
  Mixpanel *mixpanel = [Mixpanel sharedInstanceWithToken:@&quot;YOUR_API_TOKEN&quot; trackAutomaticEvents:NO];
  [mixpanel track:@&quot;Sign Up&quot; properties:@{
    @&quot;source&quot;: @&quot;Pat&#39;s affiliate site&quot;,
    @&quot;Opted out of email&quot;: @YES
  }];
...
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h1&gt;FAQ&lt;/h1&gt; 
&lt;p&gt;&lt;strong&gt;I want to stop tracking an event/event property in Mixpanel. Is that possible?&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;Yes, in Lexicon, you can intercept and drop incoming events or properties. Mixpanel won’t store any new data for the event or property you select to drop. &lt;a href=&quot;https://help.mixpanel.com/hc/en-us/articles/360001307806#dropping-events-and-properties&quot;&gt;See this article for more information&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;I have a test user I would like to opt out of tracking. How do I do that?&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;Mixpanel’s client-side tracking library contains the &lt;a href=&quot;https://mixpanel.github.io/mixpanel-iphone/Classes/Mixpanel.html#//api/name/optOutTracking&quot;&gt;optOutTracking()&lt;/a&gt; method, which will set the user’s local opt-out state to “true” and will prevent data from being sent from a user’s device. More detailed instructions can be found in the section, &lt;a href=&quot;https://raw.githubusercontent.com/mixpanel/mixpanel-iphone/master/ios#opting-users-out-of-tracking&quot;&gt;Opting users out of tracking&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Why aren&#39;t my events showing up?&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;To preserve battery life and customer bandwidth, the Mixpanel library doesn&#39;t send the events you record immediately. Instead, it sends batches to the Mixpanel servers every 60 seconds while your application is running, as well as when the application transitions to the background. You can call &lt;a href=&quot;https://mixpanel.github.io/mixpanel-iphone/Classes/Mixpanel.html#//api/name/flush&quot;&gt;flush()&lt;/a&gt; manually if you want to force a flush at a particular moment.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objc&quot;&gt;[mixpanel flush];
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;If your events are still not showing up after 60 seconds, check if you have opted out of tracking. You can also enable Mixpanel debugging and logging, it allows you to see the debug output from the Mixpanel library. To enable it, set &lt;a href=&quot;https://mixpanel.github.io/mixpanel-iphone/Classes/Mixpanel.html#//api/name/enableLogging&quot;&gt;enableLogging&lt;/a&gt; to true.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objc&quot;&gt;mixpanel.enableLogging = YES;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Starting with iOS 14.5, do I need to request the user’s permission through the AppTrackingTransparency framework to use Mixpanel?&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;No, Mixpanel does not use IDFA so it does not require user permission through the AppTrackingTransparency(ATT) framework.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;If I use Mixpanel, how do I answer app privacy questions for the App Store?&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;Please refer to our &lt;a href=&quot;https://mixpanel.com/legal/app-store-privacy-details/&quot;&gt;Apple App Developer Privacy Guidance&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;I want to know more!&lt;/h2&gt; 
&lt;p&gt;No worries, here are some links that you will find useful:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://developer.mixpanel.com/docs/ios&quot;&gt;Advanced iOS - Objective-C Guide&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/mixpanel/mixpanel-iphone/tree/master/HelloMixpanel&quot;&gt;Sample app&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://mixpanel.github.io/mixpanel-iphone/index.html&quot;&gt;Full API Reference&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;a href=&quot;https://deepwiki.com/mixpanel/mixpanel-iphone&quot;&gt;&lt;img src=&quot;https://deepwiki.com/badge.svg?sanitize=true&quot; alt=&quot;Ask DeepWiki&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Have any questions? Reach out to Mixpanel &lt;a href=&quot;https://help.mixpanel.com/hc/en-us/requests/new&quot;&gt;Support&lt;/a&gt; to speak to someone smart, quickly.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/af0bdc4bcf491e23960811c628df893da5507ee70052c6ef253e914c848d68b7/mixpanel/mixpanel-iphone" medium="image" />
      
    </item>
    
    <item>
      <title>34306/FilzaJailedDS</title>
      <link>https://github.com/34306/FilzaJailedDS</link>
      <description>&lt;p&gt;Filza Jailed Darksword, support iOS 17.0-26.0.1. This repo open source the tweak inject into the Filza iPA (4.0.0 and back, 4.0.2 seems crash something)&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;FilzaJailedDS&lt;/h1&gt; 
&lt;p&gt;Filza Jailed Darksword, support iOS 17.0-26.0.1 (except 18.7.2-18.7.7). This repo open source the tweak inject into the Filza iPA (4.0.0 and back, 4.0.2 seems crash something)&lt;/p&gt; 
&lt;p&gt;About iPhone 17 series and iPad M5: SUPPORT ETA SOON!👌&lt;/p&gt; 
&lt;p&gt;Note: I just change the name due to requested. But i think jailed is okay then&lt;/p&gt; 
&lt;h1&gt;Credit&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt;Thanks to &lt;a href=&quot;https://github.com/khanhduytran0&quot;&gt;Duy Tran&lt;/a&gt; for the sandbox hook token&lt;/li&gt; 
 &lt;li&gt;Thanks to &lt;a href=&quot;https://github.com/wh1te4ever/&quot;&gt;wh1te4ever&lt;/a&gt; for the super details &lt;a href=&quot;https://github.com/wh1te4ever/darksword-kexploit-fun&quot;&gt;darksword-kfun&lt;/a&gt; with offset/XPF&lt;/li&gt; 
 &lt;li&gt;Thanks to &lt;a href=&quot;https://github.com/opa334/&quot;&gt;opa334&lt;/a&gt; for the XPF/krw&lt;/li&gt; 
 &lt;li&gt;Thanks to &lt;a href=&quot;https://github.com/crazymind90/&quot;&gt;CrazyMind90&lt;/a&gt; for idea how to get sbx token with krw only&lt;/li&gt; 
 &lt;li&gt;Thanks to &lt;a href=&quot;https://github.com/rooootdev&quot;&gt;roootdev&lt;/a&gt; for sandbox elevate in &lt;a href=&quot;https://github.com/rooootdev/lara&quot;&gt;lara&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;And me 😄&lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/e0f4e87fb8cb43f7ffdb515407cbf6fbba8d290c48b51a47b0d1c594e871c85f/34306/FilzaJailedDS" medium="image" />
      
    </item>
    
    <item>
      <title>rollbar/rollbar-apple</title>
      <link>https://github.com/rollbar/rollbar-apple</link>
      <description>&lt;p&gt;Objective-C &amp; Swift library for remote crash, exception, error reporting, and logging with Rollbar. It works on all Apple *OS platforms (macOS, iOS, tvOS, watchOS, etc).&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; &lt;img alt=&quot;rollbar-logo&quot; src=&quot;https://user-images.githubusercontent.com/3300063/207964480-54eda665-d6fe-4527-ba51-b0ab3f41f10b.png&quot; /&gt; &lt;/p&gt; 
&lt;h1 align=&quot;center&quot;&gt;Rollbar Apple MonoRepo&lt;/h1&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;strong&gt;Proactively discover, predict, and resolve errors in real-time with &lt;a href=&quot;https://rollbar.com&quot;&gt;Rollbar’s&lt;/a&gt; error monitoring platform. &lt;a href=&quot;https://rollbar.com/signup/&quot;&gt;Start tracking errors today&lt;/a&gt;!&lt;/strong&gt; &lt;/p&gt; 
&lt;hr /&gt; 
&lt;p&gt;Objective-C &amp;amp; Swift SDK for remote crash, exception, error reporting, and logging with &lt;a href=&quot;https://rollbar.com&quot;&gt;Rollbar&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;It works on all Apple *OS platforms (&lt;strong&gt;macOS&lt;/strong&gt;, &lt;strong&gt;iOS&lt;/strong&gt;, &lt;strong&gt;tvOS&lt;/strong&gt;, &lt;strong&gt;watchOS&lt;/strong&gt;, etc).&lt;/p&gt; 
&lt;p&gt;NOTE: This SDK is essentially a reincarnation of our &lt;a href=&quot;https://github.com/rollbar/rollbar-ios&quot;&gt;Rollbar-iOS SDK&lt;/a&gt; that will be available for awhile in its current v1 version and will only maintained with fixes to bug or security issues if any. All the active development will be done within this SDK repository.&lt;/p&gt; 
&lt;h2&gt;Key benefits of using Rollbar for Apple software platforms are:&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Platforms:&lt;/strong&gt; Rollbar supports all &lt;a href=&quot;https://docs.rollbar.com/docs/apple&quot;&gt;Apple OS platforms&lt;/a&gt; such as iOS, macOS, tvOS, watchOS, etc.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Automatic error grouping:&lt;/strong&gt; Rollbar aggregates Occurrences caused by the same error into Items that represent application issues. &lt;a href=&quot;https://docs.rollbar.com/docs/grouping-occurrences&quot;&gt;Learn more about reducing log noise&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Advanced search:&lt;/strong&gt; Filter items by many different properties. &lt;a href=&quot;https://docs.rollbar.com/docs/search-items&quot;&gt;Learn more about search&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Customizable notifications:&lt;/strong&gt; Rollbar supports several messaging and incident management tools where your team can get notified about errors and important events by real-time alerts. &lt;a href=&quot;https://docs.rollbar.com/docs/notifications&quot;&gt;Learn more about Rollbar notifications&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h1&gt;The Apple SDK is GA. Learn more: &lt;a href=&quot;https://docs.rollbar.com/docs/apple&quot;&gt;https://docs.rollbar.com/docs/apple&lt;/a&gt;&lt;/h1&gt; 
&lt;h2&gt;Codebase status (code quality and CI build)&lt;/h2&gt; 
&lt;p&gt;&lt;img src=&quot;https://github.com/rollbar/rollbar-apple/workflows/Swift/badge.svg?sanitize=true&quot; alt=&quot;CI Build Status&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://github.com/rollbar/rollbar-apple/workflows/CI%20Build%20with%20Unit%20Tests/badge.svg?sanitize=true&quot; alt=&quot;CI Build with Unit Tests&quot; /&gt;&lt;/p&gt; 
&lt;!--
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=rollbar-apple&amp;metric=alert_status)](https://sonarcloud.io/dashboard?id=rollbar-apple)
--&gt; 
&lt;p&gt;&lt;a href=&quot;https://sonarcloud.io/dashboard?id=rollbar-apple&quot;&gt;&lt;img src=&quot;https://sonarcloud.io/api/project_badges/measure?project=rollbar-apple&amp;amp;metric=security_rating&quot; alt=&quot;Security Rating&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://sonarcloud.io/dashboard?id=rollbar-apple&quot;&gt;&lt;img src=&quot;https://sonarcloud.io/api/project_badges/measure?project=rollbar-apple&amp;amp;metric=reliability_rating&quot; alt=&quot;Reliability Rating&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://sonarcloud.io/dashboard?id=rollbar-apple&quot;&gt;&lt;img src=&quot;https://sonarcloud.io/api/project_badges/measure?project=rollbar-apple&amp;amp;metric=sqale_rating&quot; alt=&quot;Maintainability Rating&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://sonarcloud.io/dashboard?id=rollbar-apple&quot;&gt;&lt;img src=&quot;https://sonarcloud.io/api/project_badges/measure?project=rollbar-apple&amp;amp;metric=vulnerabilities&quot; alt=&quot;Vulnerabilities&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://sonarcloud.io/dashboard?id=rollbar-apple&quot;&gt;&lt;img src=&quot;https://sonarcloud.io/api/project_badges/measure?project=rollbar-apple&amp;amp;metric=coverage&quot; alt=&quot;Coverage&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://sonarcloud.io/dashboard?id=rollbar-apple&quot;&gt;&lt;img src=&quot;https://sonarcloud.io/api/project_badges/measure?project=rollbar-apple&amp;amp;metric=ncloc&quot; alt=&quot;Lines of Code&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://sonarcloud.io/dashboard?id=rollbar-apple&quot;&gt;&lt;img src=&quot;https://sonarcloud.io/api/project_badges/measure?project=rollbar-apple&amp;amp;metric=bugs&quot; alt=&quot;Bugs&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Package Distribution Systems Status&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/downloads/rollbar/rollbar-apple/total?logo=GitHub&quot; alt=&quot;GitHub all releases downloads total&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://swift.org/package-manager&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/SwiftPM-compatible-brightgreen.svg?sanitize=true&quot; alt=&quot;SwiftPM compatible&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/Carthage/Carthage&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Carthage-compatible-brightgreen.svg?sanitize=true&quot; alt=&quot;Carthage compatible&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://cocoapods.org/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/CocoaPods-compatible-brightgreen.svg?sanitize=true&quot; alt=&quot;CocoaPods compatible&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;!--
[//]: # [![CocoaPods Compatible](https://img.shields.io/cocoapods/v/Rollbar.svg)](https://img.shields.io/cocoapods/v/Rollbar.svg)
--&gt; 
&lt;p&gt;&lt;a href=&quot;https://docs.rollbar.com/docs/apple&quot;&gt;&lt;img src=&quot;https://img.shields.io/cocoapods/p/RollbarCommon.svg?label=RollbarCommon&quot; alt=&quot;Platform&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://docs.rollbar.com/docs/apple&quot;&gt;&lt;img src=&quot;https://img.shields.io/cocoapods/p/RollbarNotifier.svg?label=RollbarNotifier&quot; alt=&quot;Platform&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://docs.rollbar.com/docs/apple&quot;&gt;&lt;img src=&quot;https://img.shields.io/cocoapods/p/RollbarDeploys.svg?label=RollbarDeploys&quot; alt=&quot;Platform&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://docs.rollbar.com/docs/apple&quot;&gt;&lt;img src=&quot;https://img.shields.io/cocoapods/p/RollbarAUL.svg?label=RollbarAUL&quot; alt=&quot;Platform&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://docs.rollbar.com/docs/apple&quot;&gt;&lt;img src=&quot;https://img.shields.io/cocoapods/p/RollbarCocoaLumberjack.svg?label=RollbarCocoaLumberjack&quot; alt=&quot;Platform&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://cocoapods.org/pods/RollbarCommon&quot;&gt;&lt;img src=&quot;https://img.shields.io/cocoapods/v/RollbarCommon?label=RollbarCommon&quot; alt=&quot;CocoaPods&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://cocoapods.org/pods/RollbarNotifier&quot;&gt;&lt;img src=&quot;https://img.shields.io/cocoapods/v/RollbarNotifier?label=RollbarNotifier&quot; alt=&quot;CocoaPods&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://cocoapods.org/pods/RollbarDeploys&quot;&gt;&lt;img src=&quot;https://img.shields.io/cocoapods/v/RollbarDeploys?label=RollbarDeploys&quot; alt=&quot;CocoaPods&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://cocoapods.org/pods/RollbarAUL&quot;&gt;&lt;img src=&quot;https://img.shields.io/cocoapods/v/RollbarAUL?label=RollbarAUL&quot; alt=&quot;CocoaPods&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://cocoapods.org/pods/RollbarCocoaLumberjack&quot;&gt;&lt;img src=&quot;https://img.shields.io/cocoapods/v/RollbarCocoaLumberjack?label=RollbarCocoaLumberjack&quot; alt=&quot;CocoaPods&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Setup Instructions&lt;/h2&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;a href=&quot;https://rollbar.com/signup&quot;&gt;Sign up for a Rollbar account&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Follow the &lt;a href=&quot;https://docs.rollbar.com/docs/apple#section-installation&quot;&gt;Installation&lt;/a&gt; instructions in our &lt;a href=&quot;https://docs.rollbar.com/docs/apple&quot;&gt;Rollbar-Apple SDK docs&lt;/a&gt; to install the SDK modules.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Usage and Reference&lt;/h2&gt; 
&lt;p&gt;For complete usage instructions and configuration reference, see our &lt;a href=&quot;https://docs.rollbar.com/docs/apple&quot;&gt;Rollbar-Apple SDK docs&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Release History &amp;amp; Changelog&lt;/h2&gt; 
&lt;p&gt;See our &lt;a href=&quot;https://github.com/rollbar/rollbar-apple/releases&quot;&gt;Releases&lt;/a&gt; page for a list of all releases, including changes.&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;ol&gt; 
 &lt;li&gt;Fork it&lt;/li&gt; 
 &lt;li&gt;Create your feature branch (&lt;code&gt;git checkout -b my-new-feature&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;Commit your changes (&lt;code&gt;git commit -am &#39;Added some feature&#39;&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;Push to the branch (&lt;code&gt;git push origin my-new-feature&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;Create new Pull Request&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Help / Support&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://gitter.im/rollbar/SDK-Apple&quot;&gt;Gitter Community&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/questions/tagged/rollbar&quot;&gt;Stack Overflow&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/rollbar/rollbar-apple/issues&quot;&gt;GitHub Issues&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/rollbar/rollbar-apple/discussions&quot;&gt;GitHub Discussions&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/rollbar/rollbar-apple/issues/new&quot;&gt;File a bug report&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Rollbar Support: &lt;code&gt;support@rollbar.com&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/e5d30c35c6cab06880a3a7797345d3bf318d0eaf8d2588a80372ab3f68f27ca9/rollbar/rollbar-apple" medium="image" />
      
    </item>
    
    <item>
      <title>git-up/GitUp</title>
      <link>https://github.com/git-up/GitUp</link>
      <description>&lt;p&gt;The Git interface you&#39;ve been missing all your life has finally arrived.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/git-up/GitUp/actions/workflows/build.yml&quot;&gt;&lt;img src=&quot;https://github.com/git-up/GitUp/actions/workflows/build.yml/badge.svg?sanitize=true&quot; alt=&quot;GitUp&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/git-up/GitUp/actions/workflows/test.yml&quot;&gt;&lt;img src=&quot;https://github.com/git-up/GitUp/actions/workflows/test.yml/badge.svg?sanitize=true&quot; alt=&quot;GitUpKit Tests&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h1&gt;&lt;img src=&quot;https://raw.githubusercontent.com/git-up/GitUp/master/Assets/Icons/AppIcon.svg?sanitize=true&quot; width=&quot;64px&quot; height=&quot;64px&quot; align=&quot;center&quot; /&gt; GitUp&lt;/h1&gt; 
&lt;p&gt;&lt;strong&gt;Work quickly, safely, and without headaches. The Git interface you&#39;ve been missing all your life has finally arrived.&lt;/strong&gt;&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://github.com/user-attachments/assets/e904078c-f6de-486f-8e61-e1e6cdc57afb&quot; width=&quot;50%&quot; height=&quot;50%&quot; /&gt;&lt;img src=&quot;https://github.com/user-attachments/assets/de78def6-798a-439b-bce6-a926de9b0a6d&quot; width=&quot;50%&quot; height=&quot;50%&quot; /&gt; &lt;/p&gt; 
&lt;p&gt;Git recently celebrated its 10 years anniversary, but most engineers are still confused by its intricacy (3 of the &lt;a href=&quot;http://stackoverflow.com/questions?sort=votes&quot;&gt;top 5 questions of all time&lt;/a&gt; on Stack Overflow are Git related). Since Git turns even simple actions into mystifying commands (“git add” to stage versus “git reset HEAD” to unstage anyone?), it’s no surprise users waste time, get frustrated, distract the rest of their team for help, or worse, screw up their repo!&lt;/p&gt; 
&lt;p&gt;GitUp is a bet to invent a new Git interaction model that lets engineers of all levels work quickly, safely, and without headaches. It&#39;s unlike any other Git client out there from the way it’s built (it interacts directly with the Git database on disk), to the way it works (you manipulate the repository graph instead of manipulating commits).&lt;/p&gt; 
&lt;p&gt;With GitUp, you get a truly efficient Git client for Mac:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;A &lt;strong&gt;live and interactive repo graph&lt;/strong&gt; (edit, reorder, fixup, merge commits…),&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Unlimited undo / redo&lt;/strong&gt; of almost all operations (even rebases and merges),&lt;/li&gt; 
 &lt;li&gt;Time Machine like &lt;strong&gt;snapshots for 1-click rollbacks&lt;/strong&gt; to previous repo states,&lt;/li&gt; 
 &lt;li&gt;Features that don’t even exist natively in Git like a &lt;strong&gt;visual commit splitter&lt;/strong&gt; or a &lt;strong&gt;unified reflog browser&lt;/strong&gt;,&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Instant search across the entire repo&lt;/strong&gt; including diff contents,&lt;/li&gt; 
 &lt;li&gt;A &lt;strong&gt;ridiculously fast UI&lt;/strong&gt;, often faster than the command line.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;In addition, GitUp’s core and main UI elements are available as an open-source framework, &lt;a href=&quot;https://raw.githubusercontent.com/git-up/GitUp/master/#gitupkit&quot;&gt;GitUpKit&lt;/a&gt;. You can use it to build your very own Git GUI! GitUpKit has already enabled the creation of some unique apps:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;img src=&quot;https://retcon.app/images/app-icon-32@3x.png&quot; width=&quot;32px&quot; height=&quot;32px&quot; align=&quot;center&quot; /&gt; &lt;a href=&quot;https://retcon.app/&quot;&gt;&lt;strong&gt;Retcon&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,&lt;/strong&gt; a Git client that makes rewriting history fast and flexible&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;em&gt;GitUp was created by &lt;a href=&quot;https://github.com/swisspol&quot;&gt;@swisspol&lt;/a&gt; in late 2014 as a bet to reinvent the way developers interact with Git. After several months of work, it was made available in pre-release early 2015 and reached the &lt;a href=&quot;https://news.ycombinator.com/item?id=9653978&quot;&gt;top of Hacker News&lt;/a&gt; along with being &lt;a href=&quot;http://www.producthunt.com/tech/gitup-1&quot;&gt;featured by Product Hunt&lt;/a&gt; and &lt;a href=&quot;http://daringfireball.net/linked/2015/06/04/gitup&quot;&gt;Daring Fireball&lt;/a&gt;. 30,000 lines of code later, GitUp reached 1.0 mid-August 2015 and was released open source as a gift to the developer community.&lt;/em&gt;&lt;/p&gt; 
&lt;h1&gt;Getting Started&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt;Official website: &lt;a href=&quot;https://gitup.co&quot;&gt;https://gitup.co&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Download:&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Latest release on GitHub: &lt;a href=&quot;https://github.com/git-up/GitUp/releases&quot;&gt;https://github.com/git-up/GitUp/releases&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Homebrew (Not maintained by GitUp developers): &lt;code&gt;brew install gitup-app&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Read the &lt;a href=&quot;https://github.com/git-up/GitUp/wiki&quot;&gt;docs&lt;/a&gt; and use &lt;a href=&quot;https://github.com/git-up/GitUp/issues&quot;&gt;GitHub Issues&lt;/a&gt; for support &amp;amp; feedback.&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;Releases notes are available at &lt;a href=&quot;https://github.com/git-up/GitUp/releases&quot;&gt;https://github.com/git-up/GitUp/releases&lt;/a&gt;. Builds tagged with a &lt;code&gt;v&lt;/code&gt; (e.g. &lt;code&gt;v1.2.3&lt;/code&gt;) are released on the &quot;Stable&quot; channel, while builds tagged with a &lt;code&gt;b&lt;/code&gt; (e.g. &lt;code&gt;b1234&lt;/code&gt;) are only released on the &quot;Continuous&quot; channel. You can change the update channel used by GitUp in the app preferences.&lt;/p&gt; 
&lt;h2&gt;Build&lt;/h2&gt; 
&lt;p&gt;To build GitUp yourself, simply run the command &lt;code&gt;git clone --recursive https://github.com/git-up/GitUp.git&lt;/code&gt; in Terminal, then open the &lt;code&gt;GitUp/GitUp.xcodeproj&lt;/code&gt; Xcode project and hit Run.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;IMPORTANT:&lt;/strong&gt; If you do not have an Apple ID with a developer account for code signing Mac apps, the build will fail with a code signing error. Simply delete the &quot;Code Signing Identity&quot; build setting of the &quot;Application&quot; target to work around the issue:&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;http://i.imgur.com/dWpJExk.png&quot; /&gt; &lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Alternatively&lt;/strong&gt;, if you do have a developer account, you can create the file &quot;Xcode-Configurations/DEVELOPMENT_TEAM.xcconfig&quot; with the following build setting as its content:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;DEVELOPMENT_TEAM = [Your TeamID]&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;For a more detailed description of this, you can have a look at the comments at the end of the file &quot;Xcode-Configurations/Base.xcconfig&quot;.&lt;/p&gt; 
&lt;h1&gt;GitUpKit&lt;/h1&gt; 
&lt;p&gt;&lt;strong&gt;GitUp is built as a thin layer on top of a reusable generic Git toolkit called &quot;GitUpKit&quot;. This means that you can use that same GitUpKit framework to build your very own Git UI!&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;GitUpKit has a very different goal than &lt;a href=&quot;https://github.com/libgit2/objective-git&quot;&gt;ObjectiveGit&lt;/a&gt;. Instead of offering extensive raw bindings to &lt;a href=&quot;https://github.com/libgit2/libgit2&quot;&gt;libgit2&lt;/a&gt;, GitUpKit only uses a minimal subset of libgit2 and reimplements everything else on top of it (it has its own &quot;rebase engine&quot; for instance). This allows it to expose a very tight and consistent API, that completely follows Obj-C conventions and hides away the libgit2 complexity and sometimes inconsistencies. GitUpKit adds on top of that a number of exclusive and powerful features, from undo/redo and Time Machine like snapshots, to entire drop-in UI components.&lt;/em&gt;&lt;/p&gt; 
&lt;h2&gt;Architecture&lt;/h2&gt; 
&lt;p&gt;The GitUpKit source code is organized as 2 independent layers communicating only through the use of public APIs:&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Base Layer (depends on Foundation only and is compatible with OS X and iOS)&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;Core/&lt;/code&gt;: wrapper around the required minimal functionality of &lt;a href=&quot;https://github.com/libgit2/libgit2&quot;&gt;libgit2&lt;/a&gt;, on top of which is then implemented all the Git functionality required by GitUp (note that GitUp uses a &lt;a href=&quot;https://github.com/git-up/libgit2/tree/gitup&quot;&gt;slightly customized fork&lt;/a&gt; of libgit2)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;Extensions/&lt;/code&gt;: categories on the &lt;code&gt;Core&lt;/code&gt; classes to add convenience features implemented only using the public APIs&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;UI Layer (depends on AppKit and is compatible with OS X only)&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;Interface/&lt;/code&gt;: low-level view classes e.g. &lt;code&gt;GIGraphView&lt;/code&gt; to render the GitUp Map view&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;Utilities/&lt;/code&gt;: interface utility classes e.g. the base view controller class &lt;code&gt;GIViewController&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;Components/&lt;/code&gt;: reusable single-view view controllers e.g. &lt;code&gt;GIDiffContentsViewController&lt;/code&gt; to render a diff&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;Views/&lt;/code&gt;: high-level reusable multi-views view controllers e.g. &lt;code&gt;GIAdvancedCommitViewController&lt;/code&gt; to implement the entire GitUp Advanced Commit view&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt;: If the preprocessor constant &lt;code&gt;DEBUG&lt;/code&gt; is defined to a non-zero value when building GitUpKit (this is the default when building in &quot;Debug&quot; configuration), a number of extra consistency checks are enabled at run time as well as extra logging. Be aware that this overhead can significantly affect performance.&lt;/p&gt; 
&lt;h2&gt;GitUpKit API&lt;/h2&gt; 
&lt;p&gt;Using the GitUpKit API should be pretty straightforward since it is organized by functionality (e.g. repository, branches, commits, interface components, etc...) and a best effort has been made to name functions clearly.&lt;/p&gt; 
&lt;p&gt;Regarding the &quot;Core&quot; APIs, the best way to learn them is to peruse the associated unit tests - for instance see &lt;a href=&quot;https://raw.githubusercontent.com/git-up/GitUp/master/GitUpKit/Core/GCBranch-Tests.m&quot;&gt;the branch tests&lt;/a&gt; for the branch API.&lt;/p&gt; 
&lt;p&gt;Here is some sample code to get you started (error handling is left as an exercise to the reader):&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Opening and browsing a repository:&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objc&quot;&gt;// Open repo
GCRepository* repo = [[GCRepository alloc] initWithExistingLocalRepository:&amp;lt;PATH&amp;gt; error:NULL];

// Make sure repo is clean
assert([repo checkClean:kGCCleanCheckOption_IgnoreUntrackedFiles error:NULL]);

// List all branches
NSArray* branches = [repo listAllBranches:NULL];
NSLog(@&quot;%@&quot;, branches);

// Lookup HEAD
GCLocalBranch* headBranch;  // This would be nil if the HEAD is detached
GCCommit* headCommit;
[repo lookupHEADCurrentCommit:&amp;amp;headCommit branch:&amp;amp;headBranch error:NULL];
NSLog(@&quot;%@ = %@&quot;, headBranch, headCommit);

// Load the *entire* repo history in memory for fast access, including all commits, branches and tags
GCHistory* history = [repo loadHistoryUsingSorting:kGCHistorySorting_ReverseChronological error:NULL];
assert(history);
NSLog(@&quot;%lu commits total&quot;, history.allCommits.count);
NSLog(@&quot;%@\n%@&quot;, history.rootCommits, history.leafCommits);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Modifying a repository:&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objc&quot;&gt;// Take a snapshot of the repo
GCSnapshot* snapshot = [repo takeSnapshot:NULL];

// Create a new branch and check it out
GCLocalBranch* newBranch = [repo createLocalBranchFromCommit:headCommit withName:@&quot;temp&quot; force:NO error:NULL];
NSLog(@&quot;%@&quot;, newBranch);
assert([repo checkoutLocalBranch:newBranch options:0 error:NULL]);

// Add a file to the index
[[NSData data] writeToFile:[repo.workingDirectoryPath stringByAppendingPathComponent:@&quot;empty.data&quot;] atomically:YES];
assert([repo addFileToIndex:@&quot;empty.data&quot; error:NULL]);

// Check index status
GCDiff* diff = [repo diffRepositoryIndexWithHEAD:nil options:0 maxInterHunkLines:0 maxContextLines:0 error:NULL];
assert(diff.deltas.count == 1);
NSLog(@&quot;%@&quot;, diff);

// Create a commit
GCCommit* newCommit = [repo createCommitFromHEADWithMessage:@&quot;Added file&quot; error:NULL];
assert(newCommit);
NSLog(@&quot;%@&quot;, newCommit);

// Restore repo to saved snapshot before topic branch and commit were created
BOOL success = [repo restoreSnapshot:snapshot withOptions:kGCSnapshotOption_IncludeAll reflogMessage:@&quot;Rolled back&quot; didUpdateReferences:NULL error:NULL];
assert(success);
  
// Make sure topic branch is gone
assert([repo findLocalBranchWithName:@&quot;temp&quot; error:NULL] == nil);
  
// Update workdir and index to match HEAD
assert([repo resetToHEAD:kGCResetMode_Hard error:NULL]);
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Complete Example #1: GitDown&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/git-up/GitUp/master/Examples/GitDown&quot;&gt;GitDown&lt;/a&gt; is a very basic app that prompts the user for a repo and displays an interactive and live-updating list of its stashes (all with ~20 lines of code in &lt;code&gt;-[AppDelegate applicationDidFinishLaunching:]&lt;/code&gt;):&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;http://i.imgur.com/ZfxM7su.png&quot; /&gt; &lt;/p&gt; 
&lt;p&gt;Through GitUpKit, this basic app also gets for free unlimited undo/redo, unified and side-by-side diffs, text selection and copy, keyboard shortcuts, etc...&lt;/p&gt; 
&lt;p&gt;This source code also demonstrates how to use some other GitUpKit view controllers as well as building a customized one.&lt;/p&gt; 
&lt;h2&gt;Complete Example #2: GitDiff&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/git-up/GitUp/master/Examples/GitDiff&quot;&gt;GitDiff&lt;/a&gt; demonstrates how to create a view controller that displays a live updating diff between &lt;code&gt;HEAD&lt;/code&gt; and the workdir à la &lt;code&gt;git diff HEAD&lt;/code&gt;:&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;http://i.imgur.com/29hxDcJ.png&quot; /&gt; &lt;/p&gt; 
&lt;h2&gt;Complete Example #3: GitY&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/git-up/GitUp/master/Examples/GitY&quot;&gt;GitY&lt;/a&gt; is a &lt;a href=&quot;http://gitx.frim.nl/&quot;&gt;GitX&lt;/a&gt; clone built using GitUpKit and less than 200 lines of code:&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;http://i.imgur.com/6cuPcT4.png&quot; /&gt; &lt;/p&gt; 
&lt;h2&gt;Complete Example #4: iGit&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/git-up/GitUp/master/Examples/iGit&quot;&gt;iGit&lt;/a&gt; is a test iOS app that simply uses GitUpKit to clone a GitHub repo and perform a commit.&lt;/p&gt; 
&lt;h1&gt;Contributing&lt;/h1&gt; 
&lt;p&gt;See &lt;a href=&quot;https://raw.githubusercontent.com/git-up/GitUp/master/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt;.&lt;/p&gt; 
&lt;h1&gt;Credits&lt;/h1&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/swisspol&quot;&gt;@swisspol&lt;/a&gt;: concept and code&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/wwayneee&quot;&gt;@wwayneee&lt;/a&gt;: UI design&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/jayeb&quot;&gt;@jayeb&lt;/a&gt;: website&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;em&gt;Also a big thanks to the fine &lt;a href=&quot;https://libgit2.github.com/&quot;&gt;libgit2&lt;/a&gt; contributors without whom GitUp would have never existed!&lt;/em&gt;&lt;/p&gt; 
&lt;h1&gt;License&lt;/h1&gt; 
&lt;p&gt;GitUp is copyright 2015-2018 Pierre-Olivier Latour and available under &lt;a href=&quot;http://www.gnu.org/licenses/gpl-3.0.txt&quot;&gt;GPL v3 license&lt;/a&gt;. See the &lt;a href=&quot;https://raw.githubusercontent.com/git-up/GitUp/master/LICENSE&quot;&gt;LICENSE&lt;/a&gt; file in the project for more information.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;IMPORTANT:&lt;/strong&gt; GitUp includes some other open-source projects and such projects remain under their own license.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/4202e469c301f04dc0665548215a542878d259076ebf8f657b191c2c0e493132/git-up/GitUp" medium="image" />
      
    </item>
    
    <item>
      <title>kif-framework/KIF</title>
      <link>https://github.com/kif-framework/KIF</link>
      <description>&lt;p&gt;Keep It Functional - An iOS Functional Testing Framework&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/kif-framework/KIF/actions?query=branch%3Amaster&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/checks-status/kif-framework/KIF/master&quot; alt=&quot;GitHub branch status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/kif-framework/KIF/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/v/release/kif-framework/KIF?style=flat&quot; alt=&quot;GitHub Release&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;IMPORTANT! Even though KIF is used to test your UI, you need to add it to your Unit Test target, &lt;em&gt;not&lt;/em&gt; your UI Test target. The magic of KIF is that it allows you to drive your UI from your unit tests and reap all the advantages of testing in-process.&lt;/strong&gt;&lt;/p&gt; 
&lt;h1&gt;KIF iOS Integration Testing Framework&lt;/h1&gt; 
&lt;p&gt;KIF, which stands for Keep It Functional, is an iOS integration test framework. It allows for easy automation of iOS apps by leveraging the accessibility attributes that the OS makes available for those with visual disabilities.&lt;/p&gt; 
&lt;p&gt;KIF builds and performs the tests using a standard &lt;code&gt;XCTest&lt;/code&gt; testing target. Testing is conducted synchronously in the main thread (running the run loop to force the passage of time) allowing for more complex logic and composition. This also allows KIF to take advantage of the Xcode Test Navigator, command line build tools, and Bot test reports.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;KIF uses undocumented Apple APIs.&lt;/strong&gt; This is true of most iOS testing frameworks, and is safe for testing purposes, but it&#39;s important that KIF does not make it into production code, as it will get your app submission denied by Apple. Follow the instructions below to ensure that KIF is configured correctly for your project.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Actively supports Xcode 16 and iOS 15 if you need support for an earlier version please use an &lt;a href=&quot;https://github.com/kif-framework/KIF/releases&quot;&gt;earlier release&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;h4&gt;Minimizes Indirection&lt;/h4&gt; 
&lt;p&gt;All of the tests for KIF are written in Objective-C. This allows for maximum integration with your code while minimizing the number of layers you have to build.&lt;/p&gt; 
&lt;h4&gt;Easy Configuration&lt;/h4&gt; 
&lt;p&gt;KIF integrates directly into your Xcode project, so there&#39;s no need to run an additional web server or install any additional packages.&lt;/p&gt; 
&lt;h4&gt;Wide OS and Xcode coverage&lt;/h4&gt; 
&lt;p&gt;KIF&#39;s test suite is being run against iOS 8+ and Xcode 7+. Lower versions will likely still work, but your mileage may vary. We do our best to retain backwards compatibility as much as possible.&lt;/p&gt; 
&lt;h4&gt;Test Like a User&lt;/h4&gt; 
&lt;p&gt;KIF attempts to imitate actual user input. Automation is done using tap events wherever possible.&lt;/p&gt; 
&lt;h4&gt;Automatic Integration with Xcode Testing Tools&lt;/h4&gt; 
&lt;p&gt;You can easily run a single KIF test with the Test Navigator or kick off nightly acceptance tests with Bots.&lt;/p&gt; 
&lt;h2&gt;See KIF in Action&lt;/h2&gt; 
&lt;p&gt;KIF uses techniques described below to validate its internal functionality. You can see a test suite that exercises its entire functionality by simply building and testing the KIF scheme with ⌘U. Look at the tests in the &quot;Tests&quot; group for ideas on how to build your own tests.&lt;/p&gt; 
&lt;h2&gt;Installation (with Swift Package Manager)&lt;/h2&gt; 
&lt;p&gt;Add the KIF package as a dependency:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-swift&quot;&gt;.package(url: &quot;https://github.com/kif-framework/KIF&quot;, from: {VERSION})
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Installation (with CocoaPods)&lt;/h2&gt; 
&lt;p&gt;⚠️ CocoaPods is no longer supported and will not be receiving new updates&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://cocoapods.org&quot;&gt;CocoaPods&lt;/a&gt; are the easiest way to get set up with KIF.&lt;/p&gt; 
&lt;p&gt;The first thing you will want to do is set up a test target you will be using for KIF. You may already have one named &lt;em&gt;MyApplication&lt;/em&gt;_Tests if you selected to automatically create unit tests. If you did, you can keep using it if you aren&#39;t using it for unit tests. Otherwise, follow these directions to create a new one.&lt;/p&gt; 
&lt;p&gt;Select your project in Xcode and click on &quot;Add Target&quot; in the bottom left corner of the editor. Select iOS -&amp;gt; Test -&amp;gt; iOS Unit Testing Bundle. Give it a product name like &quot;Acceptance Tests&quot;, &quot;UI Tests&quot;, or something that indicates the intent of your testing process.&lt;/p&gt; 
&lt;p&gt;The testing target will add a header and implementation file, likely &quot;Acceptance_Tests.m/h&quot; to match your target name. Delete those.&lt;/p&gt; 
&lt;p&gt;Once your test target set up, add the following to your Podfile file. Use your target&#39;s name as appropriate.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-Ruby&quot;&gt;target &#39;Your Apps&#39; do
  ...
end

target &#39;Acceptance Tests&#39; do
  pod &#39;KIF&#39;, :configurations =&amp;gt; [&#39;Debug&#39;]
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;After running &lt;code&gt;pod install&lt;/code&gt; complete the tasks in &lt;a href=&quot;https://raw.githubusercontent.com/kif-framework/KIF/master/#final-test-target-configurations&quot;&gt;&lt;strong&gt;Final Test Target Configurations&lt;/strong&gt;&lt;/a&gt; below for the final details on getting your tests to run.&lt;/p&gt; 
&lt;h3&gt;Create a Testing Target&lt;/h3&gt; 
&lt;p&gt;You&#39;ll need to create a test target for your app. You may already have one named &lt;em&gt;MyApplication&lt;/em&gt;Tests if you selected to automatically create unit tests when you created the project. If you did, you can keep using it if you aren&#39;t using it for unit tests. Otherwise, follow these directions to create a new one.&lt;/p&gt; 
&lt;p&gt;Select your project in Xcode and click on &quot;Add Target&quot; in the bottom left corner of the editor. Select iOS -&amp;gt; Test -&amp;gt; iOS Unit Testing Bundle. Give it a product name like &quot;Acceptance Tests&quot;, &quot;UI Tests&quot;, or something that indicates the intent of your testing process.&lt;/p&gt; 
&lt;p&gt;The testing target will add a header and implementation file, likely &quot;Acceptance_Tests.m/h&quot; to match your target name. Delete those.&lt;/p&gt; 
&lt;h3&gt;Configure the Testing Target&lt;/h3&gt; 
&lt;p&gt;Now that you have a target for your tests, add the tests to that target. With the project settings still selected in the Project Navigator, and the new integration tests target selected in the project settings, select the &quot;Build Phases&quot; tab. Under the &quot;Link Binary With Libraries&quot; section, hit the &quot;+&quot; button. In the sheet that appears, select &quot;libKIF.a&quot; and click &quot;Add&quot;. Repeat the process for CoreGraphics.framework and QuartzCore.framework.&lt;/p&gt; 
&lt;p&gt;KIF requires the IOKit.framework, but it is not located with the other system frameworks. To link to it, add &quot;-framework IOKit&quot; to the &quot;Other Linker Flags&quot; build setting.&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://github.com/kif-framework/KIF/raw/master/Documentation/Images/Add%20Library.png&quot; alt=&quot;Add libKIF library screen shot&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://github.com/kif-framework/KIF/raw/master/Documentation/Images/Add%20Library%20Sheet.png&quot; alt=&quot;Add libKIF library screen shot&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;KIF takes advantage of Objective C&#39;s ability to add categories on an object, but this isn&#39;t enabled for static libraries by default. To enable this, add the &lt;code&gt;-ObjC&lt;/code&gt; flag to the &quot;Other Linker Flags&quot; build setting on your test bundle target as shown below.&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://github.com/kif-framework/KIF/raw/master/Documentation/Images/Add%20Category%20Linker%20Flags.png&quot; alt=&quot;Add category linker flags screen shot&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;Read &lt;strong&gt;Final Test Target Configurations&lt;/strong&gt; below for the final details on getting your tests to run.&lt;/p&gt; 
&lt;h2&gt;Final Test Target Configurations&lt;/h2&gt; 
&lt;p&gt;You need your tests to run hosted in your application. &lt;strong&gt;Xcode does this for you by default&lt;/strong&gt; when creating a new testing bundle target, but if you&#39;re migrating an older bundle, follow the steps below.&lt;/p&gt; 
&lt;p&gt;First add your application by selecting &quot;Build Phases&quot;, expanding the &quot;Target Dependencies&quot; section, clicking on the &quot;+&quot; button, and in the new sheet that appears selecting your application target and clicking &quot;Add&quot;.&lt;/p&gt; 
&lt;p&gt;Next, configure your bundle loader. In &quot;Build Settings&quot;, expand &quot;Linking&quot; and edit &quot;Bundle Loader&quot; to be &lt;code&gt;$(TEST_HOST)&lt;/code&gt;. Expand the &quot;Testing&quot; section and edit &quot;Test Host&quot; to be &lt;code&gt;$(BUILT_PRODUCTS_DIR)/MyApplication.app/MyApplication&lt;/code&gt; where &lt;code&gt;MyApplication&lt;/code&gt; is the name of your app. Also make sure that &quot;Wrapper Extension&quot; is set to &lt;code&gt;xctest&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;The last step is to configure your unit tests to run when you trigger a test (⌘U). Click on your scheme name and select &quot;Edit Scheme…&quot;. Click on &quot;Test&quot; in the sidebar followed by the &quot;+&quot; in the bottom left corner. Select your testing target and click &quot;OK&quot;.&lt;/p&gt; 
&lt;h2&gt;Example test cases&lt;/h2&gt; 
&lt;p&gt;With your project configured to use KIF, it&#39;s time to start writing tests. There are two main classes used in KIF testing: the test case (&lt;code&gt;KIFTestCase&lt;/code&gt;, subclass of &lt;code&gt;XCTestCase&lt;/code&gt;) and the UI test actor (&lt;code&gt;KIFUITestActor&lt;/code&gt;). The XCTest test runner loads the test case classes and executes their test. Inside these tests, the tester performs the UI operations which generally imitate a user interaction. Three of the most common tester actions are &quot;tap this view,&quot; &quot;enter text into this view,&quot; and &quot;wait for this view.&quot; These steps are included as factory methods on &lt;code&gt;KIFUITestActor&lt;/code&gt; in the base KIF implementation.&lt;/p&gt; 
&lt;p&gt;KIF relies on the built-in accessibility of iOS to perform its test steps. As such, it&#39;s important that your app is fully accessible. This is also a great way to ensure that your app is usable by everyone. Giving your views reasonable labels is usually a good place to start when making your application accessible. More details are available in &lt;a href=&quot;http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/iPhoneAccessibility/Making_Application_Accessible/Making_Application_Accessible.html%23//apple_ref/doc/uid/TP40008785-CH102-SW5&quot;&gt;Apple&#39;s Documentation&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;The first step is to create a test class to test some functionality. In our case, we will create a login test (&lt;code&gt;LoginTests&lt;/code&gt;). Create a new class that inherits from KIFTestCase. You may have to update the import to point to &lt;code&gt;&amp;lt;KIF/KIF.h&amp;gt;&lt;/code&gt;. The test method name provides a unique identifier. Your &lt;code&gt;KIFTestCase&lt;/code&gt; subclass should look something like this:&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;LoginTestCase.h&lt;/em&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objective-c&quot;&gt;#import &amp;lt;KIF/KIF.h&amp;gt;

@interface LoginTests : KIFTestCase
@end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;em&gt;LoginTestCase.m&lt;/em&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objective-c&quot;&gt;#import &quot;LoginTests.h&quot;
#import &quot;KIFUITestActor+EXAdditions.h&quot;

@implementation LoginTests

- (void)beforeEach
{
    [tester navigateToLoginPage];
}

- (void)afterEach
{
    [tester returnToLoggedOutHomeScreen];
}

- (void)testSuccessfulLogin
{
    [tester enterText:@&quot;user@example.com&quot; intoViewWithAccessibilityLabel:@&quot;Login User Name&quot;];
    [tester enterText:@&quot;thisismypassword&quot; intoViewWithAccessibilityLabel:@&quot;Login Password&quot;];
    [tester tapViewWithAccessibilityLabel:@&quot;Log In&quot;];

    // Verify that the login succeeded
    [tester waitForTappableViewWithAccessibilityLabel:@&quot;Welcome&quot;];
}

@end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Most of the tester actions in the test are already defined by the KIF framework, but &lt;code&gt;-navigateToLoginPage&lt;/code&gt; and &lt;code&gt;-returnToLoggedOutHomeScreen&lt;/code&gt; are not. These are examples of custom actions which are specific to your application. Adding such steps is easy, and is done using a factory method in a category of &lt;code&gt;KIFUITestActor&lt;/code&gt;, similar to how we added the scenario.&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;KIFUITestActor+EXAdditions.h&lt;/em&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objective-c&quot;&gt;#import &amp;lt;KIF/KIF.h&amp;gt;

@interface KIFUITestActor (EXAdditions)

- (void)navigateToLoginPage;
- (void)returnToLoggedOutHomeScreen;

@end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;em&gt;KIFUITestActor+EXAdditions.m&lt;/em&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objective-c&quot;&gt;#import &quot;KIFUITestActor+EXAdditions.h&quot;

@implementation KIFUITestActor (EXAdditions)

- (void)navigateToLoginPage
{
    [self tapViewWithAccessibilityLabel:@&quot;Login/Sign Up&quot;];
    [self tapViewWithAccessibilityLabel:@&quot;Skip this ad&quot;];
}

- (void)returnToLoggedOutHomeScreen
{
    [self tapViewWithAccessibilityLabel:@&quot;Logout&quot;];
    [self tapViewWithAccessibilityLabel:@&quot;Logout&quot;]; // Dismiss alert.
}

@end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Everything should now be configured. When you run the integration tests using the test button, ⌘U, or the Xcode Test Navigator (⌘5).&lt;/p&gt; 
&lt;h2&gt;Use with other testing frameworks&lt;/h2&gt; 
&lt;p&gt;&lt;code&gt;KIFTestCase&lt;/code&gt; is not necessary for running Tests. Tests can run directly in &lt;code&gt;XCTestCase&lt;/code&gt; or any subclass. The basic requirement is that when you call &lt;code&gt;tester&lt;/code&gt; or &lt;code&gt;system&lt;/code&gt;, &lt;code&gt;self&lt;/code&gt; must be an instance of &lt;code&gt;XCTestCase&lt;/code&gt; and you must call &lt;code&gt;KIFEnableAccessibility&lt;/code&gt; in &lt;code&gt;setUp&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;For example, the following &lt;a href=&quot;https://github.com/specta/specta&quot;&gt;Specta&lt;/a&gt; test works without any changes to KIF or Specta:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objective-c&quot;&gt;#import &amp;lt;Specta.h&amp;gt;
#import &amp;lt;KIF.h&amp;gt;

SpecBegin(App)

describe(@&quot;Tab controller&quot;, ^{

  it(@&quot;should show second view when I tap on the second tab&quot;, ^{
    [tester tapViewWithAccessibilityLabel:@&quot;Second&quot; traits:UIAccessibilityTraitButton];
    [tester waitForViewWithAccessibilityLabel:@&quot;Second View&quot;];
  });

});

SpecEnd
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;If you want to use KIF with a test runner that does not subclass &lt;code&gt;XCTestCase&lt;/code&gt;, your runner class just needs to implement the &lt;code&gt;KIFTestActorDelegate&lt;/code&gt; protocol which contains two required methods.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;(void)failWithException:(NSException *)exception stopTest:(BOOL)stop;&lt;/li&gt; 
 &lt;li&gt;(void)failWithExceptions:(NSArray *)exceptions stopTest:(BOOL)stop;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;In the first case, the test runner should log the exception and halt the test execution if &lt;code&gt;stop&lt;/code&gt; is &lt;code&gt;YES&lt;/code&gt;. In the second, the runner should log all the exceptions and halt the test execution if &lt;code&gt;stop&lt;/code&gt; is &lt;code&gt;YES&lt;/code&gt;. The exceptions take advantage of KIF&#39;s extensions to &lt;code&gt;NSException&lt;/code&gt; that include the &lt;code&gt;lineNumber&lt;/code&gt; and &lt;code&gt;filename&lt;/code&gt; in the exception&#39;s &lt;code&gt;userData&lt;/code&gt; to record the error&#39;s origin.&lt;/p&gt; 
&lt;h2&gt;Use with Swift&lt;/h2&gt; 
&lt;p&gt;Since it&#39;s easy to combine Swift and Objective-C code in a single project, KIF is fully capable of testing apps written in both Objective-C and Swift.&lt;/p&gt; 
&lt;p&gt;If you want to write your test cases in Swift, you&#39;ll need to keep two things in mind.&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Your test bundle&#39;s bridging header will need to &lt;code&gt;#import &amp;lt;KIF/KIF.h&amp;gt;&lt;/code&gt;, since KIF is a static library and not a header.&lt;/li&gt; 
 &lt;li&gt;The &lt;code&gt;tester&lt;/code&gt; and &lt;code&gt;system&lt;/code&gt; keywords are C preprocessor macros which aren&#39;t available in Swift. You can easily write a small extension to &lt;code&gt;XCTestCase&lt;/code&gt; or any other class to access them:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-swift&quot;&gt;extension XCTestCase {
    func tester(file : String = #file, _ line : Int = #line) -&amp;gt; KIFUITestActor {
        return KIFUITestActor(inFile: file, atLine: line, delegate: self)
    }

    func system(file : String = #file, _ line : Int = #line) -&amp;gt; KIFSystemTestActor {
        return KIFSystemTestActor(inFile: file, atLine: line, delegate: self)
    }
}

extension KIFTestActor {
    func tester(file : String = #file, _ line : Int = #line) -&amp;gt; KIFUITestActor {
        return KIFUITestActor(inFile: file, atLine: line, delegate: self)
    }

    func system(file : String = #file, _ line : Int = #line) -&amp;gt; KIFSystemTestActor {
        return KIFSystemTestActor(inFile: file, atLine: line, delegate: self)
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;See Documentation/Examples/Testable Swift for sample code.&lt;/p&gt; 
&lt;h2&gt;Troubleshooting&lt;/h2&gt; 
&lt;h3&gt;Simulator launches but app doesn&#39;t appear, steps time out after 10 seconds&lt;/h3&gt; 
&lt;p&gt;This issue occurs when XCTest does not have a valid Test Host. Reread the instructions above with regards to the &quot;Bundle Loader&quot; and &quot;Test Host&quot; settings. You may have missed something.&lt;/p&gt; 
&lt;h3&gt;Step fails because a view cannot be found&lt;/h3&gt; 
&lt;p&gt;If KIF is failing to find a view, the most likely cause is that the view doesn&#39;t have its accessibility label set. If the view is defined in a xib, then the label can be set using the inspector. If it&#39;s created programmatically, simply set the accessibilityLabel attribute to the desired label.&lt;/p&gt; 
&lt;p&gt;If the label is definitely set correctly, take a closer look at the error given by KIF. This error should tell you more specifically why the view was not accessible. If you are using &lt;code&gt;-waitForTappableViewWithAccessibilityLabel:&lt;/code&gt;, then make sure the view is actually tappable. For items such as labels which cannot become the first responder, you may need to use &lt;code&gt;-waitForViewWithAccessibilityLabel:&lt;/code&gt; instead.&lt;/p&gt; 
&lt;h3&gt;Unrecognized selector when first trying to run&lt;/h3&gt; 
&lt;p&gt;If the first time you try to run KIF you get the following error:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;2011-06-13 13:54:53.295 Testable (Integration Tests)[12385:207] -[NSFileManager createUserDirectory:]: unrecognized selector sent to instance 0x4e02830
2011-06-13 13:54:53.298 Testable (Integration Tests)[12385:207] *** Terminating app due to uncaught exception &#39;NSInvalidArgumentException&#39;, reason: &#39;-[NSFileManager createUserDirectory:]: unrecognized selector sent to instance 0x4e02830&#39;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;or if you get another &quot;unrecognized selector&quot; error inside the KIF code, make sure that you&#39;ve properly set the -ObjC flag as described above. Without this flag your app can&#39;t access the category methods that are necessary for KIF to work properly.&lt;/p&gt; 
&lt;h2&gt;Continuous Integration&lt;/h2&gt; 
&lt;p&gt;A continuous integration (CI) process is highly recommended and is extremely useful in ensuring that your application stays functional. The easiest way to do this will be with Xcode, either using Bots, or Jenkins or another tool that uses xcodebuild. For tools using xcodebuild, review the manpage for instructions on using test destinations.&lt;/p&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;We&#39;re glad you&#39;re interested in KIF, and we&#39;d love to see where you take it.&lt;/p&gt; 
&lt;p&gt;Any contributors to the master KIF repository must sign the &lt;a href=&quot;https://spreadsheets.google.com/spreadsheet/viewform?formkey=dDViT2xzUHAwRkI3X3k5Z0lQM091OGc6MQ&amp;amp;ndplr=1&quot;&gt;Individual Contributor License Agreement (CLA)&lt;/a&gt;. It&#39;s a short form that covers our bases and makes sure you&#39;re eligible to contribute.&lt;/p&gt; 
&lt;p&gt;When you have a change you&#39;d like to see in the master repository, &lt;a href=&quot;https://github.com/kif-framework/KIF/pulls&quot;&gt;send a pull request&lt;/a&gt;. Before we merge your request, we&#39;ll make sure you&#39;re in the list of people who have signed a CLA.&lt;/p&gt; 
&lt;p&gt;Thanks, and happy testing!&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/870764bf693313a232a0d789bb526c87d20c0ec4bc2cd8c49baa8ddb5390ba54/kif-framework/KIF" medium="image" />
      
    </item>
    
    <item>
      <title>alexzielenski/Mousecape</title>
      <link>https://github.com/alexzielenski/Mousecape</link>
      <description>&lt;p&gt;Cursor Manager for OSX&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Mousecape&lt;/h1&gt; 
&lt;p&gt;A free cursor manager for Mac OS 10.8+ built using private, nonintrusive CoreGraphics APIs.&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://github.com/alexzielenski/Mousecape/raw/master/screenshot.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;How it works&lt;/h2&gt; 
&lt;p&gt;Mousecape works by calling the API calls that Apple uses to initialize the system cursors in the system and it registers a daemon that will automatically apply the cursor on login and when cursors get unregistered.&lt;/p&gt; 
&lt;p&gt;It is unintrusive and works in the background. You just need to open the app, click &lt;strong&gt;Mousecape --&amp;gt; Install Helper Tool&lt;/strong&gt;, apply your cursor and you&#39;re done!&lt;/p&gt; 
&lt;h2&gt;Where do I get cursors?&lt;/h2&gt; 
&lt;p&gt;A pack of cursors in Mousecape is called a cape, each cape contains a multiple scales of representations of many cursors. For example, the Arrow cursor can have 1x, 2x, 5x, and 10x representations while the Wait cursor can have 1x, and 2x.&lt;/p&gt; 
&lt;p&gt;There is an example cape file included in this Git Repo located &lt;a href=&quot;https://github.com/alexzielenski/Mousecape/raw/master/Mousecape/com.maxrudberg.svanslosbluehazard.cape&quot;&gt;here for download&lt;/a&gt;. It is a remake of &lt;a href=&quot;http://maxrudberg.com/&quot;&gt;Max Rudberg&#39;s&lt;/a&gt; loved Svanslös cursors generously crafted by Max for us to use. Simply double click the cape file with Mousecape on your system and it will be imported into your library.&lt;/p&gt; 
&lt;h2&gt;How can I create my own cape?&lt;/h2&gt; 
&lt;p&gt;You can create a new cape document in the Mousecape app by hitting ⌘N (Command-N) and editing it with ⌘E. Click the &quot;+&quot; button to add cursors to customize and symply drag your images into the fields provided.&lt;/p&gt; 
&lt;h2&gt;How do animated cursors work?&lt;/h2&gt; 
&lt;p&gt;When you want to animate a cursor, change the value in the frames field in the edit window and make sure frame duration is how you want it. Next, create an image that has all of your cursor frames stacked on top of each other vertically. Mousecape will traverse down the image for each frame, using a box the same size as whatever you put in the size field.&lt;/p&gt; 
&lt;h2&gt;How can I say thanks?&lt;/h2&gt; 
&lt;p&gt;Tell your friends.&lt;/p&gt; 
&lt;h2&gt;Where can I get a copy of this sweet tool?&lt;/h2&gt; 
&lt;p&gt;In the &lt;a href=&quot;https://github.com/alexzielenski/Mousecape/releases&quot;&gt;releases section&lt;/a&gt; of this GitHub page. There are stable reases there. &lt;strong&gt;The current version is 1813&lt;/strong&gt;.&lt;/p&gt; 
&lt;h2&gt;There&#39;s now the beginning of a wiki&lt;/h2&gt; 
&lt;p&gt;Look for the wiki symbol in the toolbar here on this GitHub page or through here &lt;a href=&quot;https://github.com/alexzielenski/Mousecape/wiki&quot;&gt;wiki section&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;LICENSE&lt;/h2&gt; 
&lt;p&gt;I worked very hard researching the private methods used in Mousecape and creating this app. Please respect me and my work by not using any of the information provided here for commercial purposes.&lt;/p&gt; 
&lt;p&gt;Copyright (c) 2013-2014, Alex Zielenski All rights reserved.&lt;/p&gt; 
&lt;p&gt;Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.&lt;/li&gt; 
 &lt;li&gt;Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.&lt;/li&gt; 
 &lt;li&gt;Any redistribution, use, or modification is done solely for personal benefit and not for any commercial purpose or for monetary gain&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/99fbf236514904fa63183593db971d6730c5c1ba838bcd811518ca9fb3210e4f/alexzielenski/Mousecape" medium="image" />
      
    </item>
    
    <item>
      <title>aws-amplify/aws-sdk-ios</title>
      <link>https://github.com/aws-amplify/aws-sdk-ios</link>
      <description>&lt;p&gt;AWS SDK for iOS. For more information, see our web site:&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;⚠️ The AWS SDK for iOS is Deprecated.&lt;/h1&gt; 
&lt;p&gt;We recommend that you start using &lt;a href=&quot;https://github.com/aws-amplify/amplify-swift&quot;&gt;AWS Amplify for Swift&lt;/a&gt;, our modern feature-rich library designed specifically for building cloud-connected apps powered by AWS. You can refer to the &lt;a href=&quot;https://github.com/aws-amplify/amplify-swift/raw/main/MobileSDK_To_AmplifySwift_Guidance.md&quot;&gt;AWS SDK for iOS migration guide&lt;/a&gt; to help you transition to AWS Amplify for Swift. This version is scheduled to reach End of Support on &lt;strong&gt;August 1, 2026&lt;/strong&gt;. After this date, no further updates of any kind will be provided. See &lt;a href=&quot;https://docs.amplify.aws/reference/maintenance-policy&quot;&gt;maintenance policy&lt;/a&gt; for more information about the Amplify Client Library lifecycle.&lt;/p&gt; 
&lt;p&gt;To use the AWS SDK for iOS directly you can refer to &lt;a href=&quot;https://docs.amplify.aws/sdk/q/platform/ios/&quot;&gt;the AWS SDK Documentation here&lt;/a&gt; and follow the setup instructions below. You can also look at sample apps in &lt;a href=&quot;https://github.com/awslabs/aws-sdk-ios-samples&quot;&gt;the AWS SDK for iOS Samples repo&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/aws-amplify/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/release/aws/aws-sdk-ios.svg?sanitize=true&quot; alt=&quot;Release&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://codecov.io/gh/aws-amplify/aws-sdk-ios&quot;&gt;&lt;img src=&quot;https://codecov.io/gh/aws-amplify/aws-sdk-ios/branch/main/graph/badge.svg?sanitize=true&quot; alt=&quot;Code Coverage&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://cocoapods.org/pods/AWSCore&quot;&gt;&lt;img src=&quot;https://img.shields.io/cocoapods/v/AWSCore.svg?sanitize=true&quot; alt=&quot;CocoaPods&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/Carthage/Carthage&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat&quot; alt=&quot;Carthage compatible&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/aws-amplify/aws-sdk-ios&quot;&gt;&lt;img src=&quot;https://github.com/aws-amplify/aws-sdk-ios/actions/workflows/integ-test.yml/badge.svg?sanitize=true&quot; alt=&quot;Integration Test&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/aws-amplify/aws-sdk-ios&quot;&gt;&lt;img src=&quot;https://github.com/aws-amplify/aws-sdk-ios/actions/workflows/unit-test.yml/badge.svg?sanitize=true&quot; alt=&quot;Unit Test&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/jWVbPfC&quot;&gt;&lt;img src=&quot;https://img.shields.io/discord/308323056592486420?logo=discord&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Setup&lt;/h2&gt; 
&lt;p&gt;To use the AWS SDK for iOS, you will need the following installed on your development machine:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Xcode 11.0 or later&lt;/li&gt; 
 &lt;li&gt;iOS 12 or later&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Include the SDK for iOS in an Existing Application&lt;/h2&gt; 
&lt;p&gt;We have a couple &lt;a href=&quot;https://github.com/awslabs/aws-sdk-ios-samples&quot;&gt;samples&lt;/a&gt; applications which showcase how to use the AWS SDK for iOS. Please note that the code in these sample applications is not of production quality, and should be considered as exactly what we called them: samples.&lt;/p&gt; 
&lt;p&gt;There are several ways to integrate the AWS Mobile SDK for iOS into your own project:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://swift.org/package-manager/&quot;&gt;Swift Package Manager&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://cocoapods.org/&quot;&gt;CocoaPods&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/Carthage/Carthage&quot;&gt;Carthage&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://aws.amazon.com/mobile/sdk/&quot;&gt;Dynamic Frameworks&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;You should use ONE and only one of these ways to import the AWS Mobile SDK. Importing the SDK in multiple ways loads duplicate copies of the SDK into the project and causes compiler/linker errors.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Note: If you are using XCFrameworks (i.e., either Swift Package Manager, Carthage, or Dynamic Frameworks), some modules are named with the &lt;code&gt;XCF&lt;/code&gt; suffix to work around a &lt;a href=&quot;https://bugs.swift.org/browse/SR-11704&quot;&gt;Swift issue&lt;/a&gt;. &lt;code&gt;AWSMobileClient&lt;/code&gt; is named as &lt;code&gt;AWSMobileClientXCF&lt;/code&gt; and &lt;code&gt;AWSLocation&lt;/code&gt; is named as &lt;code&gt;AWSLocationXCF&lt;/code&gt;. To use the &lt;code&gt;AWSMobileClient&lt;/code&gt; or &lt;code&gt;AWSLocation&lt;/code&gt; SDKs, import them as:&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;pre&gt;&lt;code class=&quot;language-swift&quot;&gt;import AWSMobileClientXCF
import AWSLocationXCF
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;and use it your app code without the &lt;code&gt;XCF&lt;/code&gt; suffix.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-swift&quot;&gt;AWSMobileClient.default().initialize() 
let locationClient = AWSLocation.default()
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Swift Package Manager&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Swift Package Manager is distributed with Xcode. To start adding the AWS SDK to your iOS project, open your project in Xcode and select &lt;strong&gt;File &amp;gt; Swift Packages &amp;gt; Add Package Dependency&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/aws-amplify/aws-sdk-ios/main/readme-images/spm-setup-01-add-package-dependency.png&quot; alt=&quot;Add package dependency&quot; /&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Enter the URL for the AWS SDK for iOS Swift Package Manager GitHub repo (&lt;code&gt;https://github.com/aws-amplify/aws-sdk-ios-spm&lt;/code&gt;) into the search bar and click &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/aws-amplify/aws-sdk-ios/main/readme-images/spm-setup-02-search-amplify-repo.png&quot; alt=&quot;Search for repo&quot; /&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; This URL is &lt;em&gt;not&lt;/em&gt; the main URL of the SDK. We maintain the Swift Package Manager manifest (&lt;code&gt;Package.swift&lt;/code&gt;) file for this library in a separate repo so that apps that use the SDK do not have to download the entire source repository in order to consume the binary targets.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;You&#39;ll see the repository rules for which version of the SDK you want Swift Package Manager to install. Choose the first rule, &lt;strong&gt;Version&lt;/strong&gt;, and select &lt;strong&gt;Up to Next Minor&lt;/strong&gt; as it will use the latest compatible version of the dependency that can be detected from the &lt;code&gt;main&lt;/code&gt; branch, then click &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/aws-amplify/aws-sdk-ios/main/readme-images/spm-setup-03-dependency-version-options.png&quot; alt=&quot;Dependency version options&quot; /&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; The AWS Mobile SDK for iOS does &lt;a href=&quot;https://docs.amplify.aws/sdk/configuration/setup-options/q/platform/ios#aws-sdk-version-vs-semantic-versioning&quot;&gt;not use Semantic Versioning&lt;/a&gt;, and may introduce breaking API changes on minor version releases. We recommend setting your &lt;strong&gt;Version&lt;/strong&gt; rule to &lt;strong&gt;Up to Next Minor&lt;/strong&gt; and evaluating minor version releases to ensure they are compatible with your app.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Choose which of the libraries you want added to your project. Always select the &lt;strong&gt;AWSCore&lt;/strong&gt; SDK. The remaining SDKs to install will vary based on which SDK you&#39;re trying to install. Most SDKs rely only on &lt;strong&gt;AWSCore&lt;/strong&gt;, but for a full dependency list, see the &lt;a href=&quot;https://raw.githubusercontent.com/aws-amplify/aws-sdk-ios/main/README-spm-support.md&quot;&gt;README-spm-support file&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;em&gt;Note: AWSLex is not currently supported for the &lt;code&gt;arm64&lt;/code&gt; architecture through Swift Package Manager due to conflicts with a packaged binary dependency.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/aws-amplify/aws-sdk-ios/main/readme-images/spm-setup-04-select-dependencies.png&quot; alt=&quot;Select dependencies&quot; /&gt;&lt;/p&gt; &lt;p&gt;Select all that are appropriate, then click &lt;strong&gt;Finish&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;You can always go back and modify which SPM packages are included in your project by opening the Swift Packages tab for your project: Click on the Project file in the Xcode navigator, then click on your project&#39;s icon, then select the &lt;strong&gt;Swift Packages&lt;/strong&gt; tab.&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;CocoaPods&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;The AWS Mobile SDK for iOS is available through &lt;a href=&quot;http://cocoapods.org&quot;&gt;CocoaPods&lt;/a&gt;. If you have not installed CocoaPods, install CocoaPods by running the command:&lt;/p&gt; &lt;pre&gt;&lt;code&gt; $ gem install cocoapods
 $ pod setup
&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Depending on your system settings, you may have to use &lt;code&gt;sudo&lt;/code&gt; for installing &lt;code&gt;cocoapods&lt;/code&gt; as follows:&lt;/p&gt; &lt;pre&gt;&lt;code&gt; $ sudo gem install cocoapods
 $ pod setup
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;In your project directory (the directory where your &lt;code&gt;*.xcodeproj&lt;/code&gt; file is), run the following to create a &lt;code&gt;Podfile&lt;/code&gt; in your project.&lt;/p&gt; &lt;pre&gt;&lt;code&gt; $ pod init
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Edit the podfile to include the pods you want to integrate into your project. For example, if you need auth, you can use AWSMobileClient, and if you need analytics, you add AWSPinpoint. As a result, your podfile might look something like this:&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code&gt;target &#39;YourTarget&#39; do
    pod &#39;AWSMobileClient&#39;
    pod &#39;AWSPinpoint&#39;
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For a complete list of our pods, check out the .podspec files in the root directory of this project.&lt;/p&gt; 
&lt;ol start=&quot;3&quot;&gt; 
 &lt;li&gt; &lt;p&gt;Then run the following command:&lt;/p&gt; &lt;pre&gt;&lt;code&gt; $ pod install --repo-update
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;To open your project, open the newly generated &lt;code&gt;*.xcworkspace&lt;/code&gt; file in your project&#39;s directory with XCode. You can do this by issuing the following command in your project folder:&lt;/p&gt; &lt;pre&gt;&lt;code&gt; $ xed .
&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Do &lt;strong&gt;NOT&lt;/strong&gt; use &lt;code&gt;*.xcodeproj&lt;/code&gt;. If you open up a project file instead of a workspace, you may receive the following error:&lt;/p&gt; &lt;pre&gt;&lt;code&gt; ld: library not found for -lPods-AWSCore
 clang: error: linker command failed with exit code 1 (use -v to see invocation)
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Carthage&lt;/h3&gt; 
&lt;h4&gt;XCFrameworks (recommended)&lt;/h4&gt; 
&lt;p&gt;Carthage supports XCFrameworks in Xcode 12 or above. Follow the steps below to consume the AWS SDK for iOS using XCFrameworks:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Install Carthage 0.37.0 or greater.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Add the following to your &lt;code&gt;Cartfile&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code&gt; github &quot;aws-amplify/aws-sdk-ios&quot;
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Then run the following command:&lt;/p&gt; &lt;pre&gt;&lt;code&gt; $ carthage update --use-xcframeworks --no-use-binaries
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;As of Carthage 0.37.0, prebuilt binaries using XCFrameworks are not supported, as mentioned in the Carthage release notes - &lt;a href=&quot;https://github.com/Carthage/Carthage/releases/tag/0.37.0&quot;&gt;https://github.com/Carthage/Carthage/releases/tag/0.37.0&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;ol start=&quot;4&quot;&gt; 
 &lt;li&gt;On your application targets’ General settings tab, in the Embedded Binaries section, drag and drop each xcframework you want to use from the Carthage/Build folder on disk.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h4&gt;Frameworks with &quot;fat libraries&quot; (not recommended)&lt;/h4&gt; 
&lt;p&gt;To build platform-specific framework bundles with multiple architectures in the binary, (Xcode 11 and below)&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Install the latest version of &lt;a href=&quot;https://github.com/Carthage/Carthage#installing-carthage&quot;&gt;Carthage&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Add the following to your &lt;code&gt;Cartfile&lt;/code&gt;:&lt;/p&gt; &lt;pre&gt;&lt;code&gt; github &quot;aws-amplify/aws-sdk-ios&quot;
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Then run the following command:&lt;/p&gt; &lt;pre&gt;&lt;code&gt; $ carthage update
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;With your project open in Xcode, select your &lt;strong&gt;Target&lt;/strong&gt;. Under &lt;strong&gt;General&lt;/strong&gt; tab, find &lt;strong&gt;Frameworks, Libraries, and Embedded Content&lt;/strong&gt; and then click the &lt;strong&gt;+&lt;/strong&gt; button.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Click the &lt;strong&gt;Add Other...&lt;/strong&gt; button, then &quot;Add Files...&quot; in the popup menu, then navigate to the &lt;code&gt;AWS&amp;lt;#ServiceName#&amp;gt;.framework&lt;/code&gt; files under &lt;code&gt;Carthage&lt;/code&gt; &amp;gt; &lt;code&gt;Build&lt;/code&gt; &amp;gt; &lt;code&gt;iOS&lt;/code&gt; and select them. Do not check the &lt;strong&gt;Destination: Copy items if needed&lt;/strong&gt; checkbox if prompted. Add the frameworks that you need for you specific use case. For example, if you are using AWSMobileClient and AWSPinpoint, you will want to add the following frameworks:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;code&gt;AWSAuthCore.framework&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;AWSCognitoIdentityProvider.framework&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;AWSCognitoIdentityProviderASF.framework&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;AWSCore.framework&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;AWSMobileClient.framework&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;AWSPinpoint.framework&lt;/code&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Under the &lt;strong&gt;Build Phases&lt;/strong&gt; tab in your &lt;strong&gt;Target&lt;/strong&gt;, click the &lt;strong&gt;+&lt;/strong&gt; button on the top left and then select &lt;strong&gt;New Run Script Phase&lt;/strong&gt;. Then setup the build phase as follows. Make sure this phase is below the &lt;code&gt;Embed Frameworks&lt;/code&gt; phase.&lt;/p&gt; &lt;pre&gt;&lt;code&gt; Shell /bin/sh
 
 bash &quot;${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/AWSCore.framework/strip-frameworks.sh&quot;
 
 Show environment variables in build log: Checked
 Run script only when installing: Not checked
 
 Input Files: Empty
 Output Files: Empty
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Note: Currently, the AWS SDK for iOS builds the Carthage binaries using the latest released version of Xcode. To consume the pre-built binaries your Xcode version needs to be the same, else you have to build the frameworks on your machine by passing &lt;code&gt;--no-use-binaries&lt;/code&gt; flag to &lt;code&gt;carthage update&lt;/code&gt; command.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Frameworks&lt;/h3&gt; 
&lt;h4&gt;XCFramework setup&lt;/h4&gt; 
&lt;p&gt;Starting AWS SDK iOS version 2.22.1, SDK binaries are released as XCFrameworks. Follow the steps below to install XCFramework.&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Download the &lt;a href=&quot;https://releases.amplify.aws/aws-sdk-ios/latest/aws-ios-sdk.zip&quot;&gt;latest SDK&lt;/a&gt;. Older SDK versions can be downloaded from &lt;code&gt;https://releases.amplify.aws/aws-sdk-ios/aws-ios-sdk-#.#.#.zip&lt;/code&gt;, where &lt;code&gt;#.#.#&lt;/code&gt; represents the version number. So for version 2.23.3, the download link is &lt;a href=&quot;https://releases.amplify.aws/aws-sdk-ios/aws-ios-sdk-2.23.3.zip&quot;&gt;https://releases.amplify.aws/aws-sdk-ios/aws-ios-sdk-2.23.3.zip&lt;/a&gt;.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Note1: If you are using version &amp;lt; 2.22.1 please refer to the &quot;Legacy framework setup&quot; section below. Note2: To download version &amp;lt; 2.23.3 use this link &lt;code&gt;https://sdk-for-ios.amazonwebservices.com/aws-ios-sdk-#.#.#.zip&lt;/code&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;ol start=&quot;2&quot;&gt; 
 &lt;li&gt;Uncompress the ZIP file&lt;/li&gt; 
 &lt;li&gt;On your application targets’ General settings tab, in the Embedded Binaries section, drag and drop each xcframework you want to use from the downloaded folder.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h4&gt;Legacy framework setup&lt;/h4&gt; 
&lt;ol&gt; 
 &lt;li&gt;Download the required SDK using &lt;code&gt;https://sdk-for-ios.amazonwebservices.com/aws-ios-sdk-#.#.#.zip&lt;/code&gt;, where &lt;code&gt;#.#.#&lt;/code&gt; represents the version number. So for version 2.10.2, the download link is &lt;a href=&quot;https://sdk-for-ios.amazonwebservices.com/aws-ios-sdk-2.10.2.zip&quot;&gt;https://sdk-for-ios.amazonwebservices.com/aws-ios-sdk-2.10.2.zip&lt;/a&gt;.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Note: If you are using version &amp;gt; 2.22.0 please refer to the &quot;XCFramework setup&quot; section above.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;ol start=&quot;2&quot;&gt; 
 &lt;li&gt; &lt;p&gt;With your project open in Xcode, select your &lt;strong&gt;Target&lt;/strong&gt;. Under &lt;strong&gt;General&lt;/strong&gt; tab, find &lt;strong&gt;Embedded Binaries&lt;/strong&gt; and then click the &lt;strong&gt;+&lt;/strong&gt; button.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Click the &lt;strong&gt;Add Other...&lt;/strong&gt; button, navigate to the &lt;code&gt;AWS&amp;lt;#ServiceName#&amp;gt;.framework&lt;/code&gt; files and select them. Check the &lt;strong&gt;Destination: Copy items if needed&lt;/strong&gt; checkbox when prompted. Add the frameworks that you need for you specific use case. For example, if you are using AWSMobileClient and AWSPinpoint, you will want to add the following frameworks:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;code&gt;AWSAuthCore.framework&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;AWSCognitoIdentityProvider.framework&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;AWSCognitoIdentityProviderASF.framework&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;AWSCore.framework&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;AWSMobileClient.framework&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;AWSPinpoint.framework&lt;/code&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Under the &lt;strong&gt;Build Phases&lt;/strong&gt; tab in your &lt;strong&gt;Target&lt;/strong&gt;, click the &lt;strong&gt;+&lt;/strong&gt; button on the top left and then select &lt;strong&gt;New Run Script Phase&lt;/strong&gt;. Then setup the build phase as follows. Make sure this phase is below the &lt;code&gt;Embed Frameworks&lt;/code&gt; phase.&lt;/p&gt; &lt;pre&gt;&lt;code&gt; Shell /bin/sh
 
 bash &quot;${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/AWSCore.framework/strip-frameworks.sh&quot;
 
 Show environment variables in build log: Checked
 Run script only when installing: Not checked
 
 Input Files: Empty
 Output Files: Empty
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Update the SDK to a Newer Version&lt;/h2&gt; 
&lt;p&gt;When we release a new version of the SDK, you can pick up the changes as described below.&lt;/p&gt; 
&lt;h3&gt;CocoaPods&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Run the following command in your project directory. CocoaPods automatically picks up the new changes.&lt;/p&gt; &lt;pre&gt;&lt;code&gt; $ pod update
&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: If your pod is having an issue, you can delete &lt;code&gt;Podfile.lock&lt;/code&gt; and &lt;code&gt;Pods/&lt;/code&gt; then run &lt;code&gt;pod install&lt;/code&gt; to cleanly install the SDK.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/aws-amplify/aws-sdk-ios/main/readme-images/cocoapods-setup-03.png?raw=true&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Carthage&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Run the following command in your project directory. Carthage automatically picks up the new changes.&lt;/p&gt; &lt;pre&gt;&lt;code&gt; $ carthage update
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Frameworks&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;In Xcode&#39;s &lt;strong&gt;Project Navigator&lt;/strong&gt;, type &quot;AWS&quot; to find the AWS Frameworks or XCFrameworks that you manually added to your project. Select all of the AWS Frameworks and hit &lt;strong&gt;Delete&lt;/strong&gt; on your keyboard. Then select &lt;strong&gt;Move to Trash&lt;/strong&gt;.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Follow the installation process above to include the new version of the SDK.&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Getting Started with Swift&lt;/h2&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Import the AWSCore header in the application delegate.&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-swift&quot;&gt;import AWSCore
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Create a default service configuration by adding the following code snippet in the &lt;code&gt;application:didFinishLaunchingWithOptions:&lt;/code&gt; application delegate method.&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-swift&quot;&gt;let credentialsProvider = AWSCognitoCredentialsProvider(
    regionType: CognitoRegionType,
    identityPoolId: CognitoIdentityPoolId)
let configuration = AWSServiceConfiguration(
    region: DefaultServiceRegionType,
    credentialsProvider: credentialsProvider)
AWSServiceManager.default().defaultServiceConfiguration = configuration
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;In Swift file you want to use the SDK, import the appropriate headers for the services you are using. The header file import convention is &lt;code&gt;import AWSServiceName&lt;/code&gt;, as in the following examples:&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-swift&quot;&gt;import AWSS3
import AWSDynamoDB
import AWSSQS
import AWSSNS
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Make a call to the AWS services.&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-swift&quot;&gt;let dynamoDB = AWSDynamoDB.default()
let listTableInput = AWSDynamoDBListTablesInput()
dynamoDB.listTables(listTableInput!).continueWith { (task:AWSTask&amp;lt;AWSDynamoDBListTablesOutput&amp;gt;) -&amp;gt; Any? in
    if let error = task.error as? NSError {
    print(&quot;Error occurred: \(error)&quot;)
        return nil
    }

    let listTablesOutput = task.result

    for tableName in listTablesOutput!.tableNames! {
        print(&quot;\(tableName)&quot;)
    }

    return nil
}
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Most of the service client classes have a singleton method to get a default client. The naming convention is &lt;code&gt;+ defaultSERVICENAME&lt;/code&gt; (e.g. &lt;code&gt;+ defaultDynamoDB&lt;/code&gt; in the above code snippet). This singleton method creates a service client with &lt;code&gt;defaultServiceConfiguration&lt;/code&gt;, which you set up in step 5, and maintains a strong reference to the client.&lt;/p&gt; 
&lt;h2&gt;Getting Started with Objective-C&lt;/h2&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Import the AWSCore header in the application delegate.&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-objective-c&quot;&gt;@import AWSCore;
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Create a default service configuration by adding the following code snippet in the &lt;code&gt;application:didFinishLaunchingWithOptions:&lt;/code&gt; application delegate method.&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-objective-c&quot;&gt;AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:CognitoRegionType
                                                                                                identityPoolId:CognitoIdentityPoolId];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:DefaultServiceRegionType
                                                                     credentialsProvider:credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Import the appropriate headers for the services you are using. The header file import convention is &lt;code&gt;@import AWSServiceName;&lt;/code&gt;, as in the following examples:&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-objective-c&quot;&gt;@import AWSS3;
@import AWSDynamoDB;
@import AWSSQS;
@import AWSSNS;
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Make a call to the AWS services.&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-objective-c&quot;&gt;AWSSNS *sns = [AWSSNS defaultSNS];
AWSSNSListTopicsInput *listTopicsInput = [AWSSNSListTopicsInput new];
[[sns listTopics:listTopicsInput] continueWithBlock:^id(AWSTask *task) {
    // Do something with the response
    return nil;
}];
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Most of the service client classes have a singleton method to get a default client. The naming convention is &lt;code&gt;+ defaultSERVICENAME&lt;/code&gt; (e.g. &lt;code&gt;+ defaultS3SNS&lt;/code&gt; in the above code snippet). This singleton method creates a service client with &lt;code&gt;defaultServiceConfiguration&lt;/code&gt;, which you set up in step 5, and maintains a strong reference to the client.&lt;/p&gt; 
&lt;h2&gt;Working with AWSTask&lt;/h2&gt; 
&lt;p&gt;The SDK returns &lt;code&gt;AWSTask&lt;/code&gt; objects when operating on asynchronous operations to avoid blocking the UI thread.&lt;/p&gt; 
&lt;p&gt;The AWSTask class is a renamed version of BFTask from the Bolts framework. For complete documentation on Bolts, see the &lt;a href=&quot;https://github.com/BoltsFramework/Bolts-ObjC&quot;&gt;Bolts-iOS repo&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Logging&lt;/h2&gt; 
&lt;p&gt;As of version 2.5.4 of this SDK, logging utilizes &lt;a href=&quot;https://github.com/CocoaLumberjack/CocoaLumberjack&quot;&gt;CocoaLumberjack&lt;/a&gt;, a flexible, fast, open source logging framework. It supports many capabilities including the ability to set logging level per output target, for instance, concise messages logged to the console and verbose messages to a log file.&lt;/p&gt; 
&lt;p&gt;CocoaLumberjack logging levels are additive such that when the level is set to verbose, all messages from the levels below verbose are logged. It is also possible to set custom logging to meet your needs. For more information, see &lt;a href=&quot;https://github.com/CocoaLumberjack/CocoaLumberjack/raw/master/Documentation/CustomLogLevels.md&quot;&gt;CocoaLumberjack&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;Changing Log Levels&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;Swift&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-swift&quot;&gt;AWSDDLog.sharedInstance.logLevel = .verbose
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The following logging level options are available:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;.off&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.error&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.warning&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.info&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.debug&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;.verbose&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Objective-C&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objective-c&quot;&gt;[AWSDDLog sharedInstance].logLevel = AWSDDLogLevelVerbose;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The following logging level options are available:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;AWSDDLogLevelOff&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;AWSDDLogLevelError&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;AWSDDLogLevelWarning&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;AWSDDLogLevelInfo&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;AWSDDLogLevelDebug&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;AWSDDLogLevelVerbose&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;We recommend setting the log level to &lt;code&gt;Off&lt;/code&gt; before publishing to the Apple App Store.&lt;/p&gt; 
&lt;h3&gt;Targeting Log Output&lt;/h3&gt; 
&lt;p&gt;CocoaLumberjack can direct logs to file or used as a framework that integrates with the Xcode console.&lt;/p&gt; 
&lt;p&gt;To initialize logging to files, use the following code:&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Swift&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-swift&quot;&gt;let fileLogger: AWSDDFileLogger = AWSDDFileLogger() // File Logger
fileLogger.rollingFrequency = TimeInterval(60*60*24)  // 24 hours
fileLogger.logFileManager.maximumNumberOfLogFiles = 7
AWSDDLog.add(fileLogger)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Objective-C&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objective-c&quot;&gt;AWSDDFileLogger *fileLogger = [[AWSDDFileLogger alloc] init]; // File Logger
fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling
fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
[AWSDDLog addLogger:fileLogger];
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;To initialize logging to your Xcode console, use the following code:&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Swift&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-swift&quot;&gt;AWSDDLog.add(AWSDDOSLogger.sharedInstance) // Apple&#39;s unified logging
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Objective-C&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-objective-c&quot;&gt;[AWSDDLog addLogger:[AWSDDOSLogger sharedInstance]]; // Apple&#39;s unified logging
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Open Source Contributions&lt;/h2&gt; 
&lt;p&gt;We welcome any and all contributions from the community! Make sure you read through our contribution guide &lt;a href=&quot;https://raw.githubusercontent.com/aws-amplify/aws-sdk-ios/main/CONTRIBUTING.md&quot;&gt;here&lt;/a&gt; before submitting any PR&#39;s. Thanks! ❤️&lt;/p&gt; 
&lt;h2&gt;Talk to Us&lt;/h2&gt; 
&lt;p&gt;Visit our GitHub &lt;a href=&quot;https://github.com/aws-amplify/aws-sdk-ios/issues&quot;&gt;Issues&lt;/a&gt; to leave feedback and to connect with other users of the SDK.&lt;/p&gt; 
&lt;h2&gt;Author&lt;/h2&gt; 
&lt;p&gt;Amazon Web Services&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;See the &lt;strong&gt;LICENSE&lt;/strong&gt; file for more info.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/60ea146b2a806512ab80e08a847cf70a63acda3636ea782c809e75a5cb7a39ef/aws-amplify/aws-sdk-ios" medium="image" />
      
    </item>
    
    <item>
      <title>benbaker76/Hackintool</title>
      <link>https://github.com/benbaker76/Hackintool</link>
      <description>&lt;p&gt;The Swiss army knife of vanilla Hackintoshing&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Hackintool&lt;/h1&gt; 
&lt;p&gt;&lt;em&gt;The Swiss army knife of vanilla Hackintoshing&lt;/em&gt;&lt;/p&gt; 
&lt;h2&gt;⚠️ Warning&lt;/h2&gt; 
&lt;p&gt;Hackintool is not an automated patching tool that does all the work for you. &lt;strong&gt;Knowledge is required&lt;/strong&gt; on how to patch before using it. Please read the &lt;a href=&quot;https://www.tonymacx86.com/threads/guide-intel-framebuffer-patching-using-whatevergreen.256490/&quot;&gt;Intel Framebuffer patching using WhateverGreen&lt;/a&gt; guide before you download this tool! I also recommend reading:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.tonymacx86.com/threads/an-idiots-guide-to-lilu-and-its-plug-ins.260063/&quot;&gt;An iDiot&#39;s Guide To Lilu and its Plug-ins by @jaymonkey&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.tonymacx86.com/threads/guide-general-framebuffer-patching-guide-hdmi-black-screen-problem.269149&quot;&gt;General Framebuffer Patching Guide using Hackintool by @CaseySJ&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Mojave, Lilu, and WhateverGreen&lt;/h2&gt; 
&lt;p&gt;Clover&#39;s &lt;code&gt;KextsToPatch&lt;/code&gt; is not usable for framebuffer patching in Mojave for Skylake and newer generations.&lt;/p&gt; 
&lt;h2&gt;Framebuffer Dumps&lt;/h2&gt; 
&lt;p&gt;There are several ways to dump your framebuffer data (the second two require WhateverGreen and Lilu debug versions) to read in Hackintool:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Use the &lt;strong&gt;Framebuffer -&amp;gt; macOS 10.13.6 / Framebuffer -&amp;gt; macOS 10.14&lt;/strong&gt; menu to create patches without a framebuffer dump.&lt;/li&gt; 
 &lt;li&gt;Use the &lt;strong&gt;-igfxdump&lt;/strong&gt; boot flag to dump the IGPU framebuffer kext to &lt;code&gt;/AppleIntelFramebuffer_X_Y&lt;/code&gt; (root of your boot drive) and then use &lt;strong&gt;File -&amp;gt; Open&lt;/strong&gt; menu.&lt;/li&gt; 
 &lt;li&gt;Use the &lt;strong&gt;-igfxfbdump&lt;/strong&gt; boot flag to dump the native and patched framebuffer table to ioreg and then use &lt;strong&gt;File -&amp;gt; Import -&amp;gt; IOReg Dump&lt;/strong&gt; menu.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Supports generations from Sandy Bridge to Ice Lake (Sandy Bridge, Ivy Bridge, Haswell, Broadwell, Skylake, Kaby Lake, Coffee Lake, Cannon Lake, and Ice Lake)&lt;/li&gt; 
 &lt;li&gt;Create All, Connectors, or VRAM patches&lt;/li&gt; 
 &lt;li&gt;Detect Changes for auto patch creation&lt;/li&gt; 
 &lt;li&gt;Create Clover patches in hex, base64, or Devices/Properties formats&lt;/li&gt; 
 &lt;li&gt;Displays native GPU and Model identifiers&lt;/li&gt; 
 &lt;li&gt;Display and edit Memory Info such as Stolen, Framebuffer, VRAM, Cursor, etc.&lt;/li&gt; 
 &lt;li&gt;Tooltips for additional info when hovering over some items&lt;/li&gt; 
 &lt;li&gt;Reads &quot;live&quot; data directly from Framebuffer kexts (if available; see Mojave note below)&lt;/li&gt; 
 &lt;li&gt;File -&amp;gt; Open framebuffer file generated by WhateverGreen&#39;s &lt;code&gt;-igfxdump&lt;/code&gt; boot flag&lt;/li&gt; 
 &lt;li&gt;File -&amp;gt; Export -&amp;gt; Clover config.plist / File -&amp;gt; Export -&amp;gt; Framebuffer.txt file&lt;/li&gt; 
 &lt;li&gt;Patch audio layout ID&lt;/li&gt; 
 &lt;li&gt;Add USB port limit patch&lt;/li&gt; 
 &lt;li&gt;Plug and unplug USB2/USB3 devices and set port connector types, then generate a &lt;code&gt;USBPorts.kext&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Advanced patching options (DVMT pre-alloc 32 MB, VRAM 2048 MB, Disable eGPU, Enable HDMI2.0 (4K), DP -&amp;gt; HDMI, GfxYTile Fix, Reboot Fix, USB port Limit, Spoof Audio Device ID, FB Port Limit, Spoof Gfx Device ID)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Screenshot&lt;/h2&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Click to expand&lt;/strong&gt;&lt;/summary&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool01.png&quot; alt=&quot;Hackintool Screenshot 1&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool02.png&quot; alt=&quot;Hackintool Screenshot 2&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool03.png&quot; alt=&quot;Hackintool Screenshot 3&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool04.png&quot; alt=&quot;Hackintool Screenshot 4&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool05.png&quot; alt=&quot;Hackintool Screenshot 5&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool06.png&quot; alt=&quot;Hackintool Screenshot 6&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool07.png&quot; alt=&quot;Hackintool Screenshot 7&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool08.png&quot; alt=&quot;Hackintool Screenshot 8&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool09.png&quot; alt=&quot;Hackintool Screenshot 9&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool10.png&quot; alt=&quot;Hackintool Screenshot 10&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool11.png&quot; alt=&quot;Hackintool Screenshot 11&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool12.png&quot; alt=&quot;Hackintool Screenshot 12&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool13.png&quot; alt=&quot;Hackintool Screenshot 13&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool14.png&quot; alt=&quot;Hackintool Screenshot 14&quot; /&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/benbaker76/Hackintool/master/images/Hackintool15.png&quot; alt=&quot;Hackintool Screenshot 15&quot; /&gt;&lt;/p&gt; 
&lt;/details&gt; 
&lt;h2&gt;Release Notes&lt;/h2&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Click to expand&lt;/strong&gt;&lt;/summary&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;a href=&quot;https://github.com/benbaker76/Hackintool/commits/master&quot;&gt;Updates are on Github&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;2.8.6 - Fix crash in getEDIDData, fix Import KextsToPatch&lt;/li&gt; 
  &lt;li&gt;2.8.5 - Add &quot;Show Installed Only&quot; option for installed kexts&lt;/li&gt; 
  &lt;li&gt;2.8.4 - Improved framebuffer enumeration, updated codecs and pci.ids&lt;/li&gt; 
  &lt;li&gt;2.8.3 - Improved version checking routine, updated Turkish translation&lt;/li&gt; 
  &lt;li&gt;2.8.2 - Updated Clover download location / OpenCore download support, Chinese translation update&lt;/li&gt; 
  &lt;li&gt;2.8.1 - Data file updates&lt;/li&gt; 
  &lt;li&gt;2.8.0 - Fixed OpenCore KextsToPatch format. Removed DSDT Rename auto selection&lt;/li&gt; 
  &lt;li&gt;2.7.9 - Source is now on Github &lt;a href=&quot;https://github.com/benbaker76/Hackintool&quot;&gt;here&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;2.7.8 - Fix pcidevices.dsl compile error&lt;/li&gt; 
  &lt;li&gt;2.7.7 - pcidevices.dsl export will now compile. Fix for Device Path&lt;/li&gt; 
  &lt;li&gt;2.7.6 - Custom Device Path generation code (big thanks to &lt;a href=&quot;https://www.tonymacx86.com/members/195809/&quot;&gt;@jaymonkey&lt;/a&gt; for helping test). Updated Chinese translation&lt;/li&gt; 
  &lt;li&gt;2.7.5 - PCI DevicePath fix&lt;/li&gt; 
  &lt;li&gt;2.7.4 - Added &lt;a href=&quot;http://EveryMac.com&quot;&gt;EveryMac.com&lt;/a&gt; Serial Check&lt;/li&gt; 
  &lt;li&gt;2.7.3 - Added Serial Number Generator (thanks to vit9696 / MacInfoPkg team)&lt;/li&gt; 
  &lt;li&gt;2.7.2 - Added EDID injection to IGPU. Added DPCD Max Link Rate patching. Added tooltips for Advanced / LSPCON patch options. Updated pci.ids / AppleALC audio data&lt;/li&gt; 
  &lt;li&gt;2.7.1 - Bug fixes. Updated pci.ids / AppleALC audio data&lt;/li&gt; 
  &lt;li&gt;2.7.0 - Launch process output fix (big thanks to &lt;a href=&quot;https://www.tonymacx86.com/members/195809/&quot;&gt;@jaymonkey&lt;/a&gt; for the help testing this). Prepends &quot;Intel&quot; for IGPU name for Intel Power Gadget (thanks again to &lt;a href=&quot;https://www.tonymacx86.com/members/195809/&quot;&gt;@jaymonkey&lt;/a&gt; for discovering this). System Info now includes all graphics cards. iMessage Keys are now clearly labeled. Added new OpenCore logo. Updated pci.ids / AppleALC audio data&lt;/li&gt; 
  &lt;li&gt;2.6.9 - Disable Gatekeeper tool fix&lt;/li&gt; 
  &lt;li&gt;2.6.8 - Catalina fixes&lt;/li&gt; 
  &lt;li&gt;2.6.7 - Added &quot;HDMI Infinite Loop Fix&quot;. Added LSPCON patching. Fixes&lt;/li&gt; 
  &lt;li&gt;2.6.6 - Added &quot;Disable Gatekeeper and mount the disk in read/write mode&quot; tool. Change GFX0 to IGPU selection no longer shows for dGPU&lt;/li&gt; 
  &lt;li&gt;2.6.5 - Improved BT hardware detection (when installed) and will show if FW Loaded (if using BrcmPatchRAM)&lt;/li&gt; 
  &lt;li&gt;2.6.4 - Fixes&lt;/li&gt; 
  &lt;li&gt;2.6.3 - Added Atheros BT device detection&lt;/li&gt; 
  &lt;li&gt;2.6.2 - Added Bluetooth to Info-&amp;gt;Misc&lt;/li&gt; 
  &lt;li&gt;2.6.1 - Fixed USB device speeds&lt;/li&gt; 
  &lt;li&gt;2.6.0 - USB fixes for macOS Catalina. USB now shows device speeds. Much improved Log viewer. Installing kexts on macOS Catalina will prompt to disable Gatekeeper and mount the disk in read/write mode. Fixed Atheros install for macOS Catalina. Added NativeDisplayBrightness to kext install list. Updated translations for Korean / Chinese&lt;/li&gt; 
  &lt;li&gt;2.5.9 - ACPI names must be 4 characters (thanks P1LGRIM)&lt;/li&gt; 
  &lt;li&gt;2.5.8 - Now using pci.ids for Audio Controllers&lt;/li&gt; 
  &lt;li&gt;2.5.7 - Removed kextcache -u / call for rebuild cache. Added more command output for tools&lt;/li&gt; 
  &lt;li&gt;2.5.6 - Added column sorting to PCI table&lt;/li&gt; 
  &lt;li&gt;2.5.5 - Added ASRock DeskMini 310 system config&lt;/li&gt; 
  &lt;li&gt;2.5.4 - Will now output mounting errors&lt;/li&gt; 
  &lt;li&gt;2.5.3 - Fixed &lt;a href=&quot;http://EveryMac.com&quot;&gt;EveryMac.com&lt;/a&gt; Visit link&lt;/li&gt; 
  &lt;li&gt;2.5.2 - Added Host, OS, Kernel and RAM System Info&lt;/li&gt; 
  &lt;li&gt;2.5.1 - Add support for 0x3EA50005 0x3EA60005 0x3E980003 frame id for CFL refresh&lt;/li&gt; 
  &lt;li&gt;2.5.0 - Fixed stdout/stderr output capture for admin privilege shell commands (thanks jaymonkey)&lt;/li&gt; 
  &lt;li&gt;2.4.9 - Fixes&lt;/li&gt; 
  &lt;li&gt;2.4.8 - Fixes&lt;/li&gt; 
  &lt;li&gt;2.4.7 - Fixes&lt;/li&gt; 
  &lt;li&gt;2.4.6 - &quot;Rebuild KextCache and Repair Permissions&quot; moved to tools section now has progress bar&lt;/li&gt; 
  &lt;li&gt;2.4.5 - Output added for &quot;Rebuild KextCache and Repair Permissions&quot;&lt;/li&gt; 
  &lt;li&gt;2.4.4 - Chinese language updates. Compiler improvements&lt;/li&gt; 
  &lt;li&gt;2.4.3 - Chinese language updates. USB configurator fixes&lt;/li&gt; 
  &lt;li&gt;2.4.2 - Changed Framebuffer Info to Selected / Current Framebuffer Info for easier comparison&lt;/li&gt; 
  &lt;li&gt;2.4.1 - Chinese language update&lt;/li&gt; 
  &lt;li&gt;2.4.0 - Now includes iMessageDebug data (ElNono / mdmwii / flux84 / sugarface / pokenguyen). Export system info data. View model info (&lt;a href=&quot;http://everymac.com&quot;&gt;everymac.com&lt;/a&gt;). Check serial feature. Preliminary OpenCore support (thanks vit9696)&lt;/li&gt; 
  &lt;li&gt;2.3.9 - ComboBox fix (thanks telepati)&lt;/li&gt; 
  &lt;li&gt;2.3.8 - Bug fixes (thanks ReddestDream)&lt;/li&gt; 
  &lt;li&gt;2.3.7 - Improved Clover EFI Mounting. Clover PCI export now uses SubClass for device_type&lt;/li&gt; 
  &lt;li&gt;2.3.6 - Bug fixes. &quot;Use Intel HDMI&quot; option added (hda-gfx=onboard-x). Added &quot;Non Scaled&quot; resolution type&lt;/li&gt; 
  &lt;li&gt;2.3.5 - Fixed bug in Device Path generator (gfxutil). Added &quot;Generate Windows UTC Registry Files&quot; tool&lt;/li&gt; 
  &lt;li&gt;2.3.4 - Updated audio codecs, Export PCI list in Clover and dsl format, Now dumps all ACPI tables and decompiles to dsl&lt;/li&gt; 
  &lt;li&gt;2.3.3 - Extract DSDT (phpdev32), Auto update PCIIDs (MuntashirAkon), Export PCI list in JSON format&lt;/li&gt; 
  &lt;li&gt;2.3.2 - Monitor PCI hotplug&lt;/li&gt; 
  &lt;li&gt;2.3.1 - UI Updates&lt;/li&gt; 
  &lt;li&gt;2.3.1 - Right-click on a PCI device and select &quot;Copy IOReg Path&quot;. Launch IORegistryExplorer and select Go-&amp;gt;Go to Path... menu, paste in the path and click the &quot;Go to Path&quot; button.&lt;/li&gt; 
  &lt;li&gt;2.2.8 - Added warning for HWP state logging (previous state can only be restored after a reboot)&lt;/li&gt; 
  &lt;li&gt;2.2.7 - Added VDA Decoder status. Added DevicePath for PCI devices. Export PCI Devices list to desktop&lt;/li&gt; 
  &lt;li&gt;2.2.6 - Improved Boot EFI detection. Set Boot EFI manually. AppleIntelInfo shows 30 second timer to log CStates. Restores HWP state after logging. Added Intel Regs warning. Calculator now shows reverse bytes&lt;/li&gt; 
  &lt;li&gt;2.2.4 - Added AppleIntelInfo options (Enable HWP, Log: CStates, IGPU, IPG Style, Intel Regs, MSRs). Added AppleIntelInfo 20 second delay for CState capture.&lt;/li&gt; 
  &lt;li&gt;2.2.2 - Added Info tab (Network Interfaces, Graphic Devices, Audio Devices and Storage Devices). Will highlight power settings green or red to indicate issues&lt;/li&gt; 
  &lt;li&gt;2.2.1 - Fixes&lt;/li&gt; 
  &lt;li&gt;2.2.0 - New PCI Devices, Network, Power and Tools tab&lt;/li&gt; 
  &lt;li&gt;2.1.9 - Added Github kext downloading. The download version may be older than the source version. Also due to Github API rate limits it will store the latest download urls. Added Install kext(s) function. Added Rebuild KextCache and Repair Permissions function&lt;/li&gt; 
  &lt;li&gt;2.1.8 - Uses kextstat to get the versions&lt;/li&gt; 
  &lt;li&gt;2.1.7 - Now detects more kexts&lt;/li&gt; 
  &lt;li&gt;2.1.6 - Can now download the current version numbers of Lilu + Plugins&lt;/li&gt; 
  &lt;li&gt;2.0.8 - Patch-&amp;gt;System Configs menu with various configurations you can try if your Coffee Lake system is being troublesome (CaseySJ)&lt;/li&gt; 
  &lt;li&gt;2.0.4 - Apply Clover patches (KernelToPatch, KextToPatch, DSDT Renames). View, create and edit NVRAM variables (be careful!). View installed Lilu + Plugins, download and automatically compile the latest versions&lt;/li&gt; 
  &lt;li&gt;1.9.6 - Disk display enhancements (icons / mount / unmount buttons)&lt;/li&gt; 
  &lt;li&gt;1.9.2 - Fixes&lt;/li&gt; 
  &lt;li&gt;1.9.1 - Added SSDT-UIAC.aml / SSDT-USBX.aml export support&lt;/li&gt; 
  &lt;li&gt;1.9.0 - Fixed launch bug (thanks &lt;a href=&quot;https://www.tonymacx86.com/members/9658/&quot;&gt;@Pavo&lt;/a&gt;)&lt;/li&gt; 
  &lt;li&gt;1.8.7 - Added USB Power DSDT Renames&lt;/li&gt; 
  &lt;li&gt;1.8.6 - Added DSDT Renames&lt;/li&gt; 
  &lt;li&gt;1.8.5 - Fixes&lt;/li&gt; 
  &lt;li&gt;1.8.4 - Auto update capability using Sparkle framework&lt;/li&gt; 
  &lt;li&gt;1.8.3 - Improved Audio Device detection / selection, window can now be resized&lt;/li&gt; 
  &lt;li&gt;1.8.2 - Added translations; French (Matgen84), German (al6042), Korean (zisqo), Russian / Ukrainian (ctich)&lt;/li&gt; 
  &lt;li&gt;1.8.1 - Clover downloader (Kozlek / JrCs / slice), NVRAM boot-args edit, improved authorization, UI update&lt;/li&gt; 
  &lt;li&gt;1.8.0 - Improved USB power export (corpnewt), other fixes, new icon&lt;/li&gt; 
  &lt;li&gt;1.7.9 - Added USB power export, EFI partition mounting, calculator and log viewer&lt;/li&gt; 
  &lt;li&gt;1.7.8 - Added resolution injection from one-key-hidpi script (xzhih)&lt;/li&gt; 
  &lt;li&gt;1.7.7 - Added EDID patching support for AMD &amp;amp; nVidia&lt;/li&gt; 
  &lt;li&gt;1.7.6 - EDID overrides can now export custom icons&lt;/li&gt; 
  &lt;li&gt;1.7.5 - Improved USB guide, added print button&lt;/li&gt; 
  &lt;li&gt;1.7.4 - Fixed defaults&lt;/li&gt; 
  &lt;li&gt;1.7.3 - Updates&lt;/li&gt; 
  &lt;li&gt;1.7.2 - Renamed app to Hackintool, added EDID injection support (Andy Vandijck)&lt;/li&gt; 
  &lt;li&gt;1.7.1 - Dark mode fixes&lt;/li&gt; 
  &lt;li&gt;1.7.0 - USB &amp;amp; Audio info added, shows possible spoof / kext requirements&lt;/li&gt; 
  &lt;li&gt;1.6.9 - Updates&lt;/li&gt; 
  &lt;li&gt;1.6.8 - Added framebuffer-camellia and framebuffer-flags patching support&lt;/li&gt; 
  &lt;li&gt;1.6.7 - Added Macmini8,1 and MacBookAir8,1 definitions&lt;/li&gt; 
  &lt;li&gt;1.6.6 - Data file updates&lt;/li&gt; 
  &lt;li&gt;1.6.5 - Fixed USBInjectAll detection&lt;/li&gt; 
  &lt;li&gt;1.6.4 - Audio layout id detection improvement&lt;/li&gt; 
  &lt;li&gt;1.6.3 - Now shows Audio Controller&lt;/li&gt; 
  &lt;li&gt;1.6.2 - USB fixes&lt;/li&gt; 
  &lt;li&gt;1.6.1 - Improved Spoof Audio Device Id option&lt;/li&gt; 
  &lt;li&gt;1.6.0 - Fixes&lt;/li&gt; 
  &lt;li&gt;1.5.9 - Now shows USB Controllers&lt;/li&gt; 
  &lt;li&gt;1.5.8 - Will store and restore USB ports between app sessions for use with new USBInjectAll.kext (0.7.0) to include boot flags for excluding groups of ports&lt;/li&gt; 
  &lt;li&gt;1.5.7 - Now detects EHC and hub ports (thanks to RehabMan &amp;amp; SavageAUS). Multi-select USB Ports. Now detects if USBInjectAll is installed&lt;/li&gt; 
  &lt;li&gt;1.5.4 - Fixed audio codec detection when user has multiple audio devices. Added &quot;Reboot Fix&quot; advanced patch (sets connector pipe values to 18)&lt;/li&gt; 
  &lt;li&gt;1.5.3 - Improved Export-&amp;gt;Clover config.plist and now makes a backup (config-backup.plist)&lt;/li&gt; 
  &lt;li&gt;1.5.2 - Added Patch-&amp;gt;AzulPatcher4600&lt;/li&gt; 
  &lt;li&gt;1.5.1 - USBPorts port-count fix&lt;/li&gt; 
  &lt;li&gt;1.5.0 - Fixes&lt;/li&gt; 
  &lt;li&gt;1.4.9 - Added tab to show if Lilu, WhateverGreen and AppleALC are installed and version info&lt;/li&gt; 
  &lt;li&gt;1.4.8 - Fixed framebuffer-cursormem output for iASL DSL Source patching&lt;/li&gt; 
  &lt;li&gt;1.4.7 - Added support for new WEG -igfxfbdump boot flag using File-&amp;gt;Import-&amp;gt;IOReg Dump menu&lt;/li&gt; 
  &lt;li&gt;1.4.6 - Fixes. Added Framebuffer-&amp;gt;macOS 10.14 menu item. Added QE/CI and Metal support detection&lt;/li&gt; 
  &lt;li&gt;1.4.5 - Added support for framebuffer-cursormem (Haswell)&lt;/li&gt; 
  &lt;li&gt;1.4.4 - Added ability to inject valid device-id&#39;s&lt;/li&gt; 
  &lt;li&gt;1.4.3 - Fixes&lt;/li&gt; 
  &lt;li&gt;1.4.2 - Added Patch-&amp;gt;Import KextsToPatch / Apply Current Patches menu. Renamed USBPower.kext -&amp;gt; USBPorts.kext&lt;/li&gt; 
  &lt;li&gt;1.4.1 - Added TypeC USB ports&lt;/li&gt; 
  &lt;li&gt;1.4.0 - Improved Intel Generation detection&lt;/li&gt; 
  &lt;li&gt;1.3.9 - Now using AppleIntelFramebuffer@X index for connector association&lt;/li&gt; 
  &lt;li&gt;1.3.8 - Fixed bug AppleIntelFramebuffer port-number should be connecter index + 4 or 0 for internal (RehabMan)&lt;/li&gt; 
  &lt;li&gt;1.3.7 - Shows Display Info for connected displays on connector ports (with display hot plug support), fixed iASL DSL Source hex output, connector drag-drop to change order&lt;/li&gt; 
  &lt;li&gt;1.3.6 - Fixes&lt;/li&gt; 
  &lt;li&gt;1.3.5 - Will try HDAS if HDEF is not found&lt;/li&gt; 
  &lt;li&gt;1.3.4 - Added AllData connector patch method (RehabMan). Will try GFX0 if IGPU is not found&lt;/li&gt; 
  &lt;li&gt;1.3.3 - Fixes. Added more audio layout-id&#39;s (vandroiy2013)&lt;/li&gt; 
  &lt;li&gt;1.3.2 - Fixes&lt;/li&gt; 
  &lt;li&gt;1.3.1 - Fixes. Added new menu Framebuffer-&amp;gt;Current Version / macOS 10.13.6&lt;/li&gt; 
  &lt;li&gt;1.3.0 - Added audio patching, Clover config.plist exporting, USB patching, advanced auto patching&lt;/li&gt; 
  &lt;li&gt;1.2.8 - Added iASL DSL Source patch output, display detected Intel gen and platform-id&lt;/li&gt; 
  &lt;li&gt;1.2.7 - File-&amp;gt;Export framebuffer text file&lt;/li&gt; 
  &lt;li&gt;1.2.6 - Fix preallocated memory calculation formula (vit9696)&lt;/li&gt; 
  &lt;li&gt;1.2.5 - Still outputs a config.plist/Devices/Properties patch when &quot;Auto Detect Changes&quot; is selected&lt;/li&gt; 
  &lt;li&gt;1.2.4 - Fixes&lt;/li&gt; 
  &lt;li&gt;1.2.3 - config.plist/Devices/Properties patch now outputs data format&lt;/li&gt; 
  &lt;li&gt;1.2.2 - Fixes&lt;/li&gt; 
  &lt;li&gt;1.2.1 - Updates and fixes&lt;/li&gt; 
  &lt;li&gt;1.2.0 - Added support for Cannon Lake and Ice Lake&lt;/li&gt; 
  &lt;li&gt;1.1.0 - Added MacBookPro15,1 and MacBookPro15,2 models&lt;/li&gt; 
  &lt;li&gt;1.0.9 - Support for Mojave, Coffee Lake, WhateverGreen&#39;s -igfxdump boot flag and Clover&#39;s config.plist/Devices/Properties patch output&lt;/li&gt; 
  &lt;li&gt;1.0.8 - Updates&lt;/li&gt; 
  &lt;li&gt;1.0.7 - Fixed support for dark mode&lt;/li&gt; 
  &lt;li&gt;1.0.6 - Better backwards compatibility&lt;/li&gt; 
  &lt;li&gt;1.0.5 - Detects Chipset / Address on Startup, Edit Memory Values Easier&lt;/li&gt; 
  &lt;li&gt;1.0.4 - Added GPU / Model Info&lt;/li&gt; 
  &lt;li&gt;1.0.3 - Added Tooltips&lt;/li&gt; 
  &lt;li&gt;1.0.2 - Added Memory tab&lt;/li&gt; 
  &lt;li&gt;1.0.1 - Minor Fixes&lt;/li&gt; 
  &lt;li&gt;1.0.0 - Initial Release&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;h2&gt;Credits &amp;amp; Contributions&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;vit9696 for &lt;a href=&quot;https://github.com/acidanthera/WhateverGreen&quot;&gt;WhateverGreen&lt;/a&gt; (&lt;a href=&quot;https://github.com/acidanthera/WhateverGreen#credits&quot;&gt;full credits&lt;/a&gt;), &lt;a href=&quot;https://github.com/acidanthera/Lilu&quot;&gt;Lilu&lt;/a&gt; (&lt;a href=&quot;https://github.com/acidanthera/Lilu#credits&quot;&gt;full credits&lt;/a&gt;), &lt;a href=&quot;https://github.com/acidanthera/AppleALC&quot;&gt;AppleALC&lt;/a&gt; (&lt;a href=&quot;https://github.com/acidanthera/AppleALC#credits&quot;&gt;full credits&lt;/a&gt;), USBPorts.kext and additional help&lt;/li&gt; 
 &lt;li&gt;vit9696 for &lt;a href=&quot;https://github.com/acidanthera/WhateverGreen/raw/master/Manual/IntelFramebuffer.bt&quot;&gt;IntelFramebuffer.bt&lt;/a&gt; with additional work by bcc9, Piker-Alpha and joevt&lt;/li&gt; 
 &lt;li&gt;daliansky for Intel Core Platform ID and SMBIOS Quick Reference&lt;/li&gt; 
 &lt;li&gt;Clover Development Team for various technical info&lt;/li&gt; 
 &lt;li&gt;vandroiy2013 for audio id data from &lt;a href=&quot;https://github.com/acidanthera/AppleALC&quot;&gt;AppleALC&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;RehabMan for all data patching method, ioreg framebuffer dump and other contributions&lt;/li&gt; 
 &lt;li&gt;EDID injection (Andy Vandijck / Marchrius)&lt;/li&gt; 
 &lt;li&gt;USB power injection (corpnewt)&lt;/li&gt; 
 &lt;li&gt;HDA controllers / codec lists by the VoodooHDA project&lt;/li&gt; 
 &lt;li&gt;System Configs compilation (CaseySJ)&lt;/li&gt; 
 &lt;li&gt;Clover downloader (Kozlek / JrCs / slice)&lt;/li&gt; 
 &lt;li&gt;Kext compiler &amp;amp; installer (Sascha Lamprecht / Gengik84 / LAbyOne)&lt;/li&gt; 
 &lt;li&gt;Atheros &amp;amp; SATA kexts (Sascha Lamprecht)&lt;/li&gt; 
 &lt;li&gt;DPCIManager (phpdev32 / MuntashirAkon)&lt;/li&gt; 
 &lt;li&gt;AppleIntelInfo (Pike R. Alpha)&lt;/li&gt; 
 &lt;li&gt;gfxutil (mcmatrix)&lt;/li&gt; 
 &lt;li&gt;VDADecoderChecker (Andy Breuhan)&lt;/li&gt; 
 &lt;li&gt;iMessageDebug (ElNono / mdmwii / flux84 / sugarface / pokenguyen)&lt;/li&gt; 
 &lt;li&gt;macserial (vit9696 / MacInfoPkg team)&lt;/li&gt; 
 &lt;li&gt;Model data (&lt;a href=&quot;http://everymac.com&quot;&gt;everymac.com&lt;/a&gt;)&lt;/li&gt; 
 &lt;li&gt;Translations: French (Matgen84), German (al6042), Korean (zisqo), Russian / Ukrainian (ctich), Chinese (daliansky, Bat.bat, penghubingzhou)&lt;/li&gt; 
 &lt;li&gt;Sparkle framework by Andy Matuschak&lt;/li&gt; 
 &lt;li&gt;Icon &amp;amp; UI updates by ultratiem&lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/38c2129baaaae60a301fc897f6aae8f0d45b52a39d29478fb6b31f05cfe47906/benbaker76/Hackintool" medium="image" />
      
    </item>
    
  </channel>
</rss>
