├── .gitignore ├── MyPlayground.playground ├── Contents.swift └── contents.xcplayground └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xccheckout 23 | *.xcscmblueprint 24 | 25 | ## Obj-C/Swift specific 26 | *.hmap 27 | *.ipa 28 | *.dSYM.zip 29 | *.dSYM 30 | 31 | ## Playgrounds 32 | timeline.xctimeline 33 | playground.xcworkspace 34 | 35 | # Swift Package Manager 36 | # 37 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 38 | # Packages/ 39 | # Package.pins 40 | # Package.resolved 41 | .build/ 42 | 43 | # CocoaPods 44 | # 45 | # We recommend against adding the Pods directory to your .gitignore. However 46 | # you should judge for yourself, the pros and cons are mentioned at: 47 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 48 | # 49 | # Pods/ 50 | # 51 | # Add this line if you want to avoid checking in source code from the Xcode workspace 52 | # *.xcworkspace 53 | 54 | # Carthage 55 | # 56 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 57 | # Carthage/Checkouts 58 | 59 | Carthage/Build 60 | 61 | # fastlane 62 | # 63 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 64 | # screenshots whenever they are needed. 65 | # For more information about the recommended setup visit: 66 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 67 | 68 | fastlane/report.xml 69 | fastlane/Preview.html 70 | fastlane/screenshots/**/*.png 71 | fastlane/test_output 72 | 73 | # Code Injection 74 | # 75 | # After new code Injection tools there's a generated folder /iOSInjectionProject 76 | # https://github.com/johnno1962/injectionforxcode 77 | 78 | iOSInjectionProject/ 79 | -------------------------------------------------------------------------------- /MyPlayground.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | var str = "Hello, playground" 4 | -------------------------------------------------------------------------------- /MyPlayground.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ios-developer-tools 2 | 3 | A collection of tools that an iOS developer should know. 4 | 5 | ## IDE 6 | 7 | - [XCode](https://developer.apple.com/xcode/) you will spend most of your time with it 8 | - [awesome-xcode-extensions](https://github.com/theswiftdev/awesome-xcode-extensions) Awesome native Xcode extensions. 9 | - [iSimulator](https://github.com/wigl/iSimulator) iSimulator is a GUI utility to control the Simulator, and manage the app installed on the simulator. 10 | - [CocoaPods](http://cocoapods.org/) dependency manager for Swift and Objective-C Cocoa projects 11 | - [Carthage](https://github.com/Carthage/Carthage) A simple, decentralized dependency manager for Cocoa 12 | - [Atom](https://atom.io/) + [Nuclide](https://nuclide.io/) If you need to write react-native Code 13 | - [MacDown](http://macdown.uranusjr.com/) open source Markdown editor for macOS 14 | - [Visual Studio Code](https://code.visualstudio.com/) Excellent ide 15 | - [starUML](http://staruml.io/) A sophisticated software modeler for agile and concise modeling 16 | 17 | ## Command Line Tool 18 | 19 | - [xcodebuild](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html) and - [xcrun](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/xcrun.1.html) command line tool to build and archive app 20 | - [xctool](https://github.com/facebook/xctool) An extension for Apple's xcodebuild that makes it easier to test iOS and macOS apps. 21 | - [xcbuild](https://github.com/facebook/xcbuild) xcbuild is an Xcode-compatible build tool with the goal of providing faster builds, better documentation of the build process and running on multiple platforms (macOS, Linux, and Windows) 22 | - [synx](https://github.com/venmo/synx) A command-line tool that reorganizes your Xcode project folder to match your Xcode groups 23 | - [Kin](https://github.com/Karumi/Kin) Simple PBXProj Verifier (If you has problem to git merge the project.pbxproj file) 24 | - [tmux](https://github.com/tmux/tmux) tmux is a "terminal multiplexer", it enables a number of terminals (or windows) 25 | to be accessed and controlled from a single terminal. 26 | - [iTerm2](https://www.iterm2.com/) iTerm2 is a replacement for Terminal and the successor to iTerm. It works on Macs with macOS 10.10 or newer. iTerm2 brings the terminal into the modern age with features you never knew you always wanted. 27 | - [xcpretty](https://github.com/supermarin/xcpretty) Flexible and fast xcodebuild formatter 28 | - [Jazzy](https://github.com/realm/jazzy) Soulful docs for Swift & Objective-C 29 | - [xiblint](https://github.com/lyft/xiblint) A tool for linting storyboard and xib files 30 | - [brew](https://github.com/Homebrew/brew) 🍺 The missing package manager for macOS 31 | - [cloc](https://github.com/AlDanial/cloc) cloc counts blank lines, comment lines, and physical lines of source code in many programming languages. 32 | - [xcproj](https://github.com/0xced/xcproj) Command line tool for manipulating Xcode project files 33 | - [autojump](https://github.com/wting/autojump) A cd command that learns - easily navigate directories from the command line 34 | 35 | ## DEBUG 36 | 37 | - [Flipper](https://fbsonar.com/) Flipper is a platform for debugging mobile apps on iOS and Android. Visualize, inspect, and control your apps from a simple desktop interface. Use Flipper as is or extend it using the plugin API. 38 | - [chisel](https://github.com/facebook/chisel) Chisel is a collection of LLDB commands to assist debugging iOS apps. 39 | - [CocoaLumberjack](https://github.com/CocoaLumberjack/CocoaLumberjack) A fast & simple, yet powerful & flexible logging framework for Mac and iOS 40 | - [PonyDebugger](https://github.com/square/PonyDebugger)Remote network and data debugging for your native iOS app using Chrome Developer Tools 41 | - [dSYMTools](https://github.com/answer-huang/dSYMTools) Anaylize crash log with DSYM file 42 | - [FBRetainCycleDetector](https://github.com/facebook/FBRetainCycleDetector/tree/master/FBRetainCycleDetector) iOS library to help detecting retain cycles in runtime. 43 | - [FLEX](https://github.com/Flipboard/FLEX) An in-app debugging and exploration tool for iOS 44 | - [GodEye](https://github.com/zixun/GodEye) Automaticly display Log,Crash,Network,ANR,Leak,CPU,RAM,FPS,NetFlow,Folder and etc with one line of code based on Swift. Just like God opened his eyes 45 | - [injectionforxcode](https://github.com/johnno1962/injectionforxcode) Injection for Xcode is an Xcode plugin (available via Alcatraz) or AppCode that dynamically inserts new Swift / Objective-C code into a running app in order to speed up your build process 46 | - [Instruments](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/index.html) Instruments is a powerful and flexible performance-analysis and testing tool that’s part of the Xcode tool set. 47 | - [WBWebViewConsole](https://github.com/Naituw/WBWebViewConsole) In-App debug console for your UIWebView & WKWebView 48 | - [ios-webkit-debug-proxy](https://github.com/google/ios-webkit-debug-proxy) A DevTools proxy (Chrome Remote Debugging Protocol) for iOS devices (Safari Remote Web Inspector). 49 | - [spy-debugger](https://github.com/wuchangming/spy-debugger) WebView,WeChat WebView,Safari Debugger 50 | - [AppleTrace](https://github.com/everettjf/AppleTrace) Objective C message tracing tool for iOS/macOS 51 | 52 | ## Project Anaylize 53 | 54 | - [oclint](http://oclint.org/) Static code analysis tool for improving quality and reducing defects by inspecting C, C++ and Objective-C code and looking for potential problems. 55 | - [swiftlint](https://github.com/realm/SwiftLint) A tool to enforce Swift style and conventions. 56 | - [objc-dependency-visualizer](https://github.com/PaulTaykalo/objc-dependency-visualizer) Objective-C and Swift dependency visualizer. It's tool that helps to visualize current state of your project. It's really easy to see how tight your classes are coupled. 57 | - [WHC_ScanUnreferenceImageTool](https://github.com/netyouli/WHC_ScanUnreferenceImageTool) Scanning project does not use images in tool, delete without reference images to reduce the packaging volume 58 | - [FengNiao](https://github.com/onevcat/FengNiao) A command line tool for cleaning unused resources in Xcode. 59 | - [IBAnalyzer](https://github.com/fastred/IBAnalyzer) Find common xib and storyboard-related problems without running your app or writing unit tests. 60 | - [Simian](http://www.harukizaemon.com/simian/index.html) Similarity Analyser 61 | - [cartool](https://github.com/steventroughtonsmith/cartool) Export images from OS X / iOS .car CoreUI archives 62 | - [XcodeZombieCode](https://github.com/kangwang1988/XcodeZombieCode) A source-code level/Clang Approach 63 | - [Faux Pas](http://fauxpasapp.com/) Find errors in your iOS or Mac project(Not free) 64 | - [xcodeproj](https://github.com/tuist/xcodeproj) 📝 Read, update and write your Xcode projects https://tuist.github.io/xcodeproj/ 65 | - [objc_dep](https://github.com/nst/objc_dep) Graph the import dependancies in an Objective-C project 66 | - [AssetCatalogTinkerer](https://github.com/insidegui/AssetCatalogTinkerer) An app that lets you open .car files and browse/extract their images. 67 | 68 | ## Network 69 | 70 | - [Charles](https://www.charlesproxy.com/) Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. 71 | - [Postman](https://www.getpostman.com/) Faster, easier API development 72 | - [iperf](https://github.com/esnet/iperf) iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool 73 | - [Lantern](https://github.com/getlantern/lantern) Lantern delivers fast access to the open Internet 74 | - [shadowsocks](https://shadowsocks.org/en/index.html) A secure socks5 proxy,designed to protect your Internet traffic. 75 | - [wireshark](https://www.wireshark.org/) Wireshark is the world’s foremost and widely-used network protocol analyzer. It lets you see what’s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. 76 | - [netfox](https://github.com/kasketis/netfox) A lightweight, one line setup, iOS / OSX network debugging library! 🦊 77 | - [JSONLint](https://jsonlint.com/) JSONLint is a validator and reformatter for JSON, a lightweight data-interchange format 78 | 79 | ## Data 80 | 81 | - [sqlitebrowser](http://sqlitebrowser.org/) DB Browser for SQLite 82 | - [SimPholders](https://simpholders.com/)Access all applications from your menu bar,and quick open Sandbox of Simulator 83 | 84 | ## Compiler 85 | 86 | 87 | - [ccache](https://ccache.samba.org/) ccache is a compiler cache. It speeds up recompilation by caching previous compilations and detecting when the same compilation is being done again 88 | - [swiff](https://github.com/agens-no/swiff) Human readable time diffs on lines of output when running e.g. build commands like fastlane 89 | - [ClangKit](https://github.com/macmade/ClangKit) ClangKit provides an Objective-C frontend to LibClang. Source tokenization, diagnostics and fix-its are actually implemented. 90 | - [Optimizing-Swift-Build-Times](https://github.com/fastred/Optimizing-Swift-Build-Times) Collection of advice on optimizing compile times of Swift projects. 91 | - [Ninja](https://ninja-build.org/) Ninja is a small build system with a focus on speed 92 | - [emscripten](https://github.com/kripken/emscripten) An LLVM-to-JavaScript Compiler 93 | 94 | ## Apple 95 | 96 | - [App Store Promote](https://developer.apple.com//contact/app-store/promote/) 97 | - [Expedited App Review](https://developer.apple.com/contact/app-store/) 98 | - [Apple Design Resources](https://developer.apple.com/design/resources/) 99 | - [Optimizing for App Store Search](https://developer.apple.com/app-store/search/) 100 | - [Apple System Status](https://developer.apple.com/system-status/) 101 | 102 | ## Other 103 | 104 | - [Jenkins](https://jenkins.io/index.html) Continuous integration (CI) 105 | - [GitLabCI](https://about.gitlab.com/features/gitlab-ci-cd/) CI in gitlab 106 | - [danger](https://github.com/danger/danger) Formalize your Pull Request etiquette. 107 | - [fastlane](https://github.com/fastlane/fastlane) Automate building and releasing your iOS and Android apps 108 | - [appledoc](http://gentlebytes.com/appledoc/) Objective-C API documentation generator 109 | - [Source Tree](http://www.sourcetreeapp.com/) Harness the power of Git and Hg in a beautifully simple application 110 | - [gitkraken](https://www.gitkraken.com/) The legendary Git GUI client for Windows, Mac and Linux 111 | - [PaintCode](https://www.paintcodeapp.com/) Turn drawings into code. 112 | - [reflector](http://www.airsquirrels.com/reflector/) wireless mirroring and streaming receiver 113 | - [Sketch](https://www.sketchapp.com/) Sketch gives you the power, flexibility and speed you always wanted in a lightweight and easy-to-use package. Finally you can focus on what you do best: Design. 114 | - [gif brewery](http://gifbrewery.com/) Easy to create GIF 115 | - [NWPusher](https://github.com/noodlewerk/NWPusher) OS X and iOS application and framework to play with the Apple Push Notification service (APNs) 116 | - [jazzy](https://github.com/realm/jazzy) Soulful docs for Swift & Objective-C 117 | - [ImageOptim](https://imageoptim.com/mac) ImageOptim makes images load faster 118 | - [TinyPng.com](https://tinypng.com/) Smart PNG and JPEG compression 119 | - [OOMDetector](https://github.com/Tencent/OOMDetector) OOMDetector is a memory monitoring component for iOS which provides you with OOM monitoring, memory allocation monitoring, memory leak detection and other functions. 120 | - [lottie-ios](https://github.com/airbnb/lottie-ios) An iOS library to natively render After Effects vector animations 121 | - [public-apis](https://github.com/toddmotto/public-apis) A collective list of public JSON APIs。 122 | 123 | ## Reverse engineering 124 | 125 | - [canijailbreak](https://canijailbreak.com/) jailbreak tools 126 | - [ios-app-signer](https://github.com/DanTheMan827/ios-app-signer) This is an app for OS X that can (re)sign apps and bundle them into ipa files that are ready to be installed on an iOS device. 127 | - [MonkeyDev](https://github.com/AloneMonkey/MonkeyDev) CaptainHook Tweak、Logos Tweak and Command-line Tool、Patch iOS Apps, Without Jailbreak. 128 | - [class dump](http://stevenygard.com/projects/class-dump/) a command-line utility for examining the Objective-C runtime information stored in Mach-O files 129 | - [Keychain-Dumper](https://github.com/ptoomey3/Keychain-Dumper)A tool to check which keychain items are available to an attacker once an iOS device has been jailbroken 130 | - [reveal](https://revealapp.com/) Reveal brings powerful runtime view debugging to iOS developers 131 | - [theos](https://github.com/theos/theos) Unified cross-platform Makefile system 132 | - [iPhoneDevWiki](http://iphonedevwiki.net/index.php/Main_Page) Wiki about jailbroken iOS development 133 | - [Hopper Disassembler](https://www.hopperapp.com/) Reverse engineering tool that lets you disassemble, decompile and debug your applications. 134 | - [MachOView](https://github.com/gdbinit/MachOView) View the raw data of mach-o(iOS executeable file format) 135 | - [frida](https://www.frida.re/) Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers. 136 | - [cycript](http://www.cycript.org/) Cycript allows developers to explore and modify running applications on either iOS or Mac OS X using a hybrid of Objective-C++ and JavaScript syntax through an interactive console that features syntax highlighting and tab completion. 137 | - [dumpdecrypted](https://github.com/stefanesser/dumpdecrypted) Dumps decrypted mach-o files from encrypted iPhone applications from memory to disk. This tool is necessary for security researchers to be able to look under the hood of encryption. 138 | - [passionfruit](https://github.com/chaitin/passionfruit) Simple iOS app blackbox assessment tool. Powered by frida.re and vuejs. 139 | - [objection](https://github.com/sensepost/objection) 📱 objection - runtime mobile exploration 140 | - [Hikari](https://github.com/HikariObfuscator/Hikari) LLVM Obfuscator https://keybase.io/team/hikari 141 | - [Clutch](https://github.com/KJCracks/Clutch) Fast iOS executable dumper 142 | - [otool](https://www.unix.com/man-page/osx/1/otool/) The otool command displays specified parts of object files or libraries. It can also disassemble: 143 | - [nm](http://unixhelp.ed.ac.uk/CGI/man-cgi?nm) nm is a utility that displays the symbol table of a given binary. 144 | - [jtool](http://www.newosxbook.com/tools/jtool.html) The jtool command is meant to meet and exceed the functionality to XCode's otool(1), picking up along the way additional Mach-O commands such as atos(1), dyldinfo(1), nm(1), segedit(1), pagestuff(1), strings(1) , and even codesign(1) and the informal ldid. 145 | - [capstone](https://github.com/aquynh/capstone) Capstone disassembly/disassembler framework 146 | - [class-dump-swift](https://github.com/Maximus-/class-dump-swift) Swift Class Dumper 147 | - [iosre](http://bbs.iosre.com/) Chinese reverse engineering bbs 148 | - [Retriever](https://github.com/cyanzhong/Retriever) Retrieving InfoPlist without Jailbreaking on iOS Devices 149 | - [iOS-Runtime-Headers](https://github.com/nst/iOS-Runtime-Headers) iOS Objective-C headers as derived from runtime introspection 150 | - [iReSign](https://github.com/maciekish/iReSign) iReSign allows iDevice app bundles (.ipa) files to be signed or resigned with a digital certificate from Apple for distribution. 151 | - [MachO-Kit](https://github.com/DeVaukz/MachO-Kit) A C/Objective-C library for parsing Mach-O files. 152 | - [insert_dylib](https://github.com/Tyilo/insert_dylib) Command line utility for inserting a dylib load command into a Mach-O binary 153 | - [yololib](https://github.com/KJCracks/yololib) dylib injector for mach-o binaries 154 | 155 | ## App Guard 156 | 157 | - [ios-class-guard](https://github.com/Polidea/ios-class-guard) Simple Objective-C obfuscator for Mach-O executables 158 | - [obfuscator](https://github.com/obfuscator-llvm/obfuscator) obfuscator 159 | - [Obfuscator-iOS](https://github.com/pjebs/Obfuscator-iOS) Secure your app by obfuscating all the hard-coded security-sensitive strings. 160 | - [swiftshield](https://github.com/rockbruno/swiftshield) Swift Obfuscator that protects iOS apps against reverse engineering attacks. 161 | --------------------------------------------------------------------------------