Skip to content

Capture HTTP/HTTPS, and Websocket from iOS app without proxy.

License

Notifications You must be signed in to change notification settings

ProxymanApp/atlantis

Repository files navigation

Atlantis: Debug iOS with ease

A little and powerful iOS framework for intercepting HTTP/HTTPS Traffic from your app. No more messing around with proxy, certificate config.

Version Carthage compatible Platform Twitter Join the chat at https://gitter.im/Proxyman-app/community License

Features

  • Automatically intercept all HTTP/HTTPS Traffic with ease
  • No need to config HTTP Proxy, Install or Trust any Certificate
  • Support iOS Physical Devices and Simulators
  • Review traffic log from Proxyman
  • Categorize the log by project and devices.
  • Only for Traffic Inspector, not for Debugging Tools
  • Ready for Production

Atlantis: Debug iOS with ease

How to use

  1. Install Atlantis by CocoaPod or SPM, then starting Atlantis
import Atlantis

// Add to the end of `application(_:didFinishLaunchingWithOptions:)` in AppDelegate.swift or SceneDelegate.swift
Atlantis.start()
  1. Make sure your iOS devices/simulator and macOS Proxyman are in the same Wifi Network or connect your iOS Devices to Mac by USB cables
  2. Open macOS Proxyman (or download the lasted here) (2.11.0+)
  3. Open your iOS app and Inspect traffic logs from Proxyman app
  4. Enjoy debugging ❤️

Requirement

  • macOS Proxyman app 2.11.0+
  • iOS 12.0+ / macOS 10.12+
  • Xcode 11+
  • Swift 5.0+

Required Configuration for iOS 14+

From iOS 14, it's required to add NSLocalNetworkUsageDescription and NSBonjourServices to your info.plist

  • Open Info.plist file and adding the following keys and values:
<key>NSLocalNetworkUsageDescription</key>
<string>Atlantis would use Bonjour Service to discover Proxyman app from your local network.</string>
<key>NSBonjourServices</key>
<array>
    <string>_Proxyman._tcp</string>
</array>

Install

CocoaPod

  • Add the following line to your Podfile
pod 'atlantis-proxyman'

Swift Packages Manager

  • Add https://github.com/ProxymanApp/atlantis to your project by: Open Xcode -> File Menu -> Swift Packages -> Add Package Dependency...

Carthage

  1. Add to your Cartfile
github "ProxymanApp/atlantis"
  1. Run carthage update
  2. Drag Atlantis.framework from your project
  3. Create a Carthage Script as the Carthage guideline

For Carthage with Xcode 12, please check out the workaround: https://github.com/Carthage/Carthage/blob/master/Documentation/Xcode12Workaround.md

FAQ

1. How does Atlantis work?

Atlantis uses Method Swizzling technique to swizzle certain functions of NSURLSession and NSURLConnection that enables Atlantis captures HTTP/HTTPS traffic on the fly.

Then it sends to Proxyman app for inspecting later.

2. How can Atlantis stream the data to the Proxyman app?

As soon as your iOS app (Atlantis is enabled) and the Proxyman macOS app are the same local network, Atlantis could discover the Proxyman app by using Bonjour Service. After the connection is established, Atlantis will send the data via Socket.

3. Is it safe to send my network traffic logs to the Proxyman app?

It's completely safe since your data is locally transferred between your iOS app and the Proxyman app, no Internet is required. All traffic logs are captures and send to the Proxyman app for inspecting on the fly.

Atlantis and Proxyman app do not store any of your data on any server.

4. What kind of data that Atlantis capture?

  • All HTTP/HTTPS traffic from your iOS apps, that integrate the Atlantis framework
  • Your iOS app name, bundle identifier, and small size of the logo
  • iOS devices/simulators name and device models.

All the above data are not stored anywhere (except in the memory). It will be wiped out as soon as you close the app.

They are required to categorize the traffic on the Proxyman app by project and device name. Therefore, it's easier to know where the request/response comes from.

Troubleshooting

1. I could not see any request from Atlantis on Proxyman app?

For some reason, Bonjour service might not be able to find Proxyman app if you're in a company network.

Please try to plugin your iOS Devices to your Macbook and try again. Bonjour services can discover by using a USB Cable.

Or check out this Ticket #25 (We're going to release soon)

Credit

License

Atlantis is released under the Apache-2.0 License. See LICENSE for details.