<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ObjC_Coder</title>
    <description>The latest articles on DEV Community by ObjC_Coder (@objc_coder).</description>
    <link>https://dev.to/objc_coder</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3572348%2F97d63daf-0f57-437a-9833-dcc02bc04271.png</url>
      <title>DEV Community: ObjC_Coder</title>
      <link>https://dev.to/objc_coder</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/objc_coder"/>
    <language>en</language>
    <item>
      <title>iOS Development Without Xcode: Toolchain Alternatives and Compiling, Signing, and Installing</title>
      <dc:creator>ObjC_Coder</dc:creator>
      <pubDate>Thu, 24 Sep 2026 10:12:54 +0000</pubDate>
      <link>https://dev.to/objc_coder/ios-development-without-xcode-toolchain-alternatives-and-compiling-signing-and-installing-1gk4</link>
      <guid>https://dev.to/objc_coder/ios-development-without-xcode-toolchain-alternatives-and-compiling-signing-and-installing-1gk4</guid>
      <description>&lt;p&gt;I used to think there was no way around Xcode for iOS development: install a dozen-plus GB of Xcode on a Mac, chase it along with every OS version update, and delete things first when disk space runs out. It wasn't until I got an iOS project running on a Windows machine that I realized what iOS development actually requires is the compilation toolchain, signing and packaging, and on-device installation — Xcode is just the shell wrapped around those things. The shell can be swapped; the toolchain can be built in. This article breaks down the two paths to Xcode-free iOS development, then covers which steps you still can't get around.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Exactly Does Xcode Lock Down
&lt;/h2&gt;

&lt;p&gt;Let's start with what Xcode locks down. For an iOS project to become an installable app, three steps are indispensable: compilation (clang for C/OC, swiftc for Swift, the linker combining objects into an executable), signing (certificates and provisioning profiles signing the executable), and installation (installing to a real device or exporting an IPA). Xcode bundles this toolchain together with the IDE, weighs over a dozen GB, and requires macOS. For Windows users, or for people whose Mac disk is tight, what's blocking you isn't iOS development itself — it's the Xcode entry point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path One: Cloud Builds
&lt;/h2&gt;

&lt;p&gt;The first path is cloud builds: write code locally, and put compilation and packaging on CI or a cloud machine, where Xcode is installed and xcodebuild runs; download the artifacts for distribution. It suits automated release pipelines, but during development and debugging, on-device verification still can't be avoided — changing a line of code means pushing to the remote and waiting for a build, and a round trip takes several minutes, which isn't a great experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path Two: An IDE with a Built-in Toolchain
&lt;/h2&gt;

&lt;p&gt;The second path is switching to an IDE that ships with its own toolchain. &lt;strong&gt;KXApp (KuaiXie)&lt;/strong&gt; comes with a built-in compilation tool suite, so you can compile iOS projects without installing or updating Xcode, and it runs on both Windows and Mac. When creating a project in KXApp, choose Swift, Objective-C, or Flutter, and a standardized project structure is generated in one click — no manual template setup; the editor is built on the VS Code core, so the coding experience matches VS Code, and AI coding assistant plugins plug right in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hands-On Workflow
&lt;/h2&gt;

&lt;p&gt;The hands-on workflow is smoother than you'd expect: once the project is created, connect an iPhone and click one-click build; &lt;strong&gt;KXApp&lt;/strong&gt;'s compilation toolchain handles compilation and signing and installs directly to the device to run; code changes sync quickly to the phone, making debugging intuitive. When development is done, click to generate an installation package in one click, covering test distribution and App Store submission — no need for the whole Xcode IPA export routine. The entire pipeline closes the loop inside the IDE.&lt;/p&gt;

&lt;p&gt;Who is this path for? Independent developers doing cross-platform work on Windows with only an ordinary-spec machine; veterans whose Mac disk is perpetually in the red and who are tired of being jerked around by Xcode updates; and teams where newcomers have to wait for Xcode to finish downloading before they can start — an IDE with a built-in toolchain is ready to write the moment it's installed, no waiting for a dozen-plus GB environment. Conversely, for scenarios that depend heavily on Xcode-specific features (drawing UI in Interface Builder, performance analysis with Instruments), the two paths can coexist: use the lightweight toolchain for day-to-day development and open Xcode for specialized tasks when needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Boundaries You Can't Get Around
&lt;/h2&gt;

&lt;p&gt;A few things can't be avoided, and it's worth being clear about them: you still need to register an Apple Developer account, and App Store review must go through Apple; certificates and provisioning profiles still need to be configured, with signing handled by the corresponding tool — a distribution certificate plus an App Store provisioning profile to package and upload; the iOS system and device ecosystem belong to Apple, and the app ultimately runs on an iPhone. Xcode-free means freeing yourself from the development tool itself, not from the rules of iOS development.&lt;/p&gt;

&lt;p&gt;The essence of Xcode-free iOS development is giving compilation, signing, and installation a lighter entry point. Once the toolchain is complete and the workflow closes the loop, whether you use Xcode is just a matter of habit.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>software</category>
      <category>development</category>
      <category>flutter</category>
    </item>
    <item>
      <title>TraceEagle Packet Capture Rule Rewriting and Breakpoint Interception: Several Ways to Modify Requests and Mock Data</title>
      <dc:creator>ObjC_Coder</dc:creator>
      <pubDate>Wed, 23 Sep 2026 09:59:06 +0000</pubDate>
      <link>https://dev.to/objc_coder/traceeagle-packet-capture-rule-rewriting-and-breakpoint-interception-several-ways-to-modify-1b72</link>
      <guid>https://dev.to/objc_coder/traceeagle-packet-capture-rule-rewriting-and-breakpoint-interception-several-ways-to-modify-1b72</guid>
      <description>&lt;p&gt;Liquid syntax error: 'raw' tag was never closed&lt;/p&gt;
</description>
      <category>mobile</category>
      <category>software</category>
      <category>networking</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>appuploader-cli CI/CD Integration: Auto-Uploading IPA Guide</title>
      <dc:creator>ObjC_Coder</dc:creator>
      <pubDate>Mon, 21 Sep 2026 10:24:45 +0000</pubDate>
      <link>https://dev.to/objc_coder/appuploader-cli-cicd-integration-auto-uploading-ipa-guide-40j4</link>
      <guid>https://dev.to/objc_coder/appuploader-cli-cicd-integration-auto-uploading-ipa-guide-40j4</guid>
      <description>&lt;h1&gt;
  
  
  appuploader-cli CI/CD Integration: Auto-Uploading IPA
&lt;/h1&gt;

&lt;p&gt;When your build pipeline runs on a machine without a Mac (a Windows/Linux CI runner, say), having to manually click a button for the final upload step is rather awkward. &lt;code&gt;appuploader-cli&lt;/code&gt; turns that step into a single command: it is the command-line tool bundled with AppUploader, and uploading depends on neither Xcode nor macOS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Locate the Executable
&lt;/h2&gt;

&lt;p&gt;Once the main app is installed, the command-line tool is already in the installation directory:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;macOS: &lt;code&gt;AppUploader.app/Contents/Resources/appuploader-cli&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Windows: &lt;code&gt;appuploader-cli.exe&lt;/code&gt; in the same directory as the main &lt;code&gt;AppUploader.exe&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;cd into that directory to run it directly, or add the directory to your CI runner's &lt;code&gt;PATH&lt;/code&gt; environment variable so scripts can call it directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Upload the IPA/PKG
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;appuploader-cli upload &lt;span class="nt"&gt;-f&lt;/span&gt; &amp;lt;IPA/PKG path&amp;gt; &lt;span class="nt"&gt;-u&lt;/span&gt; &amp;lt;Apple ID&amp;gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &amp;lt;app-specific password&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--type&lt;/span&gt; ios]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-f, --file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Path to the IPA / PKG file to upload (required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-u, --username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apple ID email (required)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-p, --password&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;App-specific password, in the format &lt;code&gt;xxxx-xxxx-xxxx-xxxx&lt;/code&gt; (required; this is &lt;strong&gt;not&lt;/strong&gt; your login password)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--type&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Package type: &lt;code&gt;ios&lt;/code&gt; / &lt;code&gt;osx&lt;/code&gt; / &lt;code&gt;appletvos&lt;/code&gt; / &lt;code&gt;xros&lt;/code&gt;; defaults to &lt;code&gt;ios&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;appuploader-cli upload &lt;span class="nt"&gt;-f&lt;/span&gt; Payload.ipa &lt;span class="nt"&gt;-u&lt;/span&gt; dev@example.com &lt;span class="nt"&gt;-p&lt;/span&gt; abcd-efgh-ijkl-mnop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The upload prints progress and result logs in real time. On failure, the log includes the specific reason (duplicate package, version number conflict, signature mismatch, etc.), so you can pinpoint the problem directly in the CI log.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3 (Optional): Generate the App Store Resource Description File Locally
&lt;/h2&gt;

&lt;p&gt;If you only want to validate the package contents locally before uploading, or you need an &lt;code&gt;AppStoreInfo.plist&lt;/code&gt; for another upload tool, use the &lt;code&gt;info&lt;/code&gt; command. It performs local analysis only and never actually uploads:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;appuploader-cli info &lt;span class="nt"&gt;-u&lt;/span&gt; &amp;lt;Apple ID&amp;gt; &amp;lt;file path&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;-o&lt;/span&gt; output file] &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--format&lt;/span&gt; xml|binary]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;--deterministic&lt;/code&gt; flag pins fields that would otherwise change, such as the UUID, process ID, and timestamp, making it easy to compare output byte-for-byte in CI — handy for writing automated tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Wire It Into a CI/CD Pipeline
&lt;/h2&gt;

&lt;p&gt;Whether you use Jenkins, GitHub Actions, or any other CI system, the integration is the same: after the build produces the IPA, add a step that runs the &lt;code&gt;appuploader-cli upload&lt;/code&gt; command, and inject the credentials through the pipeline's secret / environment-variable mechanism instead of hardcoding them in the script. Because &lt;code&gt;appuploader-cli&lt;/code&gt; itself does not depend on macOS, your CI runner does not need to be a Mac either.&lt;/p&gt;

&lt;p&gt;When an upload fails, the command's exit code is non-zero, so the pipeline can simply use the exit code to decide whether this step succeeded — no log parsing required:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt;
appuploader-cli upload &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$WORKSPACE&lt;/span&gt;&lt;span class="s2"&gt;/build/App.ipa"&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$APPLE_ID&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$APP_SPECIFIC_PASSWORD&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Using an API Key Instead of a Personal Account
&lt;/h2&gt;

&lt;p&gt;Hardcoding someone's Apple ID and password into the pipeline means the automation breaks as soon as that person leaves or the password changes. For teams, an App Store Connect API key is the better fit — it belongs to the team and can be revoked independently:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;appuploader-cli upload &lt;span class="nt"&gt;-f&lt;/span&gt; build/App.ipa &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--api-key&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$ASC_KEY_ID&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--api-issuer&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$ASC_ISSUER_ID&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--private-key&lt;/span&gt; AuthKey.p8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Generate the key at &lt;a href="https://appstoreconnect.apple.com/access/api" rel="noopener noreferrer"&gt;https://appstoreconnect.apple.com/access/api&lt;/a&gt;; the &lt;code&gt;.p8&lt;/code&gt; private key can only be downloaded once. In CI, store the contents of the &lt;code&gt;.p8&lt;/code&gt; as a secret, write it to a temporary file when needed, and delete it afterward. These three parameters and &lt;code&gt;-u/-p&lt;/code&gt; are two different methods — you can only use one set.&lt;/p&gt;

&lt;p&gt;Note that the API key method supports only &lt;code&gt;.ipa&lt;/code&gt;, and the bundle ID must already have an app created in App Store Connect; for &lt;code&gt;.pkg&lt;/code&gt; on macOS, still use &lt;code&gt;-u/-p&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>software</category>
    </item>
    <item>
      <title>Lightweight iOS IDE kxapp: Complete Project Development and Debugging Without Xcode for iOS Development</title>
      <dc:creator>ObjC_Coder</dc:creator>
      <pubDate>Sun, 20 Sep 2026 12:53:05 +0000</pubDate>
      <link>https://dev.to/objc_coder/lightweight-ios-ide-kxapp-complete-project-development-and-debugging-without-xcode-for-ios-3p01</link>
      <guid>https://dev.to/objc_coder/lightweight-ios-ide-kxapp-complete-project-development-and-debugging-without-xcode-for-ios-3p01</guid>
      <description>&lt;p&gt;After doing iOS development for a while, the choice of IDE actually directly affects your daily coding rhythm. Whether the editor is smooth, whether project creation is concise, and whether device debugging is convenient—these details come up repeatedly in day-to-day development.&lt;/p&gt;

&lt;p&gt;A while ago, while working on an experimental utility app, I tried switching to a different development environment. Instead of continuing with my usual project configuration, I ran the project end to end in an iOS IDE called &lt;strong&gt;kxapp&lt;/strong&gt;. The project wasn't large, but it was just enough to verify how the IDE performs in project creation, code writing, device debugging, and app building.&lt;/p&gt;




&lt;h3&gt;
  
  
  Creating a New iOS Project
&lt;/h3&gt;

&lt;p&gt;After opening the kxapp IDE, you see a fairly clean startup screen. Click Create Project, and the IDE offers several different project types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Swift&lt;/li&gt;
&lt;li&gt;Objective-C&lt;/li&gt;
&lt;li&gt;Flutter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For this test, I chose a Swift project. After entering the project name and save path, the IDE generates the project structure.&lt;/p&gt;

&lt;p&gt;The project directory already contains basic code files and a resources directory. You can open the entry file and start writing code, with no additional configuration steps.&lt;/p&gt;

&lt;p&gt;During project creation, you can clearly feel that the IDE has already prepared the development environment. There are no issues with missing SDKs or build tools, and no prompts to download additional components.&lt;/p&gt;

&lt;h2&gt;
  
  
  For scenarios that require quickly starting a project, this approach is quite straightforward.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Writing Code in the IDE
&lt;/h3&gt;

&lt;p&gt;The kxapp IDE's editor is built on the VSCode architecture. For developers accustomed to VSCode, this interface structure will feel familiar.&lt;/p&gt;

&lt;p&gt;The left side is the project file list, the middle is the code editing area, and the bottom is the output panel.&lt;/p&gt;

&lt;p&gt;To test the development workflow, I wrote a simple page application:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The page contains a text label&lt;/li&gt;
&lt;li&gt;A button used to update the content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When the button is clicked, it calls a method that reads a local configuration file and then displays the content on the interface.&lt;/p&gt;

&lt;p&gt;While writing code, the editor provides code completion and syntax hints. For example, when you type a class name or method name, the IDE automatically offers a suggestion list.&lt;/p&gt;

&lt;p&gt;If there are syntax errors in the code, the editor displays hint information on the corresponding line.&lt;/p&gt;

&lt;p&gt;The VSCode extension system can also continue to be used, so AI code assistants or formatting tools can be installed directly.&lt;/p&gt;




&lt;h3&gt;
  
  
  Connecting an iPhone for Debugging
&lt;/h3&gt;

&lt;p&gt;After the project code is written, it needs to be run on a phone for verification.&lt;/p&gt;

&lt;p&gt;Connect the iPhone to the computer via a data cable, then build.&lt;/p&gt;

&lt;p&gt;The build process automatically performs the following steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compile the project source code&lt;/li&gt;
&lt;li&gt;Generate the application&lt;/li&gt;
&lt;li&gt;Install the app on the phone&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After a few seconds, the app icon appears on the phone's home screen. Tap the icon to launch the app.&lt;/p&gt;

&lt;p&gt;To confirm the logic was correct, I tapped the page button, and the text label successfully displayed the contents of the configuration file.&lt;/p&gt;

&lt;p&gt;Then I changed the button color in the code and clicked the run button again. The IDE recompiled the app and installed the new version, and the app interface on the phone updated accordingly.&lt;/p&gt;

&lt;h2&gt;
  
  
  This debugging process was fairly smooth, because after modifying the code you can quickly see the running result.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Built-in Compilation Tools in the IDE
&lt;/h3&gt;

&lt;p&gt;Throughout the entire development workflow, the IDE did not invoke an external development environment.&lt;/p&gt;

&lt;p&gt;The kxapp IDE has a built-in compilation tool suite. When the IDE is installed, these tools are already configured.&lt;/p&gt;

&lt;p&gt;When you click the run or build button, the IDE invokes the internal compilation tools to complete code compilation and app building.&lt;/p&gt;

&lt;p&gt;This approach means developers do not need to install Xcode separately. Compilation, running, and build operations can all be completed in the same IDE.&lt;/p&gt;

&lt;p&gt;For projects that need to frequently compile test builds, this environment configuration approach reduces a lot of preparation time.&lt;/p&gt;




&lt;h3&gt;
  
  
  Managing Different Types of Projects
&lt;/h3&gt;

&lt;p&gt;To test the IDE's project support capabilities, I created another Flutter project.&lt;/p&gt;

&lt;p&gt;After the Flutter project was created, I wrote a simple page, connected an iPhone, and clicked run; the IDE compiled and installed the app on the phone.&lt;/p&gt;

&lt;p&gt;Afterward, I created an Objective-C project for testing, and it also ran normally.&lt;/p&gt;

&lt;p&gt;In the same IDE, you can manage three different types of projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Native Swift projects&lt;/li&gt;
&lt;li&gt;Objective-C projects&lt;/li&gt;
&lt;li&gt;Flutter projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach is quite convenient when maintaining projects across multiple technology stacks.&lt;/p&gt;




&lt;h3&gt;
  
  
  Building an App Installer Package
&lt;/h3&gt;

&lt;p&gt;After app development is complete, you need to generate an installer package for testing or submission for review.&lt;/p&gt;

&lt;p&gt;In the kxapp IDE, you can generate an installation file through the build menu. The IDE compiles and generates the app installer package.&lt;/p&gt;

&lt;p&gt;Build logs are displayed in the output panel. If problems occur during compilation, you can also view detailed information here.&lt;/p&gt;

&lt;p&gt;The generated installation file can be used for test installation or submission to the app store.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>software</category>
      <category>development</category>
      <category>flutter</category>
    </item>
    <item>
      <title>How to Check Host Details While Capturing? Traceeagle ASN, TLS Ratings &amp; Web Stack</title>
      <dc:creator>ObjC_Coder</dc:creator>
      <pubDate>Wed, 16 Sep 2026 10:08:53 +0000</pubDate>
      <link>https://dev.to/objc_coder/how-to-check-host-details-while-capturing-traceeagle-asn-tls-ratings-web-stack-3bb7</link>
      <guid>https://dev.to/objc_coder/how-to-check-host-details-while-capturing-traceeagle-asn-tls-ratings-web-stack-3bb7</guid>
      <description>&lt;h1&gt;
  
  
  Host Details
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;This article shows you how to click open &lt;strong&gt;any host&lt;/strong&gt; during packet capture and see its full profile on a single screen: who it belongs to (ASN / organization / registration), where it is (geo map), how healthy its certificate is (TLS checkup + rating), and what technology it runs (web tech stack). It works whether you have an IP or a domain name — just click and look it up. Useful for troubleshooting, security auditing, and asset inventory.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. When to Use It
&lt;/h2&gt;

&lt;p&gt;It fits you if any of the following applies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You captured a flow and want to know &lt;strong&gt;who the peer actually is&lt;/strong&gt; — which data center / ISP it goes through, which organization it belongs to.&lt;/li&gt;
&lt;li&gt;You are doing a &lt;strong&gt;security audit&lt;/strong&gt;: you want to verify whether the certificate is trusted, whether it is about to expire, and whether the cipher suites are strong enough.&lt;/li&gt;
&lt;li&gt;You are doing &lt;strong&gt;asset inventory / traceback&lt;/strong&gt;: you want to follow a certificate and dig out every hostname and related subdomain it covers in one pass.&lt;/li&gt;
&lt;li&gt;You want to get the &lt;strong&gt;abuse contact&lt;/strong&gt; for a given IP so you can file a complaint.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short: in an ordinary capture tool, a flow stops at "one IP + one domain name." When you want to see more, open the host profile.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;TraceEagle is installed and running.&lt;/li&gt;
&lt;li&gt;You have a captured flow, or a known IP / domain / SNI.&lt;/li&gt;
&lt;li&gt;Lookup requires network access (ownership, geolocation, DNS, certificate checkup, and similar data are fetched in real time).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Step-by-Step
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Find a clickable host
&lt;/h3&gt;

&lt;p&gt;Anywhere the UI shows a captured &lt;strong&gt;hostname / IP / SNI&lt;/strong&gt;, you can click to open the profile. Common entry points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;destination IP and hostname&lt;/strong&gt; in HTTP flow details.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;destination IP and SNI&lt;/strong&gt; in TCP / TLS flow details.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Right-click&lt;/strong&gt; in the traffic list or packet view and choose &lt;strong&gt;"View Host Details"&lt;/strong&gt; from the menu.&lt;/li&gt;
&lt;li&gt;The peer host in the &lt;strong&gt;live connections panel&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Click to open the profile
&lt;/h3&gt;

&lt;p&gt;After you click a host, the profile panel &lt;strong&gt;auto-fills and starts querying&lt;/strong&gt;; the full results appear shortly. Below we walk through each section from top to bottom.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Look at ownership (whose IP is this)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The resolved &lt;strong&gt;IP&lt;/strong&gt; and reverse DNS (&lt;strong&gt;PTR&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ASN&lt;/strong&gt;: number + name + announced route prefix (CIDR).&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;organization&lt;/strong&gt;, registry, and country.&lt;/li&gt;
&lt;li&gt;The netblock (&lt;strong&gt;CIDR&lt;/strong&gt; + allocation type).&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;abuse contact&lt;/strong&gt; — use it directly to file a complaint.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Look at geolocation (where it is)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;City / region / country (including ISO code).&lt;/li&gt;
&lt;li&gt;The host's exact location is marked directly on a &lt;strong&gt;world map&lt;/strong&gt;, visible at a glance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Look at DNS records
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A / AAAA / MX&lt;/strong&gt; records, showing type / value / TTL.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Look at the TLS certificate checkup (is it secure)
&lt;/h3&gt;

&lt;p&gt;This is the section security audits consult most often:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;A / B / C / F security rating&lt;/strong&gt; (highlighted color code), so you can judge health at a glance.&lt;/li&gt;
&lt;li&gt;Whether the hostname matches, whether the certificate chain is trusted, and expiry status (expired / days remaining).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TLS version&lt;/strong&gt;, certificate issuer and subject (organization).&lt;/li&gt;
&lt;li&gt;Together with TLS auditing you can go further and see:

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;full certificate chain&lt;/strong&gt; (subject / issuer / validity period / days remaining / DNS names / is CA / key type / signature algorithm / self-signed).&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;list of supported protocols&lt;/strong&gt;, the &lt;strong&gt;cipher suites and their strength&lt;/strong&gt; (weak-suite / forward-secrecy flags), and the &lt;strong&gt;suite actually negotiated in this handshake&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Certificate Transparency (CT) logs&lt;/strong&gt; — list &lt;strong&gt;every hostname&lt;/strong&gt; covered by a certificate in one pass along with the total count, digging out related subdomains that never appeared in the traffic. This is where you dig deeper during traceback.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7. Look at the web tech stack (what it runs)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Page title, &lt;strong&gt;Server header&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Recognized servers / frameworks / CMSs / libraries, displayed as &lt;strong&gt;tags&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Verification: Confirm the Lookup Succeeded
&lt;/h2&gt;

&lt;p&gt;After opening a profile, check the following points to confirm the information is in place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;ownership section&lt;/strong&gt; shows ASN, organization, and country — not blank.&lt;/li&gt;
&lt;li&gt;A marker appears on the &lt;strong&gt;map&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;certificate checkup&lt;/strong&gt; gives an A / B / C / F rating color code.&lt;/li&gt;
&lt;li&gt;If the target is a website, the &lt;strong&gt;tech stack&lt;/strong&gt; section shows recognized tags.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a section does not appear, it is most likely that the target itself has no such information (for example, a bare IP has no domain name, and a non-HTTPS target has no certificate section) — it is not a failed lookup.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Tips / Troubleshooting
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symptom&lt;/th&gt;
&lt;th&gt;Likely cause&lt;/th&gt;
&lt;th&gt;What to do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Clicking does nothing / profile is blank&lt;/td&gt;
&lt;td&gt;You did not click a recognizable host, or there is no network access&lt;/td&gt;
&lt;td&gt;Confirm you clicked an IP / hostname / SNI; confirm the network is available and reopen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The certificate checkup section is empty&lt;/td&gt;
&lt;td&gt;This flow is not HTTPS, so there is no certificate to inspect&lt;/td&gt;
&lt;td&gt;This is normal; try a TLS flow instead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Only an IP, no domain / tech stack&lt;/td&gt;
&lt;td&gt;The peer really is a bare IP with no domain bound, or is not a web service&lt;/td&gt;
&lt;td&gt;Just check ownership, geolocation, and the certificate; the tech stack depends on there being a web page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You want to look up a related subdomain that never appeared in the traffic&lt;/td&gt;
&lt;td&gt;It is hidden in the certificate&lt;/td&gt;
&lt;td&gt;Expand the &lt;strong&gt;CT logs&lt;/strong&gt;; every hostname covered by the certificate is listed at once&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The rating is low (C / F)&lt;/td&gt;
&lt;td&gt;Something is wrong with the certificate or the encryption configuration&lt;/td&gt;
&lt;td&gt;Expand it to see whether it is expired, the hostname does not match, the chain is untrusted, or weak suites are in use&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  6. Next Steps
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How to read details, switch views, and decode after capturing: see Data Viewing and Decoding.&lt;/li&gt;
&lt;li&gt;To see which connections are currently active and open a host directly from a connection: see Connection Table.&lt;/li&gt;
&lt;li&gt;To mine subdomains from a certificate and go further with port and subdomain discovery: see Port Scanning and Subdomain Discovery.&lt;/li&gt;
&lt;li&gt;To verify connectivity, path, and latency for a host: see Network Diagnostics.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mobile</category>
      <category>software</category>
      <category>networking</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Incomplete Xcode Installation in iOS Development: Repair Steps and Alternative Toolchain Setup</title>
      <dc:creator>ObjC_Coder</dc:creator>
      <pubDate>Tue, 15 Sep 2026 10:05:59 +0000</pubDate>
      <link>https://dev.to/objc_coder/incomplete-xcode-installation-in-ios-development-repair-steps-and-alternative-toolchain-setup-4g1m</link>
      <guid>https://dev.to/objc_coder/incomplete-xcode-installation-in-ios-development-repair-steps-and-alternative-toolchain-setup-4g1m</guid>
      <description>&lt;p&gt;Two weeks ago, a colleague reinstalled Xcode, downloaded over a dozen GB, opened it and found the simulator list empty; during compilation it reported a missing iOS SDK, and Command Line Tools also showed as not installed. After struggling for a day, he found out that the network had dropped during the download, causing incomplete components. Running into incomplete Xcode installation is actually quite common. Here are several repair methods, and I'll also mention an alternative for doing iOS development without Xcode. This solution for incomplete Xcode installation in iOS development covers two directions: one is repairing the existing Xcode, and the other is switching to a toolchain that does not require Xcode.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Fixes for Xcode
&lt;/h2&gt;

&lt;p&gt;The most common signs of an incomplete Xcode installation are that the simulator won't open after installation, or compilation reports missing header files or SDKs. The cause is usually an unstable network during download, resulting in some components not being fully downloaded. When this happens, don't rush to reinstall; try the following commands and they may fix it. If you understand the solution for incomplete Xcode installation in iOS development, these troubleshooting steps can save a lot of reinstall time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Missing Command Line Tools:&lt;/strong&gt; Run &lt;code&gt;xcode-select --install&lt;/code&gt; in Terminal, and an installation window will pop up to install the command-line tools separately. After installing Xcode, this is sometimes not configured automatically, so you need to manually run the install command.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Initialize and Complete Components:&lt;/strong&gt; Run &lt;code&gt;xcodebuild -runFirstLaunch&lt;/code&gt;, and Xcode will check for and complete missing components. If you encounter compilation errors, run this command first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Missing Simulators:&lt;/strong&gt; Open Xcode → Settings → Platforms, and click to download the required iOS version. If disk space is limited, just install the version needed for current development; you don't need to download them all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clean Reinstall:&lt;/strong&gt; If none of the above works, delete &lt;code&gt;/Applications/Xcode.app&lt;/code&gt; and download it again. Be sure to back up DerivedData and custom configurations in your projects first. Ensure a stable network during download, and avoid downloading during peak hours. After installation, run &lt;code&gt;xcodebuild -runFirstLaunch&lt;/code&gt; again to ensure components are complete.&lt;/p&gt;

&lt;h2&gt;
  
  
  Alternative: KXApp Xcode-Free Development
&lt;/h2&gt;

&lt;p&gt;If you repeatedly encounter incomplete Xcode installation, or your disk space is too tight to fit a dozen-plus GB Xcode, consider &lt;strong&gt;KXApp&lt;/strong&gt;, an iOS development IDE that does not require installing Xcode. For developers often troubled by incomplete Xcode installation in iOS development, this is a once-and-for-all solution.&lt;/p&gt;

&lt;p&gt;KXApp has a complete built-in compilation toolchain and does not require installing the huge Xcode and Command Line Tools. Its installer is much smaller than Xcode, and there is no problem of missing components. When creating a project, choose Swift, Objective-C, or Flutter, and generate the project structure with one click. The coding interface is based on VS Code, with intelligent completion and AI code assistant available by default.&lt;/p&gt;

&lt;p&gt;Real-device debugging saves many steps—after connecting the iPhone to the computer, click Build and Install, and the tool automatically compiles, signs, and installs to the phone. You don't need to configure certificates and provisioning profiles yourself. After the project is complete, it also supports one-click building of an IPA package for test distribution or submission to the App Store. From project creation to packaging and release, you don't need to open Xcode.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Choose
&lt;/h2&gt;

&lt;p&gt;If your team mainly uses Macs for native development, Xcode is still a necessary development tool; when the installation is incomplete, just troubleshoot using the repair steps above. If your development machine is Windows, your disk is insufficient, or you are repeatedly troubled by incomplete Xcode installation, KXApp is a more worry-free path. Both paths have their strengths; choose according to your actual development environment and project type.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>software</category>
      <category>development</category>
      <category>flutter</category>
    </item>
    <item>
      <title>Certificate Configuration, Management, and Installation for HTTPS Proxy Capture with TraceEagle</title>
      <dc:creator>ObjC_Coder</dc:creator>
      <pubDate>Mon, 14 Sep 2026 10:35:49 +0000</pubDate>
      <link>https://dev.to/objc_coder/certificate-configuration-management-and-installation-for-https-proxy-capture-with-traceeagle-52d7</link>
      <guid>https://dev.to/objc_coder/certificate-configuration-management-and-installation-for-https-proxy-capture-with-traceeagle-52d7</guid>
      <description>&lt;h1&gt;
  
  
  Certificate Management and Installation
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;To capture HTTPS with a proxy, the first step is to make devices and software &lt;strong&gt;trust this tool's root certificate&lt;/strong&gt;—if not trusted, TLS errors occur, and you can only see garbled ciphertext. This article walks you through installing the certificate step by step: one-click installation on the local machine, QR code installation on mobile, and how to use &lt;strong&gt;Full Coverage&lt;/strong&gt; to supplement programs that 'still don't trust it even after the system certificate is installed' (Java / Python / curl, etc.). Install once, and all subsequent sessions can be decrypted.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  I. When to Use
&lt;/h2&gt;

&lt;p&gt;Whenever you use &lt;strong&gt;proxy capture for HTTPS&lt;/strong&gt; and want to see plaintext, you need to install the certificate first. Typical scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Before using proxy capture for HTTPS for the first time&lt;/strong&gt;: The local machine has not yet trusted the root certificate; install it once first. See Proxy Capture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile capture&lt;/strong&gt;: The phone must separately trust the root certificate once; QR code installation is the fastest. See iOS Capture, Android Capture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Java / Python / curl / wget, etc. cannot decrypt&lt;/strong&gt;: These programs only recognize their own certificate list. Even after the system certificate is installed, they still cannot decrypt—use &lt;strong&gt;Certificate Full Coverage&lt;/strong&gt; to install the certificate directly into them.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;If you use &lt;strong&gt;proxy-free&lt;/strong&gt; capture methods such as Specified Program Capture or Application-Layer Capture, you usually &lt;strong&gt;do not need to install certificates&lt;/strong&gt;, and can skip this article.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  II. Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;TraceEagle has been installed and started (for the first startup, just agree to the system permissions).&lt;/li&gt;
&lt;li&gt;Open the &lt;strong&gt;Certificate Management&lt;/strong&gt; page (all certificate-related operations are here: local trust status, download, mobile QR code, full coverage, client certificates).&lt;/li&gt;
&lt;li&gt;When installing the certificate by scanning the QR code on your phone, &lt;strong&gt;the phone and computer must be on the same LAN&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  III. Step-by-Step Operations
&lt;/h2&gt;

&lt;p&gt;The scenarios below are numbered; just follow the one you need. &lt;strong&gt;A is the first step everyone must do.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  A. Local One-Click: Install and Trust on the Local Machine
&lt;/h3&gt;

&lt;p&gt;To capture local traffic, first make the local machine trust the root certificate.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Certificate Management&lt;/strong&gt; and check &lt;strong&gt;Local Trust Status&lt;/strong&gt;—if it shows 'Not Trusted,' continue to the next step; if it already shows 'Trusted,' you can skip.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;'Install to Local Machine and Trust'&lt;/strong&gt;, and confirm according to system prompts (you may need to enter your login password once).&lt;/li&gt;
&lt;li&gt;When the status changes to &lt;strong&gt;'Trusted'&lt;/strong&gt;, it is complete. &lt;strong&gt;Installing once is enough&lt;/strong&gt;; all subsequent sessions can decrypt HTTPS.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;If you need to distribute it manually or use it with other tools, you can use &lt;strong&gt;'Download Root Certificate'&lt;/strong&gt; on the same page; multiple formats are provided, use as needed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  B. Mobile QR Code Installation
&lt;/h3&gt;

&lt;p&gt;The phone must separately trust the root certificate once. The root certificate is globally universal; install it &lt;strong&gt;only once&lt;/strong&gt; per device.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;On the Certificate Management page, find &lt;strong&gt;Mobile QR Code Installation&lt;/strong&gt;. The tool generates a &lt;strong&gt;QR code&lt;/strong&gt; for each available address on the LAN.&lt;/li&gt;
&lt;li&gt;Use your &lt;strong&gt;phone camera&lt;/strong&gt; to scan the code, open the installation page, and install it according to the corresponding system below:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;iOS&lt;/strong&gt;: First follow the page prompt to &lt;strong&gt;download the profile&lt;/strong&gt;, then go to &lt;code&gt;Settings → General → VPN &amp;amp; Device Management&lt;/code&gt; to &lt;strong&gt;install the profile&lt;/strong&gt;; after installation, also go to &lt;code&gt;Settings → General → About → Certificate Trust Settings&lt;/code&gt; to &lt;strong&gt;enable full trust for this root certificate&lt;/strong&gt; (if you skip this step, iOS still cannot decrypt). See iOS Capture for details.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Android (regular device)&lt;/strong&gt;: Open the installation page and install the root certificate as a &lt;strong&gt;user certificate / CA certificate&lt;/strong&gt;. Note that some apps only recognize system certificates and do not recognize user certificates; if you encounter decryption failures, see Android Capture].&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Android (rooted device)&lt;/strong&gt;: You can directly install the root certificate into the &lt;strong&gt;system certificate store&lt;/strong&gt;, eliminating manual import and providing the best compatibility.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;After installation, return to the App and generate an HTTPS request to confirm decryption works.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  C. Certificate Full Coverage: Decrypt Even Programs That 'Do Not Recognize System Certificates'
&lt;/h3&gt;

&lt;p&gt;Some programs &lt;strong&gt;still cannot decrypt even after the system certificate is installed&lt;/strong&gt;—they only recognize their own certificate list. Full Coverage can &lt;strong&gt;install the root certificate directly into these programs&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;On the Certificate Management page, open &lt;strong&gt;Certificate Full Coverage&lt;/strong&gt;. The tool will &lt;strong&gt;automatically discover&lt;/strong&gt; such software on the local machine (including running software), list them one by one, and mark them as &lt;strong&gt;Installed / Not Installed&lt;/strong&gt;. Common ones include:

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java programs&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python programs&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Command-line and scripting tools such as curl / wget / Ruby / PHP / git&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Software such as Firefox / Thunderbird&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;For items &lt;strong&gt;not installed&lt;/strong&gt;, click &lt;strong&gt;Install&lt;/strong&gt; to install the root certificate; to revoke, click the corresponding Remove.&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;missed&lt;/strong&gt; ones that automatic discovery did not find (installed in non-standard paths, or not recognized by the tool), use &lt;strong&gt;manual path entry&lt;/strong&gt; to add them, then install.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;This is exactly the long-standing pain point of ordinary capture tools: the certificate is installed, but the program still cannot decrypt. Full Coverage specifically solves this.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  D. Client Certificate Import
&lt;/h3&gt;

&lt;p&gt;If the target site requires a &lt;strong&gt;client certificate&lt;/strong&gt; (mutual authentication), and you happen to have one:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;Client / Domain Certificate&lt;/strong&gt; page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Import&lt;/strong&gt; your client certificate (enter the password as well, if any).&lt;/li&gt;
&lt;li&gt;After that, when capturing these sites, the handshake and decryption will work normally.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  IV. Verification: Confirm Installation and Decryption
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local machine&lt;/strong&gt;: Return to the Certificate Management page; the local trust status shows &lt;strong&gt;'Trusted'&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decryption works&lt;/strong&gt;: Generate an HTTPS request through the proxy, open the details in the request list, and &lt;strong&gt;TLS shows 'Decrypted'&lt;/strong&gt;, with the response being readable plaintext (such as JSON) rather than garbled text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full Coverage / Mobile&lt;/strong&gt;: HTTPS requests from the corresponding program or mobile App can also be seen in plaintext.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For how to read details, switch views, and decode, see Data Viewing and Decoding.&lt;/p&gt;

&lt;h2&gt;
  
  
  V. Installed but Still Cannot Decrypt? Check Item by Item
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symptom&lt;/th&gt;
&lt;th&gt;Likely Cause&lt;/th&gt;
&lt;th&gt;What to Do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;The local machine has a system certificate installed, but a program still shows only ciphertext&lt;/td&gt;
&lt;td&gt;This program only recognizes its own certificate list (typically Java / Python / curl / Firefox)&lt;/td&gt;
&lt;td&gt;Use &lt;strong&gt;C. Certificate Full Coverage&lt;/strong&gt; to install the certificate into it; for ones not listed by automatic discovery, use &lt;strong&gt;manual path entry&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The phone has a certificate installed, but the App still cannot capture plaintext&lt;/td&gt;
&lt;td&gt;The App only recognizes system certificates, does not recognize user certificates, or has &lt;strong&gt;certificate pinning&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;On Android, use a rooted device to install it into the system store; if it still fails, it is likely pinning—see Bypassing Certificate Pinning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iOS still reports an error after the profile is installed&lt;/td&gt;
&lt;td&gt;You missed the &lt;strong&gt;Full Trust&lt;/strong&gt; switch in 'Certificate Trust Settings'&lt;/td&gt;
&lt;td&gt;Go to &lt;code&gt;Settings → General → About → Certificate Trust Settings&lt;/code&gt; and enable trust for this root certificate—see iOS Capture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A program cannot be found in Full Coverage&lt;/td&gt;
&lt;td&gt;It is installed in a non-standard path, so automatic discovery did not cover it&lt;/td&gt;
&lt;td&gt;On the Full Coverage page, use &lt;strong&gt;manual path entry&lt;/strong&gt; to point to it, then install&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;It is installed but still cannot decrypt, and what is captured is its proprietary encryption&lt;/td&gt;
&lt;td&gt;The target does not use standard TLS, so certificates cannot solve it&lt;/td&gt;
&lt;td&gt;Switch to Application-Layer Capture to obtain plaintext from inside the program&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Once the certificate is installed, you can start capturing: return to Proxy Capture.&lt;/li&gt;
&lt;li&gt;Full mobile workflow: see iOS Capture, Android Capture.&lt;/li&gt;
&lt;li&gt;The certificate is installed, but the App uses &lt;strong&gt;certificate pinning&lt;/strong&gt; and cannot be captured: see Bypassing Certificate Pinning.&lt;/li&gt;
&lt;li&gt;How to read and decode after capturing: see Data Viewing and Decoding.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mobile</category>
      <category>software</category>
      <category>networking</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>iOS Development IDEs: Xcode and KXApp Lightweight Alternatives</title>
      <dc:creator>ObjC_Coder</dc:creator>
      <pubDate>Fri, 11 Sep 2026 10:07:51 +0000</pubDate>
      <link>https://dev.to/objc_coder/ios-development-ides-xcode-and-kxapp-lightweight-alternatives-4jio</link>
      <guid>https://dev.to/objc_coder/ios-development-ides-xcode-and-kxapp-lightweight-alternatives-4jio</guid>
      <description>&lt;p&gt;I used to think Xcode was the only path for iOS development — until a colleague on the Flutter team complained about how heavy Xcode is: a single install eats up tens of gigabytes, and most of its features go unused when you're just writing Flutter code day to day. That's when I realized how much IDE needs vary across project types and development scenarios. Here's a comparison of the two approaches.&lt;/p&gt;

&lt;h2&gt;
  
  
  Xcode: Full-Featured, but a High Barrier to Entry
&lt;/h2&gt;

&lt;p&gt;Xcode is Apple's official iOS IDE, covering the entire workflow: coding, debugging, performance analysis, packaging and App Store submission, and certificate management. It's undeniably powerful, but it comes with several clear pain points:&lt;/p&gt;

&lt;p&gt;The installer is over ten gigabytes, and every major version update means re-downloading the full package from the App Store — painful when you're short on disk space. Sometimes you just want to change a few lines of code and still have to wait for it to finish loading. Configuring certificates and provisioning profiles before real-device debugging is not beginner-friendly: just understanding Provisioning Profiles and code signing takes a lot of time, and going from registering an account to running your first app on a real device can take a day or two. In cross-platform projects (Flutter, uni-app), most Xcode features go unused while writing Dart, yet the disk footprint and IDE load time are no smaller.&lt;/p&gt;

&lt;p&gt;For teams doing pure native Swift or ObjC development on Macs, Xcode is the natural choice — its integration of performance and debugging tools genuinely has no replacement today. But for cross-platform work, or for beginners still learning Swift, Xcode's learning curve is a bit steep.&lt;/p&gt;

&lt;h2&gt;
  
  
  KXApp: A Lightweight Path Focused on Coding and Debugging
&lt;/h2&gt;

&lt;p&gt;KXApp positions itself as a lightweight iOS IDE: no need to install Xcode or the Command Line Tools, since it ships with a complete compilation toolchain. When creating a project, pick Swift, Objective-C, or Flutter, and it generates a standardized project structure in one click — no manual template setup. The VS Code–based coding interface feels familiar and smooth, with intelligent completion and an AI coding assistant available out of the box.&lt;/p&gt;

&lt;p&gt;Real-device debugging is where KXApp shines: connect your iPhone to the computer, click Build and Install, and the tool compiles, signs, and installs the app on the phone directly. No need to configure certificates and provisioning profiles yourself, and no need to open Xcode's Organizer to set up signing. For newcomers to iOS development, or for people who mainly write code on Windows, this workflow saves a lot of detours.&lt;/p&gt;

&lt;p&gt;It also supports Flutter projects, so cross-platform developers can manage both the native layer and the Flutter layer in a single iOS IDE without opening Xcode separately just to debug the iOS side. Build and packaging are built in too, so no extra tools are needed. When the project is done, build an IPA in one click for test distribution or App Store submission.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which One Should You Choose?
&lt;/h2&gt;

&lt;p&gt;No single iOS IDE does everything. Xcode suits deep native development, scenarios requiring Instruments tuning, or team workflows that rely on Apple ecosystem services such as Xcode Cloud. KXApp suits getting started quickly, lightweight development, cross-platform projects, or situations where you don't want to burn energy on toolchain configuration.&lt;/p&gt;

&lt;p&gt;Keeping both around is no conflict — just switch based on project type. Open Xcode when writing native Swift code or doing in-depth performance analysis, using Instruments to pinpoint problems. Use KXApp when maintaining Flutter projects, quickly validating an idea, or writing small day-to-day tools, since startup and compilation are faster. Playing to each one's strengths is far more flexible — and far more practical — than fixating on a single iOS IDE.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>software</category>
      <category>development</category>
      <category>flutter</category>
    </item>
    <item>
      <title>App Store IPA Upload Automation: .p8 Key Auth and CI/CD Integration in Practice</title>
      <dc:creator>ObjC_Coder</dc:creator>
      <pubDate>Thu, 10 Sep 2026 10:11:34 +0000</pubDate>
      <link>https://dev.to/objc_coder/app-store-ipa-upload-automation-p8-key-auth-and-cicd-integration-in-practice-2e52</link>
      <guid>https://dev.to/objc_coder/app-store-ipa-upload-automation-p8-key-auth-and-cicd-integration-in-practice-2e52</guid>
      <description>&lt;p&gt;On release day, the most annoying step is the manual upload: the build machine produces the package, but a human still has to open the upload tool, pick the file, enter credentials, and watch the progress bar—then do it all over again if the network hiccups. Worse, these operations live on individual laptops, so handing off to someone else means walking them through the process again. To wire "upload the IPA" into CI/CD, the first thing to solve is actually authentication—letting a machine in the pipeline submit the build to App Store Connect as you, without scattering your Apple ID password everywhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two types of credentials for CI
&lt;/h2&gt;

&lt;p&gt;Credentials for automation fall into two categories. One is an app-specific password, generated in the Apple account backend in the xxxx-xxxx-xxxx-xxxx format, tied to an Apple ID, and suited to being typed manually into interactive tools. The other is an App Store Connect API key, which yields a .p8 private key plus two identifiers, a Key ID and an Issuer ID; requests are signed with JWT. It doesn't consume password quota, can be revoked independently, and its permissions can be scoped. In CI scenarios the .p8 route is handier: it doesn't trigger two-factor authentication, needs no human at a terminal, and if the key leaks only it is affected—rotating it doesn't disrupt other automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The official route on Mac: altool and fastlane
&lt;/h2&gt;

&lt;p&gt;Apple's official route is feeding the .p8 to altool. The altool bundled with Xcode supports the --apiKey and --apiIssuer parameters, so one command uploads the build:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;xcrun altool &lt;span class="nt"&gt;--upload-app&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; Payload.ipa &lt;span class="nt"&gt;--apiKey&lt;/span&gt; XXXXXXXXXX &lt;span class="nt"&gt;--apiIssuer&lt;/span&gt; YYYYYYYYYY &lt;span class="nt"&gt;--type&lt;/span&gt; ios
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;fastlane's pilot lane consumes the same credentials, injected via the three environment variables APP_STORE_CONNECT_API_KEY_KEY_ID, APP_STORE_CONNECT_API_KEY_ISSUER_ID, and APP_STORE_CONNECT_API_KEY, so CI never has to commit the key to the repository. The cost of this approach is the environment: altool depends on the Xcode toolchain, fastlane needs Ruby dependencies installed, and it basically won't run on Windows or bare Linux build machines—the key itself, ironically, has no platform restrictions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generating the .p8: the Appuploader approach
&lt;/h2&gt;

&lt;p&gt;If your build machine isn't a Mac, or you don't want to maintain another Xcode environment in the pipeline, take a look at the Appuploader combination. Its account overview page lets you generate an App Store Connect API key directly: enter a key name and submit, and it creates a key with ADMIN privileges that can access every app under the account. The private key (.p8) is shown only this once, and the page prompts you to copy it immediately or download it as a .json key file and store it safely—import that .json under "Add Account → API Key → Key File" on the login page, and you can sign in to the same App Store Connect account without a password or a second verification step. The key works across devices, anything derived from it dies the moment it's revoked, and revoking it leaves things clean.&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting the upload step on the command line
&lt;/h2&gt;

&lt;p&gt;The IPA upload step runs on the command line. The runtime folder in the Appuploader install directory ships appuploader_cli, invoked as a subcommand:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;appuploader_cli upload &lt;span class="nt"&gt;-f&lt;/span&gt; Payload.ipa &lt;span class="nt"&gt;-u&lt;/span&gt; dev@example.com &lt;span class="nt"&gt;-p&lt;/span&gt; abcd-efgh-ijkl-mnop &lt;span class="nt"&gt;--type&lt;/span&gt; ios
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-f specifies the IPA path, -u is the Apple ID, -p is the app-specific password, and --type defaults to ios. It does exactly what the "Submit to App Store" button in the GUI does, but it's fully scriptable and runs on Windows, Linux, and Mac; the whole chain involves no Xcode and carries no Mac device information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wiring it into GitHub Actions
&lt;/h2&gt;

&lt;p&gt;Hooking it into CI is just a few ordinary pipeline steps: once the build artifact is out, download the Linux build of Appuploader in Actions, add the runtime directory to PATH after extraction, put the account and app-specific password in secrets, and one run step completes the upload. You can also run appuploader_cli's info command before uploading to analyze the IPA locally and generate AppStoreInfo.plist, validating things like signing and version up front so problems surface early instead of waiting for Apple to reject the build and digging through logs afterward—when an upload fails, the CLI's logs likewise spell out the reason, making version conflicts and signing mismatches obvious at a glance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing a route by environment
&lt;/h2&gt;

&lt;p&gt;Pick between the two routes based on the build environment: on a Mac-based CI, altool with a .p8 is convenient, the ecosystem is mature, and there are plenty of community write-ups on pitfalls; on a Linux or Windows build machine, the Appuploader command line is the most direct way to get IPA uploads into the pipeline. The .p8 key solves the identity problem on the account side—login, certificate management, and package upload all share one identity. Once uploads are pulled out of manual operations, the only thing left to watch on release day is the review status, saving you that half hour per release and the back-and-forth of a handoff.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>software</category>
    </item>
    <item>
      <title>Can VS Code be used for iOS development? Does it support code completion and real-device debugging?</title>
      <dc:creator>ObjC_Coder</dc:creator>
      <pubDate>Wed, 09 Sep 2026 09:58:34 +0000</pubDate>
      <link>https://dev.to/objc_coder/can-vs-code-be-used-for-ios-development-does-it-support-code-completion-and-real-device-debugging-2e28</link>
      <guid>https://dev.to/objc_coder/can-vs-code-be-used-for-ios-development-does-it-support-code-completion-and-real-device-debugging-2e28</guid>
      <description>&lt;p&gt;Many iOS developers have had this thought: Xcode is too heavy—slow to start, slow to index—so can we use VS Code to write iOS code? VS Code does offer better startup speed, a richer plugin ecosystem, and a more polished editor experience than Xcode, but iOS development isn't just about writing code; the compilation and debugging stages inevitably depend on underlying toolchains. &lt;/p&gt;

&lt;h2&gt;
  
  
  What Can VS Code + Swift Plugins Do?
&lt;/h2&gt;

&lt;p&gt;After installing the Swift plugin and SourceKit-LSP server in VS Code, you can handle basic code editing: syntax highlighting, code completion, jump to definition, and error hints are all supported. Combined with Git plugins for version control, Prettier for formatting, and GitHub Copilot for AI-assisted completion, the editor experience can actually surpass Xcode. &lt;/p&gt;

&lt;p&gt;VS Code provides solid support for Swift Package Manager projects with high native integration. After opening Package.swift, you can browse and edit code normally. For traditional xcodeproj projects, support relies on the extension capabilities of apple/sourcekit-lsp and isn't as smooth as working directly with SPM projects. &lt;/p&gt;

&lt;h2&gt;
  
  
  What VS Code Can't Do
&lt;/h2&gt;

&lt;p&gt;Real-device debugging is VS Code's weak point. Xcode bundles compilation, signing, installation to a physical device, and breakpoint debugging into a single workflow. VS Code has no built-in iOS debugger support; to debug you must return to Xcode or compile the app via the command line with xcodebuild, then attach LLDB to the process. &lt;/p&gt;

&lt;p&gt;VS Code also cannot do visual editing for Interface Builder or Storyboards; you can only edit XML source files in text mode. If your project heavily relies on XIBs and Storyboards, VS Code can only act as a text editor for those XML files. &lt;/p&gt;

&lt;p&gt;Instruments' deep performance analysis tools are also beyond VS Code's reach. Tools like Time Profiler, Allocations, and Energy Log require the Xcode environment—VS Code plugins cannot replace them. &lt;/p&gt;

&lt;h2&gt;
  
  
  How KXApp Differs
&lt;/h2&gt;

&lt;p&gt;KXApp is built on VS Code and preserves all editor-level shortcuts, interface layout, and the plugin ecosystem of VS Code. The key difference from a typical VS Code + Swift plugin setup is that KXApp includes the iOS compilation toolchain internally. &lt;/p&gt;

&lt;p&gt;This means after writing code in KXApp, you don't need to switch to the terminal to run xcodebuild or open Xcode to compile. The built-in swiftc, clang, and ld toolchain can compile source code directly into an IPA file. Real-device debugging is also natively supported: connect your iPhone via USB, click Build and Run, and the tool automatically handles signing and deployment. &lt;/p&gt;

&lt;p&gt;KXApp also provides native Dart-to-iOS compilation support for Flutter projects, eliminating the need to configure the Xcode toolchain separately within the Flutter environment. &lt;/p&gt;

&lt;p&gt;VS Code isn't incapable of writing iOS code—its editor experience is genuinely good, even surpassing Xcode in some respects. However, the typical VS Code + Swift plugin approach requires external tools for compilation and debugging, leaving the development workflow disjointed. KXApp fills the compilation and debugging gap on top of VS Code, closing the entire loop within the same tool. &lt;/p&gt;

&lt;h2&gt;
  
  
  When to Use Which
&lt;/h2&gt;

&lt;p&gt;For everyday coding and code reviews, use VS Code or KXApp for fast startup, rich plugins, and a smooth editing experience. When you need visual UI editing, Instruments performance analysis, or App Store submission, switch back to Xcode. Combining both tools yields higher efficiency than relying solely on Xcode.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>software</category>
      <category>development</category>
      <category>flutter</category>
    </item>
    <item>
      <title>TraceEagle NIC Packet Capture: Without Proxy or Certificate</title>
      <dc:creator>ObjC_Coder</dc:creator>
      <pubDate>Wed, 09 Sep 2026 09:30:12 +0000</pubDate>
      <link>https://dev.to/objc_coder/traceeagle-nic-packet-capture-without-proxy-or-certificate-19nh</link>
      <guid>https://dev.to/objc_coder/traceeagle-nic-packet-capture-without-proxy-or-certificate-19nh</guid>
      <description>&lt;h1&gt;
  
  
  NIC Packet Capture
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;This guide teaches you to use &lt;strong&gt;NIC capture&lt;/strong&gt; to grab &lt;strong&gt;everything that flows through this machine's NIC&lt;/strong&gt;: DNS, QUIC, games, IoT, various proprietary protocols — anything passing through the NIC is right before your eyes. &lt;strong&gt;No proxy configuration, no certificate installation&lt;/strong&gt; — pick a NIC and start capturing. HTTPS no longer stays as ciphertext either: common apps are decrypted to plaintext as soon as captured, and for the rest, just click &lt;strong&gt;Decrypt this app&lt;/strong&gt; to read them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. When to Use This Approach
&lt;/h2&gt;

&lt;p&gt;This suits you if any of the following applies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Want to see &lt;strong&gt;non-HTTP traffic&lt;/strong&gt;: DNS, QUIC, ICMP, ARP, or any TCP/UDP — what proxies can't capture is all captured here.&lt;/li&gt;
&lt;li&gt;Want to &lt;strong&gt;understand a program's full network behavior&lt;/strong&gt;: which addresses it connects to, which protocols it uses, and whether it has any "silent" connections.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't want to change the system proxy or install certificates&lt;/strong&gt; — you want zero-intrusion direct capture.&lt;/li&gt;
&lt;li&gt;You have &lt;strong&gt;proprietary / self-developed protocols&lt;/strong&gt; and want to capture raw streams first, then reverse-engineer them later.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you just want to debug an HTTP API and rewrite or replay requests, &lt;strong&gt;Proxy Capture&lt;/strong&gt; is more precise. If you only need to capture a program that can be launched from a command line, &lt;strong&gt;Process Capture&lt;/strong&gt; is more convenient.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;TraceEagle is installed and started (simply agree to system permissions on first launch).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No&lt;/strong&gt; need to change the system proxy or &lt;strong&gt;install certificates&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Only when you want to read a program's HTTPS plaintext do you need to click &lt;strong&gt;Decrypt this app&lt;/strong&gt; on it during capture (see Section 4). For common programs, even that step is unnecessary.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Start Capturing: Capture Your First Packet
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a new session and choose &lt;strong&gt;"Local NIC Capture"&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Select a NIC&lt;/strong&gt;: The tool automatically lists all local NICs and preselects the currently active one. Choose whichever you want to capture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;(Optional) &lt;strong&gt;Set a capture filter before starting&lt;/strong&gt;: If you only care about certain traffic, enter a capture filter rule or simply apply a built-in preset (&lt;strong&gt;TLS / HTTP / QUIC / DNS / TCP / UDP / ICMP / ARP / SSH&lt;/strong&gt;, etc.) with one click.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Capture filters can only be set &lt;strong&gt;before&lt;/strong&gt; capture and cannot be changed afterward — they determine what is captured at the NIC layer. To filter already-captured data, use the &lt;strong&gt;Display Filter&lt;/strong&gt; in the packet view (see Section 4).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Start&lt;/strong&gt;. Packets flowing through the NIC appear in the list in real time.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flsm56d5odq0okqgistoz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flsm56d5odq0okqgistoz.png" alt="New Session" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make the target program produce network requests (open a webpage, initiate a connection), and traffic will stream into the list in real time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  4. View Plaintext: Turn Ciphertext into Plaintext
&lt;/h2&gt;

&lt;p&gt;Traffic captured on the NIC is &lt;strong&gt;ciphertext&lt;/strong&gt; by default (captured as-is). To see HTTPS plaintext for a program, use these three levels, each as a fallback:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Auto-decryption&lt;/strong&gt;: Common programs such as browsers and Electron apps &lt;strong&gt;usually appear as plaintext right after capture&lt;/strong&gt;, with no extra action needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manual "Decrypt this app"&lt;/strong&gt;: For programs that cannot be auto-decrypted, click &lt;strong&gt;Decrypt this app&lt;/strong&gt; and select it in the list to reveal its encrypted traffic. Multiple programs can be decrypted simultaneously.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two enhancement switches&lt;/strong&gt; (use only if decryption is still incomplete):

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Restart the program&lt;/strong&gt;: Restart the target from scratch so even the encrypted traffic from its &lt;strong&gt;early startup phase&lt;/strong&gt; is decrypted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Handle child processes in one click&lt;/strong&gt;: Some programs send/receive traffic through child processes; enabling this &lt;strong&gt;processes child processes as well&lt;/strong&gt;, avoiding gaps.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;During capture, two views help you make sense of the packets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Packet view&lt;/strong&gt;: Inspect individual packets like in professional capture tools. Selecting a frame shows its frame info, raw bytes, and the protocol hierarchy tree expanded layer by layer. The search box supports &lt;strong&gt;Wireshark-style display filters&lt;/strong&gt; (e.g., &lt;code&gt;tcp.port==443&lt;/code&gt;, &lt;code&gt;tls.handshake&lt;/code&gt;, &lt;code&gt;dns&lt;/code&gt;), validating syntax as you type, allowing precise navigation across the full captured data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connection view&lt;/strong&gt;: Reassembles scattered packets into logical connections. Use &lt;strong&gt;Follow Stream&lt;/strong&gt; to see the complete sent/received data of a connection; DNS/TLS/HTTP can also be viewed structurally.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F56xvjntcgyukhh8r905a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F56xvjntcgyukhh8r905a.png" alt="Packet view" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The two views &lt;strong&gt;navigate back and forth&lt;/strong&gt; (jump from a connection to its raw packets, or follow an entire connection from a single packet). Right-clicking any frame lets you &lt;strong&gt;show only this connection / filter this connection&lt;/strong&gt;, &lt;strong&gt;flag the frame&lt;/strong&gt;, &lt;strong&gt;copy source/destination address&lt;/strong&gt;, or directly &lt;strong&gt;look up host details / ping / port scan&lt;/strong&gt; a remote IP. You can also &lt;strong&gt;pause anytime&lt;/strong&gt; during capture, review what's been captured, then continue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2kjgt3um8dzbvgxnfuxj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2kjgt3um8dzbvgxnfuxj.png" alt="Connection view" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Verification: Confirm Capture and Decryption
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Captured successfully&lt;/strong&gt;: The list refreshes continuously when traffic passes the NIC; in the connection view you can see connections grouped by protocol.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Readable&lt;/strong&gt;: Open an HTTPS connection. If it displays as readable plaintext (e.g., JSON), decryption has succeeded. If still ciphertext, return to Section 4 and click &lt;strong&gt;Decrypt this app&lt;/strong&gt; on it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verify non-HTTP&lt;/strong&gt;: Type &lt;code&gt;dns&lt;/code&gt;, &lt;code&gt;quic&lt;/code&gt;, &lt;code&gt;icmp&lt;/code&gt;, etc., into the display filter in the packet view. If corresponding traffic appears, the NIC layer has captured everything.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  6. Nothing Captured / Can't Decrypt? Troubleshoot
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symptom&lt;/th&gt;
&lt;th&gt;Likely Cause&lt;/th&gt;
&lt;th&gt;Solution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Captured, but a program is still ciphertext&lt;/td&gt;
&lt;td&gt;It isn't one of the common programs that are plaintext immediately&lt;/td&gt;
&lt;td&gt;Click &lt;strong&gt;Decrypt this app&lt;/strong&gt; on it and select it. If still incomplete, enable &lt;strong&gt;Restart program&lt;/strong&gt; / &lt;strong&gt;Handle child processes&lt;/strong&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No traffic at all&lt;/td&gt;
&lt;td&gt;Wrong NIC selected, or the capture filter filtered out all traffic&lt;/td&gt;
&lt;td&gt;Switch to the currently active NIC; relax or clear the capture filter and restart the session.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Want to re-filter captured data but find the capture filter can't be changed&lt;/td&gt;
&lt;td&gt;Capture filters only take effect before the capture starts&lt;/td&gt;
&lt;td&gt;Use the &lt;strong&gt;Display Filter&lt;/strong&gt; in the packet view to filter the captured full data (e.g., &lt;code&gt;tcp.port==443&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Target uses HTTP/3 (QUIC), cannot see all traffic&lt;/td&gt;
&lt;td&gt;More apps are adopting QUIC; it has always been hard to capture and decrypt at the NIC layer&lt;/td&gt;
&lt;td&gt;Induce the target to gracefully fall back from HTTP/3 to a regular connection, making it capturable and decryptable again (stopping the session auto-restores). When session keys are available, you can also decrypt QUIC/HTTP/3 directly.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Only want to debug an HTTP API, but NIC traffic is too noisy&lt;/td&gt;
&lt;td&gt;NIC captures "everything", focusing on completeness over precision&lt;/td&gt;
&lt;td&gt;Use &lt;strong&gt;Proxy Capture&lt;/strong&gt; (more precise) or &lt;strong&gt;Process Capture&lt;/strong&gt; (only one program).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  7. Choosing a Local Capture Method
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Your situation&lt;/th&gt;
&lt;th&gt;Use this method&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;See all traffic on the whole machine, non-HTTP traffic, or a program's full network behavior&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;NIC Capture&lt;/strong&gt; (this article, most complete)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debug HTTP APIs, rewrite/replay requests&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Proxy Capture&lt;/strong&gt; (more precise)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ordinary programs launchable from command line (browser/script/CLI)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Process Capture&lt;/strong&gt; (simplest)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Program already running / certificate pinned / proxy unsupported / proprietary encryption&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Application-Layer Capture&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System apps on macOS / stubborn applications&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;System-Level Capture&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How to read captured data, switch views, and decode: see &lt;strong&gt;Data Viewing and Decoding&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For proprietary/self-developed protocols, to teach the tool how to read them: see &lt;strong&gt;Custom Protocol Decoding&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;To quickly look up remote IP ownership/geolocation/certificates: see &lt;strong&gt;Host Details&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;To probe a remote further: see &lt;strong&gt;Network Diagnostics, Port Scanning, and Subdomain Discovery&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mobile</category>
      <category>software</category>
      <category>networking</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Quick Start with TraceEagle Network Tracker</title>
      <dc:creator>ObjC_Coder</dc:creator>
      <pubDate>Tue, 08 Sep 2026 07:18:28 +0000</pubDate>
      <link>https://dev.to/objc_coder/quick-start-with-traceeagle-network-tracker-1nbe</link>
      <guid>https://dev.to/objc_coder/quick-start-with-traceeagle-network-tracker-1nbe</guid>
      <description>&lt;h1&gt;
  
  
  Quick Start
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;This guide gets you through a packet capture in minutes: install, launch, capture your &lt;strong&gt;first decrypted request&lt;/strong&gt; in the simplest way, then pick a capture approach that fits your goal. You'll be up and running after reading.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. Install and Launch
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Download and install the desktop app for your platform (macOS / Windows / Linux).&lt;/li&gt;
&lt;li&gt;Open the app. On first launch it may ask for system permissions (required for low-level capture) — grant them.&lt;/li&gt;
&lt;li&gt;It works right away, with no extra configuration.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  2. Fastest Success: Capture Your Own Browser
&lt;/h2&gt;

&lt;p&gt;To see results immediately, use Targeted App Capture: the tool launches a browser for you, captures only that process, and auto-decrypts all the way — &lt;strong&gt;no proxy configuration, no certificate installation&lt;/strong&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new session and choose &lt;strong&gt;Local Targeted App Capture&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click the built-in &lt;strong&gt;Browser Example&lt;/strong&gt; (it auto-fills the launch command), or enter your own command under &lt;strong&gt;Launch Command&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Start&lt;/strong&gt;. The tool opens an independent, clean browser window.&lt;/li&gt;
&lt;li&gt;In that browser, open any website. Requests appear in the list instantly. Click one to see the decrypted plaintext: request line, request headers, body — and the same for the response.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;If you want to get it working the first time, take this route — no system proxy, no certificate, least effort. It's the perfect way to get a taste of "capture and see plaintext." See Targeted App Capture for full steps.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  3. Choose a Capture Approach That Fits Your Goal
&lt;/h2&gt;

&lt;p&gt;Use different approaches for different goals; pick one from the table:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you want to capture&lt;/th&gt;
&lt;th&gt;Which approach to use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Local browser / app, or want to tamper and replay&lt;/td&gt;
&lt;td&gt;Proxy Capture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entire machine traffic, including non-proxy traffic, UDP / QUIC, DNS&lt;/td&gt;
&lt;td&gt;NIC Capture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Only one app, auto-decrypt, no certificate&lt;/td&gt;
&lt;td&gt;Targeted App Capture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Apps with certificate pinning or custom encryption that can't be broken&lt;/td&gt;
&lt;td&gt;App-Layer Capture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System built-in apps, stubborn apps&lt;/td&gt;
&lt;td&gt;System-Level Capture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iPhone / iPad traffic&lt;/td&gt;
&lt;td&gt;iOS Capture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Android phone traffic&lt;/td&gt;
&lt;td&gt;Android Capture&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If in doubt, start with Proxy Capture: it's the most general, supports plaintext viewing, request tampering/replay, and can also capture phones and LAN devices.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Understand the Interface
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Request List&lt;/strong&gt;: Each captured traffic item appears here in order; click to expand its details.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Decryption&lt;/strong&gt;: When the session key for an item is available, the tool automatically turns ciphertext into plaintext; the details show TLS as "Decrypted".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Raw and Plaintext Side by Side&lt;/strong&gt;: View both the decrypted request/response and the underlying raw bytes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Process Attribution&lt;/strong&gt;: Each item is tagged with which program sent it, so you can tell them apart at a glance even when they're mixed together.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To understand a capture, switch views, or decode payloads, see Data Viewing &amp;amp; Decoding; to compare two requests, see Request Comparison.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmb9w35knz1hqjevbaxqu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmb9w35knz1hqjevbaxqu.png" alt="Traffic Details" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Can't Capture / Can't Decrypt? Check These First
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symptom&lt;/th&gt;
&lt;th&gt;Likely cause&lt;/th&gt;
&lt;th&gt;What to do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No requests at all&lt;/td&gt;
&lt;td&gt;Target doesn't go through the system proxy&lt;/td&gt;
&lt;td&gt;Switch to NIC Capture — it sees everything at the NIC layer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Captured, but all ciphertext&lt;/td&gt;
&lt;td&gt;No certificate installed, or app has certificate pinning&lt;/td&gt;
&lt;td&gt;Install a certificate (see Certificate Installation), or switch to App-Layer Capture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Phone capture still fails after certificate installed&lt;/td&gt;
&lt;td&gt;Newer OS versions don't trust user certificates&lt;/td&gt;
&lt;td&gt;See the certificate-free methods in Android Capture / iOS Capture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP/3 / QUIC not visible&lt;/td&gt;
&lt;td&gt;It runs over UDP, which ordinary proxies can't see&lt;/td&gt;
&lt;td&gt;Use NIC Capture with H3 decryption&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For more detailed troubleshooting, run Network Diagnostics first.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. What's Next
&lt;/h2&gt;

&lt;p&gt;Once you can capture, decrypt, and understand, these are the everyday high-frequency features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rule Rewrite &amp;amp; Breakpoint Interception&lt;/strong&gt;: Modify requests and responses without changing code, or intercept requests mid-way and edit them manually.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Request Construction &amp;amp; Replay&lt;/strong&gt;: Modify any request and resend it; even signed and timestamped APIs can be truly replayed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session Replay &amp;amp; Stress Testing&lt;/strong&gt;: Replay a whole batch of requests, or load-test a single endpoint in place.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Generation &amp;amp; API Document Export&lt;/strong&gt;: Turn a request into multi-language code, or reverse the entire session into an OpenAPI document.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mobile</category>
      <category>software</category>
      <category>networking</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
