├── iOS ├── .gitignore ├── OCRuntime │ ├── en.lproj │ │ └── InfoPlist.strings │ ├── header.png │ ├── framework.png │ ├── Images.xcassets │ │ ├── Contents.json │ │ └── AppIcon.appiconset │ │ │ ├── AppIcon29x29.png │ │ │ ├── AppIcon58x58.png │ │ │ ├── AppIcon76x76.png │ │ │ ├── AppIcon80x80.png │ │ │ ├── AppIcon87x87.png │ │ │ ├── AppIcon120x120.png │ │ │ ├── AppIcon152x152.png │ │ │ ├── AppIcon167x167.png │ │ │ ├── AppIcon180x180.png │ │ │ ├── AppIcon120x120-1.png │ │ │ └── Contents.json │ ├── RTBInfoVC.h │ ├── RTBSplitViewController.h │ ├── RTBFrameworkCell.h │ ├── Defaults.plist │ ├── RTBClassCell.h │ ├── RTBObjectsTVC.h │ ├── RTBClassDisplayVC.h │ ├── RTBProtocolCell.h │ ├── OCRuntime-Prefix.pch │ ├── RTBMethodCell.h │ ├── main.m │ ├── RTBProtocolsTVC.h │ ├── RTBListTVC.h │ ├── RTBTreeTVC.h │ ├── RTBSearchVC.h │ ├── RTBAppDelegate.h │ ├── RTBFrameworksTVC.h │ ├── header.html │ ├── RTBSplitViewController.m │ ├── footer.html │ ├── RTBFrameworkCell.m │ ├── RTBClassCell.m │ ├── OCRuntime-Info.plist │ ├── UIAlertView+Blocks.h │ ├── RTBProtocolCell.m │ ├── RTBMethodCell.m │ ├── Keywords.plist │ ├── RTBInfoVC.m │ ├── RTBTreeTVC.m │ └── RTBSearchVC.m ├── OCRuntimeTests │ ├── en.lproj │ │ └── InfoPlist.strings │ ├── OCRuntimeTests.m │ └── OCRuntimeTests-Info.plist ├── Makefile ├── BBB.h ├── BBB.m ├── RTBMyIP.h ├── control ├── AAA.m ├── entitlements.plist ├── AAA.h ├── RTBMyIP.m └── GCDWebServer │ ├── Requests │ ├── GCDWebServerFileRequest.h │ ├── GCDWebServerURLEncodedFormRequest.h │ ├── GCDWebServerDataRequest.h │ ├── GCDWebServerURLEncodedFormRequest.m │ └── GCDWebServerDataRequest.m │ ├── Responses │ ├── GCDWebServerStreamedResponse.m │ ├── GCDWebServerStreamedResponse.h │ ├── GCDWebServerErrorResponse.h │ ├── GCDWebServerDataResponse.h │ └── GCDWebServerFileResponse.h │ └── Core │ └── GCDWebServerFunctions.h ├── tools ├── ios_headers_history │ ├── data │ │ ├── 2_1_lib.txt │ │ ├── 3_0_lib.txt │ │ ├── 3_1_lib.txt │ │ ├── 4_0_lib.txt │ │ ├── 4_1_lib.txt │ │ ├── 4_2_lib.txt │ │ ├── 4_3_lib.txt │ │ ├── 5_0_lib.txt │ │ ├── 5_1_lib.txt │ │ ├── 6_0_lib.txt │ │ ├── 6_1_lib.txt │ │ ├── 2_1_pub.txt │ │ ├── 8_0_lib.txt │ │ ├── 8_1_lib.txt │ │ ├── 8_2_lib.txt │ │ ├── 7_0_lib.txt │ │ ├── 7_1_lib.txt │ │ ├── 3_0_pub.txt │ │ ├── 3_1_pub.txt │ │ ├── 8_3_lib.txt │ │ ├── 8_4_lib.txt │ │ ├── 9_0_lib.txt │ │ ├── 9_1_lib.txt │ │ ├── 9_2_lib.txt │ │ ├── 9_3_lib.txt │ │ ├── 4_0_pub.txt │ │ ├── 4_1_pub.txt │ │ ├── 4_2_pub.txt │ │ ├── 4_3_pub.txt │ │ ├── 5_0_pub.txt │ │ ├── 5_1_pub.txt │ │ ├── 6_0_pub.txt │ │ ├── 6_1_pub.txt │ │ ├── 7_0_pub.txt │ │ ├── 2_1_pri.txt │ │ ├── 7_1_pub.txt │ │ ├── 8_0_pub.txt │ │ ├── 8_1_pub.txt │ │ ├── 8_2_pub.txt │ │ ├── 8_3_pub.txt │ │ ├── 8_4_pub.txt │ │ ├── 3_0_pri.txt │ │ ├── 3_1_pri.txt │ │ ├── 9_0_pub.txt │ │ ├── 9_1_pub.txt │ │ ├── 9_2_pub.txt │ │ ├── 9_3_pub.txt │ │ ├── 4_0_pri.txt │ │ ├── 4_1_pri.txt │ │ ├── 4_2_pri.txt │ │ ├── 4_3_pri.txt │ │ ├── 5_0_pri.txt │ │ ├── 5_1_pri.txt │ │ ├── 6_0_pri.txt │ │ └── 6_1_pri.txt │ ├── ios_frameworks.png │ └── readme.txt └── deprecated │ ├── sort_ios_headers.py │ ├── draw_frameworks_history.py │ └── sort_ios_headers_contents.py ├── OSX ├── h.tiff ├── class.tiff ├── class2.tiff ├── framework.tiff ├── protocol.tiff ├── RuntimeBrowser.icns ├── English.lproj │ └── InfoPlist.strings ├── RuntimeBrowser │ └── Images.xcassets │ │ └── AppIcon.appiconset │ │ ├── RuntimeBrowser16x16.png │ │ ├── RuntimeBrowser32x32.png │ │ ├── RuntimeBrowser128x128.png │ │ ├── RuntimeBrowser256x256.png │ │ ├── RuntimeBrowser512x512.png │ │ └── Contents.json ├── RuntimeBrowser_Prefix.pch ├── BrowserCell.h ├── main.m ├── Credits.html ├── Defaults.plist ├── NSTextView+SyntaxColoring.h ├── BrowserNode.h ├── RuntimeBrowser_main.m ├── ToDo.txt ├── BrowserCell.m ├── Keywords.plist ├── Info.plist ├── BrowserNode.m └── AppController.h ├── UI ├── use@2x.png ├── list@2x.png ├── search@2x.png ├── tree@2x.png ├── frameworks@2x.png ├── NSString+SyntaxColoring.h ├── NSMutableAttributedString+RTB.h └── NSMutableAttributedString+RTB.m ├── art ├── screenshot.png ├── RuntimeBrowser.acorn ├── screenshot_iphone.png └── screenshot_iphone_2.png ├── runtime_cli ├── runtime_cli_Prefix.pch ├── runtime_cli.m ├── UnitTests-Info.plist ├── UnitTests │ └── Info.plist └── runtime_cli.1 ├── .gitignore ├── model ├── RTBProtocol.h ├── RTBMethod.h ├── RTBRuntimeHeader.h ├── RTBRuntime.h ├── RTBTypeDecoder.h ├── RTBClass.h ├── RTBTypeDecoder2.h └── RTBProtocol.m └── README.md /iOS/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .theos 3 | packages 4 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/2_1_lib.txt: -------------------------------------------------------------------------------- 1 | libobjc.A.dylib 2 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/3_0_lib.txt: -------------------------------------------------------------------------------- 1 | libobjc.A.dylib 2 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/3_1_lib.txt: -------------------------------------------------------------------------------- 1 | libobjc.A.dylib 2 | -------------------------------------------------------------------------------- /OSX/h.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/OSX/h.tiff -------------------------------------------------------------------------------- /UI/use@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/UI/use@2x.png -------------------------------------------------------------------------------- /OSX/class.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/OSX/class.tiff -------------------------------------------------------------------------------- /OSX/class2.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/OSX/class2.tiff -------------------------------------------------------------------------------- /UI/list@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/UI/list@2x.png -------------------------------------------------------------------------------- /UI/search@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/UI/search@2x.png -------------------------------------------------------------------------------- /UI/tree@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/UI/tree@2x.png -------------------------------------------------------------------------------- /tools/ios_headers_history/data/4_0_lib.txt: -------------------------------------------------------------------------------- 1 | libSystem.B.dylib 2 | libobjc.A.dylib 3 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/4_1_lib.txt: -------------------------------------------------------------------------------- 1 | libSystem.B.dylib 2 | libobjc.A.dylib 3 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/4_2_lib.txt: -------------------------------------------------------------------------------- 1 | libSystem.B.dylib 2 | libobjc.A.dylib 3 | -------------------------------------------------------------------------------- /OSX/framework.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/OSX/framework.tiff -------------------------------------------------------------------------------- /OSX/protocol.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/OSX/protocol.tiff -------------------------------------------------------------------------------- /art/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/art/screenshot.png -------------------------------------------------------------------------------- /iOS/OCRuntime/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/4_3_lib.txt: -------------------------------------------------------------------------------- 1 | libobjc.A.dylib 2 | libsystem_blocks.dylib 3 | -------------------------------------------------------------------------------- /UI/frameworks@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/UI/frameworks@2x.png -------------------------------------------------------------------------------- /iOS/OCRuntimeTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /OSX/RuntimeBrowser.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/OSX/RuntimeBrowser.icns -------------------------------------------------------------------------------- /art/RuntimeBrowser.acorn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/art/RuntimeBrowser.acorn -------------------------------------------------------------------------------- /art/screenshot_iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/art/screenshot_iphone.png -------------------------------------------------------------------------------- /iOS/OCRuntime/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/iOS/OCRuntime/header.png -------------------------------------------------------------------------------- /art/screenshot_iphone_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/art/screenshot_iphone_2.png -------------------------------------------------------------------------------- /iOS/OCRuntime/framework.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/iOS/OCRuntime/framework.png -------------------------------------------------------------------------------- /tools/ios_headers_history/data/5_0_lib.txt: -------------------------------------------------------------------------------- 1 | libmecabra.dylib 2 | libobjc.A.dylib 3 | libsystem_blocks.dylib 4 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/5_1_lib.txt: -------------------------------------------------------------------------------- 1 | libmecabra.dylib 2 | libobjc.A.dylib 3 | libsystem_blocks.dylib 4 | -------------------------------------------------------------------------------- /OSX/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/OSX/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /iOS/OCRuntime/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /tools/ios_headers_history/ios_frameworks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/tools/ios_headers_history/ios_frameworks.png -------------------------------------------------------------------------------- /iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon29x29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon29x29.png -------------------------------------------------------------------------------- /iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon58x58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon58x58.png -------------------------------------------------------------------------------- /iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon76x76.png -------------------------------------------------------------------------------- /iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon80x80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon80x80.png -------------------------------------------------------------------------------- /iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon87x87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon87x87.png -------------------------------------------------------------------------------- /iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon120x120.png -------------------------------------------------------------------------------- /iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon152x152.png -------------------------------------------------------------------------------- /iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon167x167.png -------------------------------------------------------------------------------- /iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon180x180.png -------------------------------------------------------------------------------- /iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon120x120-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/AppIcon120x120-1.png -------------------------------------------------------------------------------- /OSX/RuntimeBrowser/Images.xcassets/AppIcon.appiconset/RuntimeBrowser16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/OSX/RuntimeBrowser/Images.xcassets/AppIcon.appiconset/RuntimeBrowser16x16.png -------------------------------------------------------------------------------- /OSX/RuntimeBrowser/Images.xcassets/AppIcon.appiconset/RuntimeBrowser32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/OSX/RuntimeBrowser/Images.xcassets/AppIcon.appiconset/RuntimeBrowser32x32.png -------------------------------------------------------------------------------- /OSX/RuntimeBrowser/Images.xcassets/AppIcon.appiconset/RuntimeBrowser128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/OSX/RuntimeBrowser/Images.xcassets/AppIcon.appiconset/RuntimeBrowser128x128.png -------------------------------------------------------------------------------- /OSX/RuntimeBrowser/Images.xcassets/AppIcon.appiconset/RuntimeBrowser256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/OSX/RuntimeBrowser/Images.xcassets/AppIcon.appiconset/RuntimeBrowser256x256.png -------------------------------------------------------------------------------- /OSX/RuntimeBrowser/Images.xcassets/AppIcon.appiconset/RuntimeBrowser512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbang/RuntimeBrowser/HEAD/OSX/RuntimeBrowser/Images.xcassets/AppIcon.appiconset/RuntimeBrowser512x512.png -------------------------------------------------------------------------------- /OSX/RuntimeBrowser_Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'RuntimeBrowser' target in the 'RuntimeBrowser' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /runtime_cli/runtime_cli_Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'runtime_cli' target in the 'runtime_cli' project. 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/6_0_lib.txt: -------------------------------------------------------------------------------- 1 | libAWDProtobufFacetimeiMessage.dylib 2 | libAWDProtobufWifi.dylib 3 | libdispatch.dylib 4 | libmecabra.dylib 5 | libobjc.A.dylib 6 | libsystem_blocks.dylib 7 | libsystem_network.dylib 8 | libxpc.dylib 9 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/6_1_lib.txt: -------------------------------------------------------------------------------- 1 | libAWDProtobufFacetimeiMessage.dylib 2 | libAWDProtobufWifi.dylib 3 | libdispatch.dylib 4 | libmecabra.dylib 5 | libobjc.A.dylib 6 | libsystem_blocks.dylib 7 | libsystem_network.dylib 8 | libxpc.dylib 9 | -------------------------------------------------------------------------------- /iOS/Makefile: -------------------------------------------------------------------------------- 1 | ARCHS = armv7 arm64 2 | 3 | include $(THEOS)/makefiles/common.mk 4 | 5 | XCODEPROJ_NAME = OCRuntime 6 | 7 | OCRuntime_XCODEFLAGS = THEOS_FLAG=-DTHEOS 8 | OCRuntime_CODESIGN_FLAGS = -Sentitlements.plist 9 | 10 | include $(THEOS_MAKE_PATH)/xcodeproj.mk 11 | -------------------------------------------------------------------------------- /iOS/BBB.h: -------------------------------------------------------------------------------- 1 | // 2 | // BBB.h 3 | // OCRuntime 4 | // 5 | // Created by Nicolas Seriot on 13/05/15. 6 | // Copyright (c) 2015 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AAA.h" 11 | 12 | @interface BBB : AAA 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /OSX/BrowserCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // BrowserCell.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 2/21/11. 6 | // Copyright 2011 IICT. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface BrowserCell : NSBrowserCell { 12 | 13 | } 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBInfoVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // InfoViewController.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 25.01.09. 6 | // Copyright 2009 Sen:te. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RTBInfoVC : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/2_1_pub.txt: -------------------------------------------------------------------------------- 1 | AVFoundation.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | CoreFoundation.framework 5 | CoreLocation.framework 6 | Foundation.framework 7 | MediaPlayer.framework 8 | OpenGLES.framework 9 | QuartzCore.framework 10 | UIKit.framework 11 | -------------------------------------------------------------------------------- /iOS/BBB.m: -------------------------------------------------------------------------------- 1 | // 2 | // BBB.m 3 | // OCRuntime 4 | // 5 | // Created by Nicolas Seriot on 13/05/15. 6 | // Copyright (c) 2015 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import "BBB.h" 10 | 11 | @implementation BBB 12 | 13 | - (NSString *)bbbbbbbbb { 14 | return @"b"; 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /OSX/main.m: -------------------------------------------------------------------------------- 1 | /// 2 | // main.m 3 | // RuntimeBrowser 4 | // 5 | // Created by iBook on 30.07.08. 6 | // Copyright __MyCompanyName__ 2008. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | return NSApplicationMain(argc, (const char **) argv); 14 | } 15 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBSplitViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RTBSplitViewController.h 3 | // OCRuntime 4 | // 5 | // Created by Adam Demasi on 8/5/21. 6 | // Copyright © 2021 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RTBSplitViewController : UISplitViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /iOS/RTBMyIP.h: -------------------------------------------------------------------------------- 1 | // 2 | // MyIP.h 3 | // ip 4 | // 5 | // Created by Nicolas Seriot on 12.11.08. 6 | // Copyright 2008 Sen:te. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface RTBMyIP : NSObject { 13 | 14 | } 15 | 16 | + (RTBMyIP *)sharedInstance; 17 | - (NSDictionary *)ipsForInterfaces; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Exclude the build directory 2 | build/* 3 | 4 | # Exclude temp nibs and swap files 5 | *~.nib 6 | *.swp 7 | 8 | # Exclude OS X folder attributes 9 | .DS_Store 10 | 11 | # Exclude user-specific XCode 3 and 4 files 12 | *.mode1 13 | *.mode1v3 14 | *.mode2v3 15 | *.perspective 16 | *.perspectivev3 17 | *.pbxuser 18 | *.xcworkspace 19 | xcuserdata 20 | -------------------------------------------------------------------------------- /OSX/Credits.html: -------------------------------------------------------------------------------- 1 |
2 |

Written and conceived by Ezra Epstein.

3 |

First released in April 2002 under GPL.

4 |

Maintained by Nicolas Seriot.

5 |

https://github.com/nst/RuntimeBrowser/

6 |
-------------------------------------------------------------------------------- /iOS/OCRuntime/RTBFrameworkCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // FrameworkCell.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 01.09.08. 6 | // Copyright 2008 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface RTBFrameworkCell : UITableViewCell 13 | 14 | @property (nonatomic, retain) NSString *frameworkName; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/8_0_lib.txt: -------------------------------------------------------------------------------- 1 | libauthinstall.dylib 2 | libAWDSupportFramework.dylib 3 | libAXSafeCategoryBundle.dylib 4 | libAXSpeechManager.dylib 5 | libdispatch.dylib 6 | libextension.dylib 7 | libmecabra.dylib 8 | libobjc.A.dylib 9 | libsystem_blocks.dylib 10 | libsystem_network.dylib 11 | libTelephonyUtilDynamic.dylib 12 | libtzupdate.dylib 13 | libxpc.dylib 14 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/8_1_lib.txt: -------------------------------------------------------------------------------- 1 | libauthinstall.dylib 2 | libAWDSupportFramework.dylib 3 | libAXSafeCategoryBundle.dylib 4 | libAXSpeechManager.dylib 5 | libdispatch.dylib 6 | libextension.dylib 7 | libmecabra.dylib 8 | libobjc.A.dylib 9 | libsystem_blocks.dylib 10 | libsystem_network.dylib 11 | libTelephonyUtilDynamic.dylib 12 | libtzupdate.dylib 13 | libxpc.dylib 14 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/8_2_lib.txt: -------------------------------------------------------------------------------- 1 | libauthinstall.dylib 2 | libAWDSupportFramework.dylib 3 | libAXSafeCategoryBundle.dylib 4 | libAXSpeechManager.dylib 5 | libdispatch.dylib 6 | libextension.dylib 7 | libmecabra.dylib 8 | libobjc.A.dylib 9 | libsystem_blocks.dylib 10 | libsystem_network.dylib 11 | libTelephonyUtilDynamic.dylib 12 | libtzupdate.dylib 13 | libxpc.dylib 14 | -------------------------------------------------------------------------------- /iOS/OCRuntime/Defaults.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | RTBShowOCRuntimeClasses 6 | 7 | RTBEnableWebServer 8 | 9 | RTBAddCommentsForBlocks 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /OSX/Defaults.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | RTBDisplayPropertiesDefaultValues 6 | 7 | RTBColorizeHeaderFile 8 | 9 | ViewType 10 | 0 11 | 12 | 13 | -------------------------------------------------------------------------------- /OSX/NSTextView+SyntaxColoring.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSTextView+SyntaxColoring.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 04.08.08. 6 | // Copyright 2008 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface NSTextView (SyntaxColoring) 13 | 14 | - (void)colorizeWithKeywords:(NSArray *)keywords classes:(NSArray *)classes; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBClassCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // ClassCell.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 13.08.08. 6 | // Copyright 2008 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface RTBClassCell : UITableViewCell 13 | 14 | @property (nonatomic, retain) NSString *className; 15 | 16 | - (IBAction)showHeaders:(id)sender; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBObjectsTVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // ObjectWithMethodsViewController.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 11.06.09. 6 | // Copyright 2009 Sen:te. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface RTBObjectsTVC : UITableViewController 13 | 14 | - (void)setInspectedObject:(id)o; 15 | 16 | - (IBAction)close:(id)sender; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBClassDisplayVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // ClassDisplayViewController.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 31.08.08. 6 | // Copyright 2008 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RTBClassDisplayVC : UIViewController 12 | 13 | @property (nonatomic, copy) NSString *className; 14 | @property (nonatomic, copy) NSString *protocolName; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/7_0_lib.txt: -------------------------------------------------------------------------------- 1 | libAWDProtobufEasyConfig.dylib 2 | libAWDProtobufFacetimeiMessage.dylib 3 | libAWDProtobufMMCS.dylib 4 | libAWDProtobufPower.dylib 5 | libAWDProtobufVPN.dylib 6 | libAWDProtobufWifi.dylib 7 | libAXSafeCategoryBundle.dylib 8 | libTelephonyUtilDynamic.dylib 9 | libdispatch.dylib 10 | libmecabra.dylib 11 | libobjc.A.dylib 12 | libsystem_blocks.dylib 13 | libsystem_network.dylib 14 | libxpc.dylib 15 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/7_1_lib.txt: -------------------------------------------------------------------------------- 1 | libAWDProtobufEasyConfig.dylib 2 | libAWDProtobufFacetimeiMessage.dylib 3 | libAWDProtobufMMCS.dylib 4 | libAWDProtobufPower.dylib 5 | libAWDProtobufVPN.dylib 6 | libAWDProtobufWifi.dylib 7 | libAXSafeCategoryBundle.dylib 8 | libdispatch.dylib 9 | libmecabra.dylib 10 | libobjc.A.dylib 11 | libsystem_blocks.dylib 12 | libsystem_network.dylib 13 | libTelephonyUtilDynamic.dylib 14 | libxpc.dylib 15 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBProtocolCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // ClassCell.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 13.08.08. 6 | // Copyright 2008 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "RTBProtocol.h" 11 | 12 | @interface RTBProtocolCell : UITableViewCell 13 | 14 | @property (nonatomic, retain) RTBProtocol *protocolObject; 15 | 16 | - (IBAction)showHeaders:(id)sender; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /iOS/OCRuntime/OCRuntime-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBMethodCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // MethodCell.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 13.08.08. 6 | // Copyright 2008 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "RTBMethod.h" 11 | 12 | @interface RTBMethodCell : UITableViewCell 13 | 14 | @property (nonatomic, retain) IBOutlet UILabel *label; 15 | 16 | @property (nonatomic, strong) RTBMethod *method; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /iOS/OCRuntime/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // OCRuntime 4 | // 5 | // Created by Nicolas Seriot on 6/14/13. 6 | // Copyright (c) 2013 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "RTBAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([RTBAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/3_0_pub.txt: -------------------------------------------------------------------------------- 1 | AVFoundation.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | CoreData.framework 5 | CoreFoundation.framework 6 | CoreLocation.framework 7 | ExternalAccessory.framework 8 | Foundation.framework 9 | GameKit.framework 10 | MapKit.framework 11 | MediaPlayer.framework 12 | MessageUI.framework 13 | OpenGLES.framework 14 | QuartzCore.framework 15 | StoreKit.framework 16 | UIKit.framework 17 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/3_1_pub.txt: -------------------------------------------------------------------------------- 1 | AVFoundation.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | CoreData.framework 5 | CoreFoundation.framework 6 | CoreLocation.framework 7 | ExternalAccessory.framework 8 | Foundation.framework 9 | GameKit.framework 10 | MapKit.framework 11 | MediaPlayer.framework 12 | MessageUI.framework 13 | OpenGLES.framework 14 | QuartzCore.framework 15 | StoreKit.framework 16 | UIKit.framework 17 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/8_3_lib.txt: -------------------------------------------------------------------------------- 1 | libauthinstall.dylib 2 | libAVFAudio.dylib 3 | libAWDSupportFramework.dylib 4 | libAXSafeCategoryBundle.dylib 5 | libAXSpeechManager.dylib 6 | libdispatch.dylib 7 | libextension.dylib 8 | libLinearAlgebra.dylib 9 | libmecabra.dylib 10 | libnfshared.dylib 11 | libobjc.A.dylib 12 | libsystem_blocks.dylib 13 | libsystem_network.dylib 14 | libTelephonyUtilDynamic.dylib 15 | libtzupdate.dylib 16 | libxpc.dylib 17 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/8_4_lib.txt: -------------------------------------------------------------------------------- 1 | libauthinstall.dylib 2 | libAVFAudio.dylib 3 | libAWDSupportFramework.dylib 4 | libAXSafeCategoryBundle.dylib 5 | libAXSpeechManager.dylib 6 | libdispatch.dylib 7 | libextension.dylib 8 | libLinearAlgebra.dylib 9 | libmecabra.dylib 10 | libnfshared.dylib 11 | libobjc.A.dylib 12 | libsystem_blocks.dylib 13 | libsystem_network.dylib 14 | libTelephonyUtilDynamic.dylib 15 | libtzupdate.dylib 16 | libxpc.dylib 17 | -------------------------------------------------------------------------------- /iOS/control: -------------------------------------------------------------------------------- 1 | Package: ws.hbang.runtimebrowser 2 | Name: RuntimeBrowser 3 | Version: 1.1 4 | Architecture: iphoneos-arm 5 | Description: Class browser for Objective-C runtime 6 | Maintainer: HASHBANG Productions 7 | Author: HASHBANG Productions 8 | Section: Utilities 9 | Icon: https://chariz.com/cdn/icon/runtimebrowser/icon@3x.png 10 | Depiction: https://chariz.com/get/runtimebrowser 11 | Tag: role::hacker, compatible_min::ios8.0 12 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBProtocolsTVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // RTBProtocolsTVC.h 3 | // OCRuntime 4 | // 5 | // Created by Nicolas Seriot on 27/04/15. 6 | // Copyright (c) 2015 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RTBProtocolsTVC : UITableViewController 12 | 13 | @property (nonatomic, retain) NSArray *protocolStubs; 14 | @property (nonatomic, retain) NSMutableArray *protocolStubsDictionaries; // [{'A':classStubs}, {'B':classStubs}] 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /UI/NSString+SyntaxColoring.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSTextView+SyntaxColoring.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 04.08.08. 6 | // Copyright 2008 seriot.ch. All rights reserved. 7 | // 8 | 9 | #if TARGET_OS_IPHONE 10 | #import 11 | #else 12 | #import 13 | #endif 14 | 15 | @interface NSString (SyntaxColoring) 16 | 17 | - (NSAttributedString *)colorizeWithKeywords:(NSArray *)keywords classes:(NSArray *)classes colorize:(BOOL)colorize; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/9_0_lib.txt: -------------------------------------------------------------------------------- 1 | libauthinstall.dylib 2 | libAVFAudio.dylib 3 | libAWDSupportFramework.dylib 4 | libAXSafeCategoryBundle.dylib 5 | libAXSpeechManager.dylib 6 | libdispatch.dylib 7 | libextension.dylib 8 | libLinearAlgebra.dylib 9 | libmecabra.dylib 10 | libnetwork.dylib 11 | libnfshared.dylib 12 | libobjc.A.dylib 13 | libprequelite.dylib 14 | libsystem_blocks.dylib 15 | libsystem_network.dylib 16 | libsystem_trace.dylib 17 | libTelephonyUtilDynamic.dylib 18 | libtzupdate.dylib 19 | libxpc.dylib 20 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/9_1_lib.txt: -------------------------------------------------------------------------------- 1 | libauthinstall.dylib 2 | libAVFAudio.dylib 3 | libAWDSupportFramework.dylib 4 | libAXSafeCategoryBundle.dylib 5 | libAXSpeechManager.dylib 6 | libdispatch.dylib 7 | libextension.dylib 8 | libLinearAlgebra.dylib 9 | libmecabra.dylib 10 | libnetwork.dylib 11 | libnfshared.dylib 12 | libobjc.A.dylib 13 | libprequelite.dylib 14 | libsystem_blocks.dylib 15 | libsystem_network.dylib 16 | libsystem_trace.dylib 17 | libTelephonyUtilDynamic.dylib 18 | libtzupdate.dylib 19 | libxpc.dylib 20 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/9_2_lib.txt: -------------------------------------------------------------------------------- 1 | libauthinstall.dylib 2 | libAVFAudio.dylib 3 | libAWDSupportFramework.dylib 4 | libAXSafeCategoryBundle.dylib 5 | libAXSpeechManager.dylib 6 | libdispatch.dylib 7 | libextension.dylib 8 | libLinearAlgebra.dylib 9 | libmecabra.dylib 10 | libnetwork.dylib 11 | libnfshared.dylib 12 | libobjc.A.dylib 13 | libprequelite.dylib 14 | libsystem_blocks.dylib 15 | libsystem_network.dylib 16 | libsystem_trace.dylib 17 | libTelephonyUtilDynamic.dylib 18 | libtzupdate.dylib 19 | libxpc.dylib 20 | -------------------------------------------------------------------------------- /runtime_cli/runtime_cli.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import "RTBRuntimeHeader.h" 3 | #import "RTBTypeDecoder2.h" 4 | 5 | int main (int argc, const char * argv[]) { 6 | 7 | @autoreleasepool { 8 | // NSString *header = [RTBRuntimeHeader headerForClass:[NSString class] displayPropertiesDefaultValues:YES]; 9 | // NSLog(@"-- %@", header); 10 | 11 | NSArray *a = [RTBTypeDecoder2 decodeTypes:@"^^d^I" flat:YES]; 12 | NSLog(@"-- %@", a); 13 | } 14 | 15 | return 0; 16 | } 17 | -------------------------------------------------------------------------------- /tools/ios_headers_history/readme.txt: -------------------------------------------------------------------------------- 1 | http://en.wikipedia.org/wiki/History_of_iOS 2 | 3 | 2007-06 1.0 4 | 2007-09 1.1 5 | 6 | 2008-07 2.0 7 | 2008-09 2.1 8 | 2008-11 2.2 9 | 10 | 2009-06 3.0 11 | 2009-09 3.1 12 | 2010-03 3.2 13 | 14 | 2010-06 4.0 15 | 2010-09 4.1 16 | 2010-11 4.2 17 | 2011-03 4.3 18 | 19 | 2011-12 5.0 20 | 2012-03 5.1 21 | 22 | 2012-09 6.0 23 | 2013-01 6.1 24 | 25 | 2013-09 7.0 26 | 2014-03 7.1 27 | 28 | 2014-09 8.0 29 | 2014-10 8.1 30 | 2015-03 8.2 31 | 2015-04 8.3 32 | 33 | 2015-09 9.0 34 | 2015-10 9.1 35 | -------------------------------------------------------------------------------- /iOS/AAA.m: -------------------------------------------------------------------------------- 1 | // 2 | // AAA.m 3 | // OCRuntime 4 | // 5 | // Created by Nicolas Seriot on 07/05/15. 6 | // Copyright (c) 2015 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import "AAA.h" 10 | 11 | @implementation AAA 12 | 13 | + (NSString *)myClassMethod { 14 | return @"x"; 15 | } 16 | 17 | - (NSString *)a:(NSString *)argA b:(NSString *)argB { 18 | return [NSString stringWithFormat:@"%@-%@", argA, argB]; 19 | } 20 | 21 | - (MyCStruct)sayHello { 22 | 23 | MyCStruct s; 24 | 25 | return s; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/9_3_lib.txt: -------------------------------------------------------------------------------- 1 | libAccessibility.dylib 2 | libauthinstall.dylib 3 | libAVFAudio.dylib 4 | libAWDSupportFramework.dylib 5 | libAXSafeCategoryBundle.dylib 6 | libAXSpeechManager.dylib 7 | libdispatch.dylib 8 | libextension.dylib 9 | libLinearAlgebra.dylib 10 | libmecabra.dylib 11 | libnetwork.dylib 12 | libnfshared.dylib 13 | libobjc.A.dylib 14 | libprequelite.dylib 15 | libsystem_blocks.dylib 16 | libsystem_network.dylib 17 | libsystem_trace.dylib 18 | libTelephonyUtilDynamic.dylib 19 | libtzupdate.dylib 20 | libxpc.dylib 21 | -------------------------------------------------------------------------------- /UI/NSMutableAttributedString+RTB.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSMutableAttributedString+RTB.h 3 | // OCRuntime 4 | // 5 | // Created by Nicolas Seriot on 7/21/13. 6 | // Copyright (c) 2013 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #if TARGET_OS_IPHONE 10 | #import 11 | #else 12 | @compatibility_alias UIColor NSColor; 13 | @compatibility_alias UIFont NSFont; 14 | #endif 15 | 16 | #import 17 | 18 | @interface NSMutableAttributedString (RTB) 19 | 20 | - (void)setTextColor:(UIColor *)color font:(UIFont *)font range:(NSRange)range; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBListTVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // ListViewController.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 18.01.09. 6 | // Copyright 2009 Sen:te. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RTBListTVC : UITableViewController 12 | 13 | @property (nonatomic, strong) NSMutableArray *classStubsDictionaries; // [{'A':classStubs}, {'B':classStubs}] 14 | @property (nonatomic, strong) NSArray *classStubs; 15 | @property (nonatomic, strong) NSString *titleForNavigationItem; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /iOS/entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | platform-application 6 | 7 | com.apple.private.skip-library-validation 8 | 9 | com.apple.private.security.no-container 10 | 11 | com.apple.security.system-groups 12 | 13 | systemgroup.com.apple.powerlog 14 | 15 | com.apple.springboard-ui.client 16 | 17 | 18 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBTreeTVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // RTBTreeTVC.h 3 | // OCRuntime 4 | // 5 | // Created by Nicolas Seriot on 7/17/13. 6 | // Copyright (c) 2013 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class RTBClassDisplayVC; 12 | @class RTBRuntime; 13 | 14 | @interface RTBTreeTVC : UITableViewController 15 | 16 | @property BOOL isSubLevel; 17 | @property (nonatomic, retain) NSArray *classStubs; 18 | @property (nonatomic, retain) RTBRuntime *allClasses; 19 | @property (nonatomic, retain) RTBClassDisplayVC *classDisplayVC; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /OSX/BrowserNode.h: -------------------------------------------------------------------------------- 1 | // 2 | // RootItem.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 2/20/11. 6 | // Copyright 2011 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface BrowserNode : NSObject { 12 | NSString *nodeName; 13 | NSArray *children; 14 | } 15 | 16 | @property (nonatomic, retain) NSString *nodeName; 17 | @property (nonatomic, retain) NSArray *children; 18 | 19 | + (BrowserNode *)rootNodeImages; 20 | + (BrowserNode *)rootNodeList; 21 | + (BrowserNode *)rootNodeTree; 22 | + (BrowserNode *)rootNodeProtocols; 23 | 24 | - (NSImage *)icon; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBSearchVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // SearchViewController.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 18.01.09. 6 | // Copyright 2009 Sen:te. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class RTBRuntime; 12 | 13 | @interface RTBSearchVC : UIViewController 14 | 15 | @property (nonatomic, retain) NSMutableArray *foundClasses; 16 | @property (nonatomic, retain) RTBRuntime *allClasses; 17 | 18 | @property (nonatomic, retain) IBOutlet UISearchBar *theSearchBar; 19 | @property (nonatomic, retain) IBOutlet UITableView *tableView; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /UI/NSMutableAttributedString+RTB.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSMutableAttributedString+RTB.m 3 | // OCRuntime 4 | // 5 | // Created by Nicolas Seriot on 7/21/13. 6 | // Copyright (c) 2013 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import "NSMutableAttributedString+RTB.h" 10 | 11 | @implementation NSMutableAttributedString (RTB) 12 | 13 | - (void)setTextColor:(UIColor *)color font:(UIFont *)font range:(NSRange)range { 14 | NSDictionary *d = @{ NSForegroundColorAttributeName : color, NSFontAttributeName : font }; 15 | if(range.location + range.length > [self length]) return; 16 | [self setAttributes:d range:range]; 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/4_0_pub.txt: -------------------------------------------------------------------------------- 1 | AVFoundation.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | AssetsLibrary.framework 5 | CoreData.framework 6 | CoreFoundation.framework 7 | CoreLocation.framework 8 | CoreMotion.framework 9 | CorePDF.framework 10 | CoreTelephony.framework 11 | EventKit.framework 12 | EventKitUI.framework 13 | ExternalAccessory.framework 14 | Foundation.framework 15 | GameKit.framework 16 | MapKit.framework 17 | MediaPlayer.framework 18 | MessageUI.framework 19 | MobileCoreServices.framework 20 | OpenGLES.framework 21 | QuartzCore.framework 22 | QuickLook.framework 23 | StoreKit.framework 24 | UIKit.framework 25 | iAd.framework 26 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/4_1_pub.txt: -------------------------------------------------------------------------------- 1 | AVFoundation.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | AssetsLibrary.framework 5 | CoreData.framework 6 | CoreFoundation.framework 7 | CoreLocation.framework 8 | CoreMotion.framework 9 | CorePDF.framework 10 | CoreTelephony.framework 11 | EventKit.framework 12 | EventKitUI.framework 13 | ExternalAccessory.framework 14 | Foundation.framework 15 | GameKit.framework 16 | MapKit.framework 17 | MediaPlayer.framework 18 | MessageUI.framework 19 | MobileCoreServices.framework 20 | OpenGLES.framework 21 | QuartzCore.framework 22 | QuickLook.framework 23 | StoreKit.framework 24 | UIKit.framework 25 | iAd.framework 26 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/4_2_pub.txt: -------------------------------------------------------------------------------- 1 | AVFoundation.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | AssetsLibrary.framework 5 | CoreData.framework 6 | CoreFoundation.framework 7 | CoreLocation.framework 8 | CoreMIDI.framework 9 | CoreMotion.framework 10 | CoreTelephony.framework 11 | EventKit.framework 12 | EventKitUI.framework 13 | ExternalAccessory.framework 14 | Foundation.framework 15 | GameKit.framework 16 | MapKit.framework 17 | MediaPlayer.framework 18 | MessageUI.framework 19 | MobileCoreServices.framework 20 | OpenGLES.framework 21 | QuartzCore.framework 22 | QuickLook.framework 23 | StoreKit.framework 24 | UIKit.framework 25 | iAd.framework 26 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/4_3_pub.txt: -------------------------------------------------------------------------------- 1 | AVFoundation.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | AssetsLibrary.framework 5 | CoreData.framework 6 | CoreFoundation.framework 7 | CoreLocation.framework 8 | CoreMIDI.framework 9 | CoreMotion.framework 10 | CoreTelephony.framework 11 | EventKit.framework 12 | EventKitUI.framework 13 | ExternalAccessory.framework 14 | Foundation.framework 15 | GameKit.framework 16 | MapKit.framework 17 | MediaPlayer.framework 18 | MessageUI.framework 19 | MobileCoreServices.framework 20 | OpenGLES.framework 21 | QuartzCore.framework 22 | QuickLook.framework 23 | StoreKit.framework 24 | UIKit.framework 25 | iAd.framework 26 | -------------------------------------------------------------------------------- /iOS/OCRuntimeTests/OCRuntimeTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // OCRuntimeTests.m 3 | // OCRuntimeTests 4 | // 5 | // Created by Nicolas Seriot on 6/14/13. 6 | // Copyright (c) 2013 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface OCRuntimeTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation OCRuntimeTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | 21 | // Set-up code here. 22 | } 23 | 24 | - (void)tearDown 25 | { 26 | // Tear-down code here. 27 | 28 | [super tearDown]; 29 | } 30 | 31 | - (void)testExample 32 | { 33 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /iOS/AAA.h: -------------------------------------------------------------------------------- 1 | // 2 | // AAA.h 3 | // OCRuntime 4 | // 5 | // Created by Nicolas Seriot on 07/05/15. 6 | // Copyright (c) 2015 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef struct CStruct { 12 | struct CGImage *x; 13 | } MyCStruct; 14 | 15 | @protocol AAAProtocol 16 | 17 | - (void)x:(id )x; 18 | 19 | @end 20 | 21 | @interface AAA : NSObject { 22 | struct dispatch_queue_s { }* _ipcQueue; 23 | } 24 | 25 | @property (retain) NSString *_retain; 26 | @property (atomic, retain) NSMutableArray *_atomic_retain; 27 | @property (nonatomic) MyCStruct myStruct; 28 | 29 | + (NSString *)myClassMethod; 30 | 31 | - (NSString *)a:(NSString *)argA b:(NSString *)argB; 32 | - (MyCStruct)sayHello; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /iOS/OCRuntimeTests/OCRuntimeTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // OCRuntime 4 | // 5 | // Created by Nicolas Seriot on 6/14/13. 6 | // Copyright (c) 2013 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "GCDWebServer.h" 11 | 12 | @class RTBRuntime; 13 | 14 | @interface RTBAppDelegate : UIResponder 15 | 16 | @property (strong, nonatomic) UIWindow *window; 17 | 18 | @property (strong, nonatomic) RTBRuntime *allClasses; 19 | @property (strong, nonatomic) GCDWebServer *webServer; 20 | 21 | - (GCDWebServerResponse *)responseForPath:(NSString *)path isWget:(BOOL)isWget; 22 | - (NSString *)myIPAddress; 23 | - (UInt16)serverPort; 24 | 25 | - (void)stopWebServer; 26 | - (void)startWebServer; 27 | 28 | - (void)useClass:(NSString *)className; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /runtime_cli/UnitTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.yourcompany.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /model/RTBProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ProtocolStub.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 24/04/15. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface RTBProtocol : NSObject 12 | 13 | @property (nonatomic, strong) NSString *protocolName; 14 | @property (nonatomic, strong) NSMutableSet *conformingClassesStubsSet; 15 | 16 | + (instancetype)protocolStubWithProtocolName:(NSString *)protocolName; 17 | 18 | - (NSArray *)sortedAdoptedProtocolsNames; 19 | - (NSArray *)sortedMethodsRequired:(BOOL)required instanceMethods:(BOOL)instanceMethods; 20 | 21 | // BrowserNode protocol 22 | 23 | - (NSArray *)children; // same as subclassesStubs 24 | - (NSString *)nodeName;// same as stubClassname 25 | - (NSString *)nodeInfo; 26 | - (BOOL)canBeSavedAsHeader; 27 | 28 | - (BOOL)hasChildren; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/5_0_pub.txt: -------------------------------------------------------------------------------- 1 | AVFoundation.framework 2 | Accounts.framework 3 | AddressBook.framework 4 | AddressBookUI.framework 5 | AssetsLibrary.framework 6 | CoreBluetooth.framework 7 | CoreData.framework 8 | CoreFoundation.framework 9 | CoreImage.framework 10 | CoreLocation.framework 11 | CoreMIDI.framework 12 | CoreMotion.framework 13 | CoreTelephony.framework 14 | CoreText.framework 15 | EventKit.framework 16 | EventKitUI.framework 17 | ExternalAccessory.framework 18 | Foundation.framework 19 | GLKit.framework 20 | GameKit.framework 21 | MapKit.framework 22 | MediaPlayer.framework 23 | MessageUI.framework 24 | MobileCoreServices.framework 25 | NewsstandKit.framework 26 | OpenGLES.framework 27 | QuartzCore.framework 28 | QuickLook.framework 29 | StoreKit.framework 30 | Twitter.framework 31 | UIKit.framework 32 | iAd.framework 33 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/5_1_pub.txt: -------------------------------------------------------------------------------- 1 | AVFoundation.framework 2 | Accounts.framework 3 | AddressBook.framework 4 | AddressBookUI.framework 5 | AssetsLibrary.framework 6 | CoreBluetooth.framework 7 | CoreData.framework 8 | CoreFoundation.framework 9 | CoreImage.framework 10 | CoreLocation.framework 11 | CoreMIDI.framework 12 | CoreMotion.framework 13 | CoreTelephony.framework 14 | CoreText.framework 15 | EventKit.framework 16 | EventKitUI.framework 17 | ExternalAccessory.framework 18 | Foundation.framework 19 | GLKit.framework 20 | GameKit.framework 21 | MapKit.framework 22 | MediaPlayer.framework 23 | MessageUI.framework 24 | MobileCoreServices.framework 25 | NewsstandKit.framework 26 | OpenGLES.framework 27 | QuartzCore.framework 28 | QuickLook.framework 29 | StoreKit.framework 30 | Twitter.framework 31 | UIKit.framework 32 | iAd.framework 33 | -------------------------------------------------------------------------------- /runtime_cli/UnitTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | ch.seriot.rtb.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /model/RTBMethod.h: -------------------------------------------------------------------------------- 1 | // 2 | // RTBMethod.h 3 | // OCRuntime 4 | // 5 | // Created by Nicolas Seriot on 06/05/15. 6 | // Copyright (c) 2015 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | // TODO: create RTBMethod to provide selector, description, return type and argument types 10 | 11 | #import 12 | #import 13 | 14 | @interface RTBMethod : NSObject 15 | 16 | + (instancetype)methodObjectWithMethod:(Method)method isClassMethod:(BOOL)isClassMethod; 17 | 18 | - (NSString *)headerDescriptionWithNewlineAfterArgs:(BOOL)newlineAfterArgs; 19 | 20 | - (NSString *)returnTypeEncoded; 21 | - (NSString *)returnTypeDecoded; 22 | - (NSArray *)argumentsTypesDecoded; 23 | - (NSString *)selectorString; 24 | - (SEL)selector; 25 | - (BOOL)hasArguments; 26 | 27 | - (NSString *)filePath; 28 | - (NSString *)symbolName; 29 | - (NSString *)categoryName; 30 | 31 | - (Method)method; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/6_0_pub.txt: -------------------------------------------------------------------------------- 1 | AVFoundation.framework 2 | Accounts.framework 3 | AdSupport.framework 4 | AddressBook.framework 5 | AddressBookUI.framework 6 | AssetsLibrary.framework 7 | CoreBluetooth.framework 8 | CoreData.framework 9 | CoreFoundation.framework 10 | CoreImage.framework 11 | CoreLocation.framework 12 | CoreMIDI.framework 13 | CoreMotion.framework 14 | CoreTelephony.framework 15 | CoreText.framework 16 | EventKit.framework 17 | EventKitUI.framework 18 | ExternalAccessory.framework 19 | Foundation.framework 20 | GLKit.framework 21 | GameKit.framework 22 | MapKit.framework 23 | MediaPlayer.framework 24 | MediaToolbox.framework 25 | MessageUI.framework 26 | MobileCoreServices.framework 27 | NewsstandKit.framework 28 | OpenGLES.framework 29 | PassKit.framework 30 | QuartzCore.framework 31 | QuickLook.framework 32 | Social.framework 33 | StoreKit.framework 34 | Twitter.framework 35 | UIKit.framework 36 | iAd.framework 37 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/6_1_pub.txt: -------------------------------------------------------------------------------- 1 | AVFoundation.framework 2 | Accounts.framework 3 | AdSupport.framework 4 | AddressBook.framework 5 | AddressBookUI.framework 6 | AssetsLibrary.framework 7 | CoreBluetooth.framework 8 | CoreData.framework 9 | CoreFoundation.framework 10 | CoreImage.framework 11 | CoreLocation.framework 12 | CoreMIDI.framework 13 | CoreMotion.framework 14 | CoreTelephony.framework 15 | CoreText.framework 16 | EventKit.framework 17 | EventKitUI.framework 18 | ExternalAccessory.framework 19 | Foundation.framework 20 | GLKit.framework 21 | GameKit.framework 22 | MapKit.framework 23 | MediaPlayer.framework 24 | MediaToolbox.framework 25 | MessageUI.framework 26 | MobileCoreServices.framework 27 | NewsstandKit.framework 28 | OpenGLES.framework 29 | PassKit.framework 30 | QuartzCore.framework 31 | QuickLook.framework 32 | Social.framework 33 | StoreKit.framework 34 | Twitter.framework 35 | UIKit.framework 36 | iAd.framework 37 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/7_0_pub.txt: -------------------------------------------------------------------------------- 1 | AVFoundation.framework 2 | Accounts.framework 3 | AdSupport.framework 4 | AddressBook.framework 5 | AddressBookUI.framework 6 | AssetsLibrary.framework 7 | CoreBluetooth.framework 8 | CoreData.framework 9 | CoreFoundation.framework 10 | CoreImage.framework 11 | CoreLocation.framework 12 | CoreMIDI.framework 13 | CoreMotion.framework 14 | CoreTelephony.framework 15 | CoreText.framework 16 | EventKit.framework 17 | EventKitUI.framework 18 | ExternalAccessory.framework 19 | Foundation.framework 20 | GLKit.framework 21 | GameKit.framework 22 | MapKit.framework 23 | MediaPlayer.framework 24 | MediaToolbox.framework 25 | MessageUI.framework 26 | MobileCoreServices.framework 27 | NewsstandKit.framework 28 | OpenGLES.framework 29 | PassKit.framework 30 | QuartzCore.framework 31 | QuickLook.framework 32 | Social.framework 33 | StoreKit.framework 34 | Twitter.framework 35 | UIKit.framework 36 | iAd.framework 37 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/2_1_pri.txt: -------------------------------------------------------------------------------- 1 | AccountSettings.framework 2 | AppSupport.framework 3 | BluetoothManager.framework 4 | CalendarUI.framework 5 | Celestial.framework 6 | CoreMedia.framework 7 | DataAccess.framework 8 | DataAccessExpress.framework 9 | DataMigration.framework 10 | GMM.framework 11 | ITSync.framework 12 | ManagedConfiguration.framework 13 | MapKit.framework 14 | MediaToolbox.framework 15 | Message.framework 16 | MessageUI.framework 17 | MessageUtilities.framework 18 | MusicLibrary.framework 19 | OfficeImport.framework 20 | PersistentConnection.framework 21 | PhotoLibrary.framework 22 | Preferences.framework 23 | SpringBoardServices.framework 24 | SpringBoardUI.framework 25 | Symbolication.framework 26 | TelephonyUI.framework 27 | URLify.framework 28 | VisualVoicemail.framework 29 | WebCore.framework 30 | WebKit.framework 31 | YouTube.framework 32 | iTunesStore.framework 33 | iTunesStoreUI.framework 34 | iWorkImport.framework 35 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBFrameworksTVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // FrameworksTableViewController.h 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 01.09.08. 6 | // Copyright 2008 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class RTBRuntime; 12 | 13 | @interface RTBFrameworksTVC : UITableViewController 14 | 15 | @property (strong, nonatomic) NSArray *publicFrameworks; 16 | @property (strong, nonatomic) NSArray *privateFrameworks; 17 | @property (strong, nonatomic) NSArray *bundleFrameworks; 18 | @property (strong, nonatomic) RTBRuntime *allClasses; 19 | 20 | @property (strong, nonatomic) NSArray *filteredPublicFrameworks; 21 | @property (strong, nonatomic) NSArray *filteredPrivateFrameworks; 22 | 23 | @property (strong, nonatomic) UIProgressView *progressView; 24 | @property (strong, nonatomic) UISearchController *searchController; 25 | 26 | - (IBAction)loadAllFrameworks:(id)sender; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/7_1_pub.txt: -------------------------------------------------------------------------------- 1 | Accounts.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | AdSupport.framework 5 | AssetsLibrary.framework 6 | AVFoundation.framework 7 | CFNetwork.framework 8 | CoreBluetooth.framework 9 | CoreData.framework 10 | CoreFoundation.framework 11 | CoreImage.framework 12 | CoreLocation.framework 13 | CoreMIDI.framework 14 | CoreMotion.framework 15 | CoreTelephony.framework 16 | CoreText.framework 17 | EventKit.framework 18 | EventKitUI.framework 19 | ExternalAccessory.framework 20 | Foundation.framework 21 | GameController.framework 22 | GameKit.framework 23 | GLKit.framework 24 | iAd.framework 25 | JavaScriptCore.framework 26 | MapKit.framework 27 | MediaPlayer.framework 28 | MediaToolbox.framework 29 | MessageUI.framework 30 | MobileCoreServices.framework 31 | MultipeerConnectivity.framework 32 | NewsstandKit.framework 33 | OpenGLES.framework 34 | PassKit.framework 35 | QuartzCore.framework 36 | QuickLook.framework 37 | SafariServices.framework 38 | Social.framework 39 | SpriteKit.framework 40 | StoreKit.framework 41 | Twitter.framework 42 | UIKit.framework 43 | -------------------------------------------------------------------------------- /iOS/OCRuntime/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | __TITLE__ 6 | 7 | 23 | 24 | 25 |
26 | ___ _ _ ___ 27 | | _ \_ _ _ _| |_(_)_ __ ___ | _ )_ _ _____ __ _____ ___ _ _ 28 | | / || | ' \ _| | ' \/ -_) | _ \ '_/ _ \ V V (_-// -_) '_| 29 | |_|_\\_,_|_||_\__|_|_|_|_\___| |___/_| \___/\_/\_//__/\___|_| 30 | 31 | 32 |

33 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBSplitViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // RTBSplitViewController.m 3 | // OCRuntime 4 | // 5 | // Created by Adam Demasi on 8/5/21. 6 | // Copyright © 2021 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import "RTBSplitViewController.h" 10 | 11 | @interface RTBSplitViewController () 12 | 13 | @end 14 | 15 | @implementation RTBSplitViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | 20 | self.delegate = self; 21 | } 22 | 23 | #pragma mark - UISplitViewControllerDelegate 24 | 25 | - (UISplitViewControllerColumn)splitViewController:(UISplitViewController *)splitViewController topColumnForCollapsingToProposedTopColumn:(UISplitViewControllerColumn)proposedTopColumn API_AVAILABLE(ios(14.0)) { 26 | if (@available(iOS 14.0, *)) { 27 | return UISplitViewControllerColumnPrimary; 28 | } 29 | return 0; 30 | } 31 | 32 | - (BOOL)splitViewController:(UISplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController { 33 | return YES; 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /iOS/RTBMyIP.m: -------------------------------------------------------------------------------- 1 | // 2 | // MyIP.m 3 | // ip 4 | // 5 | // Created by Nicolas Seriot on 12.11.08. 6 | // Copyright 2008 Sen:te. All rights reserved. 7 | // 8 | 9 | #import "RTBMyIP.h" 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | static RTBMyIP *sharedInstance = nil; 17 | 18 | @implementation RTBMyIP 19 | 20 | + (RTBMyIP *)sharedInstance { 21 | if (sharedInstance == nil) { 22 | sharedInstance = [[RTBMyIP alloc] init]; 23 | } 24 | return sharedInstance; 25 | } 26 | 27 | - (NSDictionary *)ipsForInterfaces { 28 | 29 | struct ifaddrs *list; 30 | if(getifaddrs(&list) < 0) { 31 | perror("getifaddrs"); 32 | return nil; 33 | } 34 | 35 | NSMutableDictionary *d = [NSMutableDictionary dictionary]; 36 | struct ifaddrs *cur; 37 | for(cur = list; cur != NULL; cur = cur->ifa_next) { 38 | if(cur->ifa_addr->sa_family != AF_INET) 39 | continue; 40 | 41 | struct sockaddr_in *addrStruct = (struct sockaddr_in *)cur->ifa_addr; 42 | NSString *name = [NSString stringWithUTF8String:cur->ifa_name]; 43 | NSString *addr = [NSString stringWithUTF8String:inet_ntoa(addrStruct->sin_addr)]; 44 | [d setValue:addr forKey:name]; 45 | } 46 | 47 | freeifaddrs(list); 48 | return d; 49 | } 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /iOS/OCRuntime/footer.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | Source code: https://github.com/hbang/RuntimeBrowser 4 | 5 | Authors: 6 | Ezra Epstein (eepstein@prajna.com) 7 | Nicolas Seriot (nicolas@seriot.ch) 8 | HASHBANG Productions 9 | 10 | Copyright © 2002 by Prajna IT Consulting 11 | Copyright © 2015 by Nicolas Seriot 12 | Copyright © 2021 by HASHBANG Productions 13 | 14 | THIS PROGRAM AND THIS CODE COME WITH ABSOLUTELY NO WARRANTY. THIS CODE HAS BEEN PROVIDED "AS IS" AND THE RESPONSIBILITY FOR ITS OPERATIONS IS 100% YOURS. 15 | 16 | RuntimeBrowser is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. 17 | 18 | RuntimeBrowser is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 19 | 20 | You should have received a copy of the GNU General Public License along with RuntimeBrowser (in a file called "COPYING.txt"); if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 | 22 | 23 | -------------------------------------------------------------------------------- /OSX/RuntimeBrowser/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "mac", 5 | "scale" : "2x", 6 | "size" : "16x16" 7 | }, 8 | { 9 | "size" : "16x16", 10 | "idiom" : "mac", 11 | "filename" : "RuntimeBrowser16x16.png", 12 | "scale" : "1x" 13 | }, 14 | { 15 | "size" : "32x32", 16 | "idiom" : "mac", 17 | "filename" : "RuntimeBrowser32x32.png", 18 | "scale" : "1x" 19 | }, 20 | { 21 | "idiom" : "mac", 22 | "scale" : "2x", 23 | "size" : "32x32" 24 | }, 25 | { 26 | "size" : "128x128", 27 | "idiom" : "mac", 28 | "filename" : "RuntimeBrowser128x128.png", 29 | "scale" : "1x" 30 | }, 31 | { 32 | "idiom" : "mac", 33 | "scale" : "2x", 34 | "size" : "128x128" 35 | }, 36 | { 37 | "size" : "256x256", 38 | "idiom" : "mac", 39 | "filename" : "RuntimeBrowser256x256.png", 40 | "scale" : "1x" 41 | }, 42 | { 43 | "idiom" : "mac", 44 | "scale" : "2x", 45 | "size" : "256x256" 46 | }, 47 | { 48 | "size" : "512x512", 49 | "idiom" : "mac", 50 | "filename" : "RuntimeBrowser512x512.png", 51 | "scale" : "1x" 52 | }, 53 | { 54 | "idiom" : "mac", 55 | "scale" : "2x", 56 | "size" : "512x512" 57 | } 58 | ], 59 | "info" : { 60 | "version" : 1, 61 | "author" : "xcode" 62 | } 63 | } -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBFrameworkCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // FrameworkCell.m 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 01.09.08. 6 | // Copyright 2008 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import "RTBFrameworkCell.h" 10 | 11 | @interface RTBFrameworkCell () 12 | @property (nonatomic, retain) IBOutlet UILabel *label; 13 | @property (nonatomic, retain) IBOutlet UIImageView *frameworkImageView; 14 | @end 15 | 16 | @implementation RTBFrameworkCell 17 | 18 | - (void)setFrameworkName:(NSString *)frameworkName { 19 | self.label.text = frameworkName; 20 | 21 | if (@available(iOS 13, *)) { 22 | if ([UIImage respondsToSelector:@selector(systemImageNamed:)]) { 23 | self.frameworkImageView.contentMode = UIViewContentModeCenter; 24 | [self.frameworkImageView setImage:[UIImage systemImageNamed:@"hammer.fill"]]; 25 | } 26 | } 27 | } 28 | 29 | - (NSString *)frameworkName { 30 | return self.label.text; 31 | } 32 | 33 | /* 34 | - (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier { 35 | if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) { 36 | // Initialization code 37 | } 38 | return self; 39 | } 40 | 41 | 42 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 43 | 44 | [super setSelected:selected animated:animated]; 45 | 46 | // Configure the view for the selected state 47 | } 48 | 49 | 50 | - (void)dealloc { 51 | [super dealloc]; 52 | } 53 | */ 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/8_0_pub.txt: -------------------------------------------------------------------------------- 1 | Accelerate.framework 2 | Accounts.framework 3 | AddressBook.framework 4 | AddressBookUI.framework 5 | AdSupport.framework 6 | AssetsLibrary.framework 7 | AudioToolbox.framework 8 | AVFoundation.framework 9 | AVKit.framework 10 | CFNetwork.framework 11 | CloudKit.framework 12 | CoreAudioKit.framework 13 | CoreAuthentication.framework 14 | CoreBluetooth.framework 15 | CoreData.framework 16 | CoreFoundation.framework 17 | CoreImage.framework 18 | CoreLocation.framework 19 | CoreMIDI.framework 20 | CoreMotion.framework 21 | CoreTelephony.framework 22 | CoreText.framework 23 | EventKit.framework 24 | EventKitUI.framework 25 | ExternalAccessory.framework 26 | Foundation.framework 27 | GameController.framework 28 | GLKit.framework 29 | HealthKit.framework 30 | HomeKit.framework 31 | iAd.framework 32 | JavaScriptCore.framework 33 | LocalAuthentication.framework 34 | MapKit.framework 35 | MediaPlayer.framework 36 | MediaToolbox.framework 37 | MessageUI.framework 38 | Metal.framework 39 | MobileCoreServices.framework 40 | MultipeerConnectivity.framework 41 | NetworkExtension.framework 42 | NewsstandKit.framework 43 | NotificationCenter.framework 44 | OpenGLES.framework 45 | PassKit.framework 46 | Photos.framework 47 | PhotosUI.framework 48 | PushKit.framework 49 | QuartzCore.framework 50 | QuickLook.framework 51 | SafariServices.framework 52 | SceneKit.framework 53 | Social.framework 54 | SpriteKit.framework 55 | StoreKit.framework 56 | Twitter.framework 57 | UIKit.framework 58 | WebKit.framework 59 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/8_1_pub.txt: -------------------------------------------------------------------------------- 1 | Accelerate.framework 2 | Accounts.framework 3 | AddressBook.framework 4 | AddressBookUI.framework 5 | AdSupport.framework 6 | AssetsLibrary.framework 7 | AudioToolbox.framework 8 | AVFoundation.framework 9 | AVKit.framework 10 | CFNetwork.framework 11 | CloudKit.framework 12 | CoreAudioKit.framework 13 | CoreAuthentication.framework 14 | CoreBluetooth.framework 15 | CoreData.framework 16 | CoreFoundation.framework 17 | CoreImage.framework 18 | CoreLocation.framework 19 | CoreMIDI.framework 20 | CoreMotion.framework 21 | CoreTelephony.framework 22 | CoreText.framework 23 | EventKit.framework 24 | EventKitUI.framework 25 | ExternalAccessory.framework 26 | Foundation.framework 27 | GameController.framework 28 | GLKit.framework 29 | HealthKit.framework 30 | HomeKit.framework 31 | iAd.framework 32 | JavaScriptCore.framework 33 | LocalAuthentication.framework 34 | MapKit.framework 35 | MediaPlayer.framework 36 | MediaToolbox.framework 37 | MessageUI.framework 38 | Metal.framework 39 | MobileCoreServices.framework 40 | MultipeerConnectivity.framework 41 | NetworkExtension.framework 42 | NewsstandKit.framework 43 | NotificationCenter.framework 44 | OpenGLES.framework 45 | PassKit.framework 46 | Photos.framework 47 | PhotosUI.framework 48 | PushKit.framework 49 | QuartzCore.framework 50 | QuickLook.framework 51 | SafariServices.framework 52 | SceneKit.framework 53 | Social.framework 54 | SpriteKit.framework 55 | StoreKit.framework 56 | Twitter.framework 57 | UIKit.framework 58 | WebKit.framework 59 | -------------------------------------------------------------------------------- /model/RTBRuntimeHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // RTBTypeParser.h 3 | // runtime_cli 4 | // 5 | // Created by Nicolas Seriot on 02/04/15. 6 | // 7 | // 8 | 9 | #define USE_NEW_DECODER 0 10 | 11 | #import 12 | #import "RTBProtocol.h" 13 | 14 | #if (! TARGET_OS_IPHONE) 15 | #import 16 | #else 17 | #import 18 | #import 19 | #endif 20 | 21 | @interface RTBRuntimeHeader : NSObject 22 | 23 | + (NSString *)decodedTypeForEncodedString:(NSString *)s; 24 | 25 | + (NSString *)descriptionForPropertyWithName:(NSString *)name 26 | attributes:(NSString *)attributes 27 | displayPropertiesDefaultValues:(BOOL)displayPropertiesDefaultValues; 28 | 29 | + (NSString *)headerForClass:(Class)aClass displayPropertiesDefaultValues:(BOOL)displayPropertiesDefaultValues; 30 | 31 | + (NSString *)headerForProtocol:(RTBProtocol *)protocol; 32 | 33 | + (NSString *)descriptionForMethodName:(NSString *)methodName 34 | returnType:(NSString *)returnType 35 | argumentTypes:(NSArray *)argumentsTypes 36 | newlineAfterArgs:(BOOL)newlineAfterArgs 37 | isClassMethod:(BOOL)isClassMethod; 38 | 39 | + (NSString *)descriptionForProtocol:(Protocol *)protocol 40 | selector:(SEL)selector 41 | isRequiredMethod:(BOOL)isRequiredMethod 42 | isInstanceMethod:(BOOL)isInstanceMethod; 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /OSX/RuntimeBrowser_main.m: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | 4 | RuntimeBrowser_main.m 5 | 6 | Author: Ezra Epstein (eepstein@prajna.com) 7 | 8 | Copyright (c) 2002 by Prajna IT Consulting. 9 | http://www.prajna.com 10 | 11 | ======================================================================== 12 | 13 | THIS PROGRAM AND THIS CODE COME WITH ABSOLUTELY NO WARRANTY. 14 | THIS CODE HAS BEEN PROVIDED "AS IS" AND THE RESPONSIBILITY 15 | FOR ITS OPERATIONS IS 100% YOURS. 16 | 17 | ======================================================================== 18 | This file is part of RuntimeBrowser. 19 | 20 | RuntimeBrowser is free software; you can redistribute it and/or modify 21 | it under the terms of the GNU General Public License as published by 22 | the Free Software Foundation; either version 2 of the License, or 23 | (at your option) any later version. 24 | 25 | RuntimeBrowser is distributed in the hope that it will be useful, 26 | but WITHOUT ANY WARRANTY; without even the implied warranty of 27 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 28 | GNU General Public License for more details. 29 | 30 | You should have received a copy of the GNU General Public License 31 | along with RuntimeBrowser (in a file called "COPYING.txt"); if not, 32 | write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 33 | Boston, MA 02111-1307 USA 34 | 35 | */ 36 | 37 | #import 38 | 39 | int main(int argc, const char *argv[]) { 40 | return NSApplicationMain(argc, argv); 41 | } 42 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/8_2_pub.txt: -------------------------------------------------------------------------------- 1 | Accelerate.framework 2 | Accounts.framework 3 | AddressBook.framework 4 | AddressBookUI.framework 5 | AdSupport.framework 6 | AssetsLibrary.framework 7 | AudioToolbox.framework 8 | AVFoundation.framework 9 | AVKit.framework 10 | CFNetwork.framework 11 | CloudKit.framework 12 | CoreAudioKit.framework 13 | CoreAuthentication.framework 14 | CoreBluetooth.framework 15 | CoreData.framework 16 | CoreFoundation.framework 17 | CoreImage.framework 18 | CoreLocation.framework 19 | CoreMIDI.framework 20 | CoreMotion.framework 21 | CoreTelephony.framework 22 | CoreText.framework 23 | EventKit.framework 24 | EventKitUI.framework 25 | ExternalAccessory.framework 26 | Foundation.framework 27 | GameController.framework 28 | GLKit.framework 29 | HealthKit.framework 30 | HomeKit.framework 31 | iAd.framework 32 | JavaScriptCore.framework 33 | LocalAuthentication.framework 34 | MapKit.framework 35 | MediaPlayer.framework 36 | MediaToolbox.framework 37 | MessageUI.framework 38 | Metal.framework 39 | MobileCoreServices.framework 40 | MultipeerConnectivity.framework 41 | NetworkExtension.framework 42 | NewsstandKit.framework 43 | NotificationCenter.framework 44 | OpenGLES.framework 45 | PassKit.framework 46 | Photos.framework 47 | PhotosUI.framework 48 | PushKit.framework 49 | QuartzCore.framework 50 | QuickLook.framework 51 | SafariServices.framework 52 | SceneKit.framework 53 | Social.framework 54 | SpriteKit.framework 55 | StoreKit.framework 56 | Twitter.framework 57 | UIKit.framework 58 | WatchKit.framework 59 | WebKit.framework 60 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/8_3_pub.txt: -------------------------------------------------------------------------------- 1 | Accounts.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | AdSupport.framework 5 | AssetsLibrary.framework 6 | AudioToolbox.framework 7 | AVFoundation.framework 8 | AVKit.framework 9 | CFNetwork.framework 10 | CloudKit.framework 11 | CoreAudioKit.framework 12 | CoreAuthentication.framework 13 | CoreBluetooth.framework 14 | CoreData.framework 15 | CoreFoundation.framework 16 | CoreImage.framework 17 | CoreLocation.framework 18 | CoreMIDI.framework 19 | CoreMotion.framework 20 | CoreTelephony.framework 21 | CoreText.framework 22 | EventKit.framework 23 | EventKitUI.framework 24 | ExternalAccessory.framework 25 | Foundation.framework 26 | GameController.framework 27 | GLKit.framework 28 | HealthKit.framework 29 | HomeKit.framework 30 | iAd.framework 31 | JavaScriptCore.framework 32 | LocalAuthentication.framework 33 | MapKit.framework 34 | MediaPlayer.framework 35 | MediaToolbox.framework 36 | MessageUI.framework 37 | Metal.framework 38 | MobileCoreServices.framework 39 | MultipeerConnectivity.framework 40 | NetworkExtension.framework 41 | NewsstandKit.framework 42 | NotificationCenter.framework 43 | OpenGLES.framework 44 | PassKit.framework 45 | Photos.framework 46 | PhotosUI.framework 47 | PushKit.framework 48 | QuartzCore.framework 49 | QuickLook.framework 50 | SafariServices.framework 51 | SceneKit.framework 52 | SharedUtils.framework 53 | Social.framework 54 | SpriteKit.framework 55 | StoreKit.framework 56 | Twitter.framework 57 | UIKit.framework 58 | WatchKit.framework 59 | WebKit.framework 60 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/8_4_pub.txt: -------------------------------------------------------------------------------- 1 | Accounts.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | AdSupport.framework 5 | AssetsLibrary.framework 6 | AudioToolbox.framework 7 | AVFoundation.framework 8 | AVKit.framework 9 | CFNetwork.framework 10 | CloudKit.framework 11 | CoreAudioKit.framework 12 | CoreAuthentication.framework 13 | CoreBluetooth.framework 14 | CoreData.framework 15 | CoreFoundation.framework 16 | CoreImage.framework 17 | CoreLocation.framework 18 | CoreMIDI.framework 19 | CoreMotion.framework 20 | CoreTelephony.framework 21 | CoreText.framework 22 | EventKit.framework 23 | EventKitUI.framework 24 | ExternalAccessory.framework 25 | Foundation.framework 26 | GameController.framework 27 | GLKit.framework 28 | HealthKit.framework 29 | HomeKit.framework 30 | iAd.framework 31 | JavaScriptCore.framework 32 | LocalAuthentication.framework 33 | MapKit.framework 34 | MediaPlayer.framework 35 | MediaToolbox.framework 36 | MessageUI.framework 37 | Metal.framework 38 | MobileCoreServices.framework 39 | MultipeerConnectivity.framework 40 | NetworkExtension.framework 41 | NewsstandKit.framework 42 | NotificationCenter.framework 43 | OpenGLES.framework 44 | PassKit.framework 45 | Photos.framework 46 | PhotosUI.framework 47 | PushKit.framework 48 | QuartzCore.framework 49 | QuickLook.framework 50 | SafariServices.framework 51 | SceneKit.framework 52 | SharedUtils.framework 53 | Social.framework 54 | SpriteKit.framework 55 | StoreKit.framework 56 | Twitter.framework 57 | UIKit.framework 58 | WatchKit.framework 59 | WebKit.framework 60 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/3_0_pri.txt: -------------------------------------------------------------------------------- 1 | AccountSettings.framework 2 | AccountSettingsUI.framework 3 | ActorKit.framework 4 | AppSupport.framework 5 | ApplePushService.framework 6 | BluetoothManager.framework 7 | Calendar.framework 8 | CalendarUI.framework 9 | Celestial.framework 10 | ChatKit.framework 11 | CoreMedia.framework 12 | CoreTelephony.framework 13 | DAVKit.framework 14 | DataAccess.framework 15 | DataAccessExpress.framework 16 | DataDetectorsCore.framework 17 | DataDetectorsUI.framework 18 | DataMigration.framework 19 | GMM.framework 20 | IAP.framework 21 | ITSync.framework 22 | JavaScriptCore.framework 23 | MIME.framework 24 | ManagedConfiguration.framework 25 | MediaToolbox.framework 26 | Message.framework 27 | MobileQuickLook.framework 28 | MobileWirelessSync.framework 29 | MusicLibrary.framework 30 | MusicLibraryDDB.framework 31 | Notes.framework 32 | OfficeImport.framework 33 | PersistentConnection.framework 34 | PhotoLibrary.framework 35 | Preferences.framework 36 | ProtocolBuffer.framework 37 | SMSCTServer.framework 38 | ScreenReaderCore.framework 39 | Search.framework 40 | SportsTrainer.framework 41 | SpringBoardServices.framework 42 | SpringBoardUI.framework 43 | Symbolication.framework 44 | TelephonyUI.framework 45 | TextInput.framework 46 | UIAccessibility.framework 47 | VisualVoicemail.framework 48 | VoiceMemos.framework 49 | VoiceServices.framework 50 | WebCore.framework 51 | WebKit.framework 52 | WebUI.framework 53 | YouTube.framework 54 | iCalendar.framework 55 | iTunesStore.framework 56 | iTunesStoreUI.framework 57 | iWorkImport.framework 58 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/3_1_pri.txt: -------------------------------------------------------------------------------- 1 | AXRuntime.framework 2 | AccountSettings.framework 3 | AccountSettingsUI.framework 4 | ActorKit.framework 5 | AggregateDictionary.framework 6 | AppSupport.framework 7 | ApplePushService.framework 8 | BluetoothManager.framework 9 | Calendar.framework 10 | CalendarUI.framework 11 | Celestial.framework 12 | ChatKit.framework 13 | CoreMedia.framework 14 | CoreTelephony.framework 15 | DAVKit.framework 16 | DataAccess.framework 17 | DataAccessExpress.framework 18 | DataDetectorsCore.framework 19 | DataDetectorsUI.framework 20 | DataMigration.framework 21 | GMM.framework 22 | IAP.framework 23 | ITSync.framework 24 | JSON.framework 25 | JavaScriptCore.framework 26 | MIME.framework 27 | ManagedConfiguration.framework 28 | MediaToolbox.framework 29 | Message.framework 30 | MobileQuickLook.framework 31 | MobileWirelessSync.framework 32 | MusicLibrary.framework 33 | Notes.framework 34 | OfficeImport.framework 35 | PersistentConnection.framework 36 | PhotoLibrary.framework 37 | Preferences.framework 38 | ProtocolBuffer.framework 39 | SMSCTServer.framework 40 | ScreenReaderCore.framework 41 | Search.framework 42 | SportsTrainer.framework 43 | SpringBoardServices.framework 44 | SpringBoardUI.framework 45 | Symbolication.framework 46 | TelephonyUI.framework 47 | TextInput.framework 48 | UIAccessibility.framework 49 | VisualVoicemail.framework 50 | VoiceMemos.framework 51 | VoiceServices.framework 52 | WebCore.framework 53 | WebKit.framework 54 | WebUI.framework 55 | YouTube.framework 56 | iCalendar.framework 57 | iTunesStore.framework 58 | iTunesStoreUI.framework 59 | iWorkImport.framework 60 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/9_0_pub.txt: -------------------------------------------------------------------------------- 1 | Accounts.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | AdSupport.framework 5 | AssetsLibrary.framework 6 | AudioToolbox.framework 7 | AVFoundation.framework 8 | AVKit.framework 9 | CFNetwork.framework 10 | CloudKit.framework 11 | Contacts.framework 12 | ContactsUI.framework 13 | CoreAudioKit.framework 14 | CoreBluetooth.framework 15 | CoreData.framework 16 | CoreFoundation.framework 17 | CoreImage.framework 18 | CoreLocation.framework 19 | CoreMedia.framework 20 | CoreMIDI.framework 21 | CoreMotion.framework 22 | CoreSpotlight.framework 23 | CoreTelephony.framework 24 | CoreText.framework 25 | EventKit.framework 26 | EventKitUI.framework 27 | ExternalAccessory.framework 28 | Foundation.framework 29 | GameController.framework 30 | GameplayKit.framework 31 | GLKit.framework 32 | HealthKit.framework 33 | HomeKit.framework 34 | iAd.framework 35 | JavaScriptCore.framework 36 | LocalAuthentication.framework 37 | MapKit.framework 38 | MediaPlayer.framework 39 | MediaToolbox.framework 40 | MessageUI.framework 41 | Metal.framework 42 | MetalKit.framework 43 | MetalPerformanceShaders.framework 44 | MobileCoreServices.framework 45 | ModelIO.framework 46 | MultipeerConnectivity.framework 47 | NetworkExtension.framework 48 | NewsstandKit.framework 49 | NotificationCenter.framework 50 | OpenGLES.framework 51 | PassKit.framework 52 | Photos.framework 53 | PhotosUI.framework 54 | PushKit.framework 55 | QuartzCore.framework 56 | QuickLook.framework 57 | ReplayKit.framework 58 | SafariServices.framework 59 | SceneKit.framework 60 | Social.framework 61 | SpriteKit.framework 62 | StoreKit.framework 63 | Twitter.framework 64 | UIKit.framework 65 | WatchConnectivity.framework 66 | WatchKit.framework 67 | WebKit.framework 68 | -------------------------------------------------------------------------------- /tools/deprecated/sort_ios_headers.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # $ cd headers 4 | # $ python sort_ios_headers.py 5 | 6 | import os 7 | import shutil 8 | 9 | def ios_path_in_header(header_path): 10 | count = 0 11 | for line in open(header_path): 12 | count += 1 13 | if count == 2: 14 | # line expected to be like " Image: /System/Library/Frameworks/Accounts.framework/Accounts" 15 | comps = line.split(" ") 16 | if len(comps) == 5: 17 | return comps[4][:-1] 18 | break 19 | return None 20 | 21 | def dst_dir_for_ios_path(ios_path): 22 | ios_path_comps_full = ios_path.split(os.path.sep) 23 | 24 | if len(ios_path_comps_full) < 2: 25 | return None 26 | 27 | is_framework = ios_path_comps_full[-2].endswith('.framework') 28 | 29 | if is_framework: 30 | ios_path_comps = ios_path_comps_full[3:-1] 31 | else: 32 | ios_path_comps = ["lib", ios_path_comps_full[-1]] 33 | 34 | return os.path.sep.join(ios_path_comps) 35 | 36 | for root, dirs, files in os.walk('.'): 37 | 38 | headers = (f for f in files if f.endswith(".h")) 39 | 40 | for f in headers: 41 | filename = os.path.splitext(f)[0] 42 | 43 | path = os.path.join(root, f) 44 | 45 | ios_path = ios_path_in_header(path) 46 | 47 | dst_dir = dst_dir_for_ios_path(ios_path) 48 | if not dst_dir: 49 | print "-- can't find dst_dir for", ios_path 50 | continue 51 | 52 | if not os.path.exists(dst_dir): 53 | os.makedirs(dst_dir) 54 | 55 | dst = os.path.join(dst_dir, f) 56 | 57 | print dst 58 | 59 | shutil.move(path, dst) 60 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/9_1_pub.txt: -------------------------------------------------------------------------------- 1 | Accounts.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | AdSupport.framework 5 | AssetsLibrary.framework 6 | AudioToolbox.framework 7 | AVFoundation.framework 8 | AVKit.framework 9 | CFNetwork.framework 10 | CloudKit.framework 11 | Contacts.framework 12 | ContactsUI.framework 13 | CoreAudioKit.framework 14 | CoreBluetooth.framework 15 | CoreData.framework 16 | CoreFoundation.framework 17 | CoreImage.framework 18 | CoreLocation.framework 19 | CoreMedia.framework 20 | CoreMIDI.framework 21 | CoreMotion.framework 22 | CoreSpotlight.framework 23 | CoreTelephony.framework 24 | CoreText.framework 25 | EventKit.framework 26 | EventKitUI.framework 27 | ExternalAccessory.framework 28 | Foundation.framework 29 | GameController.framework 30 | GameplayKit.framework 31 | GLKit.framework 32 | HealthKit.framework 33 | HomeKit.framework 34 | iAd.framework 35 | JavaScriptCore.framework 36 | LocalAuthentication.framework 37 | MapKit.framework 38 | MediaPlayer.framework 39 | MediaToolbox.framework 40 | MessageUI.framework 41 | Metal.framework 42 | MetalKit.framework 43 | MetalPerformanceShaders.framework 44 | MobileCoreServices.framework 45 | ModelIO.framework 46 | MultipeerConnectivity.framework 47 | NetworkExtension.framework 48 | NewsstandKit.framework 49 | NotificationCenter.framework 50 | OpenGLES.framework 51 | PassKit.framework 52 | Photos.framework 53 | PhotosUI.framework 54 | PushKit.framework 55 | QuartzCore.framework 56 | QuickLook.framework 57 | ReplayKit.framework 58 | SafariServices.framework 59 | SceneKit.framework 60 | SharedUtils.framework 61 | Social.framework 62 | SpriteKit.framework 63 | StoreKit.framework 64 | Twitter.framework 65 | UIKit.framework 66 | WatchConnectivity.framework 67 | WatchKit.framework 68 | WebKit.framework 69 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/9_2_pub.txt: -------------------------------------------------------------------------------- 1 | Accounts.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | AdSupport.framework 5 | AssetsLibrary.framework 6 | AudioToolbox.framework 7 | AVFoundation.framework 8 | AVKit.framework 9 | CFNetwork.framework 10 | CloudKit.framework 11 | Contacts.framework 12 | ContactsUI.framework 13 | CoreAudioKit.framework 14 | CoreBluetooth.framework 15 | CoreData.framework 16 | CoreFoundation.framework 17 | CoreImage.framework 18 | CoreLocation.framework 19 | CoreMedia.framework 20 | CoreMIDI.framework 21 | CoreMotion.framework 22 | CoreSpotlight.framework 23 | CoreTelephony.framework 24 | CoreText.framework 25 | EventKit.framework 26 | EventKitUI.framework 27 | ExternalAccessory.framework 28 | Foundation.framework 29 | GameController.framework 30 | GameplayKit.framework 31 | GLKit.framework 32 | HealthKit.framework 33 | HomeKit.framework 34 | iAd.framework 35 | JavaScriptCore.framework 36 | LocalAuthentication.framework 37 | MapKit.framework 38 | MediaPlayer.framework 39 | MediaToolbox.framework 40 | MessageUI.framework 41 | Metal.framework 42 | MetalKit.framework 43 | MetalPerformanceShaders.framework 44 | MobileCoreServices.framework 45 | ModelIO.framework 46 | MultipeerConnectivity.framework 47 | NetworkExtension.framework 48 | NewsstandKit.framework 49 | NotificationCenter.framework 50 | OpenGLES.framework 51 | PassKit.framework 52 | Photos.framework 53 | PhotosUI.framework 54 | PushKit.framework 55 | QuartzCore.framework 56 | QuickLook.framework 57 | ReplayKit.framework 58 | SafariServices.framework 59 | SceneKit.framework 60 | SharedUtils.framework 61 | Social.framework 62 | SpriteKit.framework 63 | StoreKit.framework 64 | Twitter.framework 65 | UIKit.framework 66 | WatchConnectivity.framework 67 | WatchKit.framework 68 | WebKit.framework 69 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/9_3_pub.txt: -------------------------------------------------------------------------------- 1 | Accounts.framework 2 | AddressBook.framework 3 | AddressBookUI.framework 4 | AdSupport.framework 5 | AssetsLibrary.framework 6 | AudioToolbox.framework 7 | AVFoundation.framework 8 | AVKit.framework 9 | CFNetwork.framework 10 | CloudKit.framework 11 | Contacts.framework 12 | ContactsUI.framework 13 | CoreAudioKit.framework 14 | CoreBluetooth.framework 15 | CoreData.framework 16 | CoreFoundation.framework 17 | CoreImage.framework 18 | CoreLocation.framework 19 | CoreMedia.framework 20 | CoreMIDI.framework 21 | CoreMotion.framework 22 | CoreSpotlight.framework 23 | CoreTelephony.framework 24 | CoreText.framework 25 | EventKit.framework 26 | EventKitUI.framework 27 | ExternalAccessory.framework 28 | Foundation.framework 29 | GameController.framework 30 | GameplayKit.framework 31 | GLKit.framework 32 | HealthKit.framework 33 | HealthKitUI.framework 34 | HomeKit.framework 35 | iAd.framework 36 | JavaScriptCore.framework 37 | LocalAuthentication.framework 38 | MapKit.framework 39 | MediaPlayer.framework 40 | MediaToolbox.framework 41 | MessageUI.framework 42 | Metal.framework 43 | MetalKit.framework 44 | MetalPerformanceShaders.framework 45 | MobileCoreServices.framework 46 | ModelIO.framework 47 | MultipeerConnectivity.framework 48 | NetworkExtension.framework 49 | NewsstandKit.framework 50 | NotificationCenter.framework 51 | OpenGLES.framework 52 | PassKit.framework 53 | Photos.framework 54 | PhotosUI.framework 55 | PushKit.framework 56 | QuartzCore.framework 57 | QuickLook.framework 58 | ReplayKit.framework 59 | SafariServices.framework 60 | SceneKit.framework 61 | SharedUtils.framework 62 | Social.framework 63 | SpriteKit.framework 64 | StoreKit.framework 65 | Twitter.framework 66 | UIKit.framework 67 | WatchConnectivity.framework 68 | WatchKit.framework 69 | WebKit.framework 70 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBClassCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // ClassCell.m 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 13.08.08. 6 | // Copyright 2008 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import "RTBClassCell.h" 10 | #import "RTBClassDisplayVC.h" 11 | 12 | @interface RTBClassCell () 13 | @property (nonatomic, retain) IBOutlet UILabel *label; 14 | @property (nonatomic, retain) IBOutlet UIButton *button; 15 | @end 16 | 17 | @implementation RTBClassCell 18 | 19 | - (void)setClassName:(NSString *)s { 20 | _label.text = s; 21 | 22 | if (@available(iOS 13, *)) { 23 | if ([UIImage respondsToSelector:@selector(systemImageNamed:)]) { 24 | [self.button setImage:[UIImage systemImageNamed:@"doc.text.fill"] forState:UIControlStateNormal]; 25 | } 26 | } 27 | } 28 | 29 | - (NSString *)className { 30 | return _label.text; 31 | } 32 | 33 | - (IBAction)showHeaders:(id)sender { 34 | UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; 35 | RTBClassDisplayVC *classDisplayVC = (RTBClassDisplayVC *)[sb instantiateViewControllerWithIdentifier:@"RTBClassDisplayVC"]; 36 | classDisplayVC.className = _label.text; 37 | 38 | UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:classDisplayVC]; 39 | 40 | UISplitViewController *splitViewController = [self splitViewController]; 41 | [splitViewController showDetailViewController:navigationController sender:self]; 42 | } 43 | 44 | - (UISplitViewController *)splitViewController { 45 | UIResponder *responder = self; 46 | while (![responder isKindOfClass:UIViewController.class]) { 47 | responder = [responder nextResponder]; 48 | } 49 | return [(UIViewController *)responder splitViewController]; 50 | } 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /OSX/ToDo.txt: -------------------------------------------------------------------------------- 1 | 2 | RuntimeBrowser 3 | To do list (ToDo.txt). 4 | ====================== 5 | April 30, 2002 6 | 7 | Add: 8 | 9 | Preferences Panel: 10 | Filename prefix 11 | BOOL: show NSFramework_... classes 12 | BOOL: use typedefs for structs 13 | variable names for: arguments, categories, struct/union variables 14 | 15 | Find: 16 | Find class by name: if the Browser is the 1st responder -- add a "Search Results" to the root array and handle it specially. Double-click on browser: if on a Search Result(s) select the corresponding Class in its regular location in the browser (as Search Results displays classes out of their hierarchy: no sub classes, etc.) 17 | 18 | Save Subclasses: 19 | Confirm if of a root class (might be lots of classes) 20 | Save to a directory -- show progress 21 | 22 | Save All: 23 | Confirm (lots of classes) 24 | Save to a directory -- show progress 25 | 26 | About: 27 | Needs a proper About panel. 28 | 29 | Help: 30 | How to use RB. 31 | COPYING, etc. -- ad a help page with the GPL 32 | 33 | Structs: 34 | Implement the typedefs && generalization (and formatting) code for structs/unions and output the structs as typedefs early in the header and reference them in other parts by name -- unique by structure of the struct (NSString uniquing -- basically a reverse dictionary with the struct def string as the key and the struct name as the value). 35 | 36 | 37 | NOTES: 38 | 39 | bit fields have a modified format -- implement support if we're on a system that uses the new format. 40 | 41 | category names -- are property of a private cache... 42 | protocols -- seem not to load on this version (NT)... try elsewhere 43 | 44 | empty categories -- BUG? classes w/out methods show their first category methods as class methods. 45 | 46 | 47 | Search for PENDING and fix what needs fixing. -------------------------------------------------------------------------------- /OSX/BrowserCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // BrowserCell.m 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 2/21/11. 6 | // Copyright 2011 IICT. All rights reserved. 7 | // 8 | 9 | #import "BrowserCell.h" 10 | #import "RTBProtocol.h" 11 | #import "RTBClass.h" 12 | #import "BrowserNode.h" 13 | 14 | @implementation BrowserCell 15 | 16 | + (NSImage *)branchImage { 17 | return nil; 18 | } 19 | 20 | + (NSImage *)highlightedBranchImage { 21 | return nil; 22 | } 23 | 24 | + (void)thisClassIsPartOfTheRuntimeBrowser {} 25 | 26 | - (NSImage *)iconForPath:(NSString *)s { 27 | 28 | NSString *appExtension = @".app"; 29 | NSRange range = [s rangeOfString:appExtension]; 30 | if(range.location != NSNotFound) { 31 | NSString *path = [s substringToIndex:(range.location + [appExtension length])]; 32 | return [[NSWorkspace sharedWorkspace] iconForFile:path]; 33 | } 34 | 35 | NSArray *extensions = [NSArray arrayWithObjects:@".dylib", @".framework", @".bundle", @".dylib", nil]; 36 | for(NSString *ext in extensions) { 37 | if([s rangeOfString:ext].location != NSNotFound) return [NSImage imageNamed:@"framework.tiff"]; 38 | } 39 | 40 | return [NSImage imageNamed:@"class.tiff"]; 41 | } 42 | 43 | - (void)setObjectValue:(id)obj { 44 | 45 | NSImage *icon = nil; 46 | NSString *objectValue = nil; 47 | 48 | if([obj isKindOfClass:[RTBProtocol class]]) { 49 | icon = [NSImage imageNamed:@"protocol.tiff"]; 50 | objectValue = [obj nodeName]; 51 | } else if([obj isKindOfClass:[RTBClass class]]) { 52 | icon = [NSImage imageNamed:@"class.tiff"]; 53 | objectValue = [obj nodeName]; 54 | } else if([obj isKindOfClass:[BrowserNode class]]) { 55 | icon = [self iconForPath:[obj nodeName]]; 56 | objectValue = [[obj nodeName] lastPathComponent]; 57 | } 58 | 59 | [icon setSize:NSMakeSize(16,16)]; 60 | 61 | [self setImage:icon]; 62 | 63 | [super setObjectValue:objectValue]; 64 | } 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /iOS/OCRuntime/OCRuntime-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | RuntimeBrowser 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | UILaunchStoryboardName 28 | Launch Screen 29 | UIMainStoryboardFile 30 | Main 31 | UIRequiredDeviceCapabilities 32 | 33 | armv7 34 | 35 | UIStatusBarTintParameters 36 | 37 | UINavigationBar 38 | 39 | Style 40 | UIBarStyleDefault 41 | Translucent 42 | 43 | 44 | 45 | UISupportedInterfaceOrientations 46 | 47 | UIInterfaceOrientationPortrait 48 | UIInterfaceOrientationLandscapeLeft 49 | UIInterfaceOrientationLandscapeRight 50 | 51 | UISupportedInterfaceOrientations~ipad 52 | 53 | UIInterfaceOrientationPortrait 54 | UIInterfaceOrientationLandscapeLeft 55 | UIInterfaceOrientationLandscapeRight 56 | UIInterfaceOrientationPortraitUpsideDown 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /iOS/OCRuntime/UIAlertView+Blocks.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIAlertView+Blocks.h 3 | // Shibui 4 | // 5 | // Created by Jiva DeVoe on 12/28/10. 6 | // Copyright 2010 Random Ideas, LLC. All rights reserved. 7 | // Modified by Robert Saunders on 20/01/12 8 | // 9 | 10 | #import 11 | 12 | @interface UIAlertView (Blocks) 13 | 14 | 15 | /* 16 | 17 | This method only work if you want a one or two button alert view. 18 | This should do for 90% of use cases, if you need more button use the standard constructor. 19 | 20 | For a one button alert provide nil for both the right button title and action 21 | 22 | This method will create and display the alert and automatically invoke the given block 23 | when the button is tapped. 24 | 25 | 26 | Example usage: 27 | 28 | [UIAlertView displayAlertWithTitle:@"Example Alert View With Blocks" 29 | message:@"What is the meaning of life?" 30 | leftButtonTitle:@"41" 31 | leftButtonAction:^{ 32 | NSLog(@"Incorrect"); 33 | } 34 | rightButtonTitle:@"42" 35 | rightButtonAction:^{ 36 | [UIAlertView displayAlertWithTitle:@"Result" 37 | message:@"You chose wisely" 38 | leftButtonTitle:@"Ok" 39 | leftButtonAction:nil 40 | rightButtonTitle:nil 41 | rightButtonAction:nil]; 42 | }]; 43 | 44 | 45 | */ 46 | 47 | + (void)rtb_displayAlertWithTitle:(NSString *)title 48 | message:(NSString *)message 49 | leftButtonTitle:(NSString *)leftButtonTitle 50 | leftButtonAction:(void (^)(void))leftButtonAction 51 | rightButtonTitle:(NSString*)rightButtonTitle 52 | rightButtonAction:(void (^)(NSString *output))rightButtonAction; 53 | 54 | 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBProtocolCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // ClassCell.m 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 13.08.08. 6 | // Copyright 2008 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import "RTBProtocolCell.h" 10 | #import "RTBClassDisplayVC.h" 11 | 12 | @interface RTBProtocolCell () 13 | @property (nonatomic, retain) IBOutlet UILabel *label; 14 | @property (nonatomic, retain) IBOutlet UIButton *button; 15 | @end 16 | 17 | @implementation RTBProtocolCell 18 | 19 | - (void)setProtocolObject:(RTBProtocol *)p { 20 | _protocolObject = p; 21 | _label.text = [p protocolName]; 22 | _label.font = [UIFont italicSystemFontOfSize:_label.font.pointSize]; 23 | self.accessoryType = [p hasChildren] ? UITableViewCellAccessoryDetailDisclosureButton : UITableViewCellAccessoryNone; 24 | 25 | if (@available(iOS 13, *)) { 26 | if ([UIImage respondsToSelector:@selector(systemImageNamed:)]) { 27 | [self.button setImage:[UIImage systemImageNamed:@"arrow.up.right.diamond.fill"] forState:UIControlStateNormal]; 28 | } 29 | } 30 | } 31 | 32 | - (IBAction)showHeaders:(id)sender { 33 | UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; 34 | RTBClassDisplayVC *classDisplayVC = (RTBClassDisplayVC *)[sb instantiateViewControllerWithIdentifier:@"RTBClassDisplayVC"]; 35 | classDisplayVC.protocolName = [_protocolObject protocolName]; 36 | 37 | UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:classDisplayVC]; 38 | 39 | UISplitViewController *splitViewController = [self splitViewController]; 40 | [splitViewController showDetailViewController:navigationController sender:self]; 41 | } 42 | 43 | - (UISplitViewController *)splitViewController { 44 | UIResponder *responder = self; 45 | while (![responder isKindOfClass:UIViewController.class]) { 46 | responder = [responder nextResponder]; 47 | } 48 | return [(UIViewController *)responder splitViewController]; 49 | } 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/4_0_pri.txt: -------------------------------------------------------------------------------- 1 | AXRuntime.framework 2 | AccountSettings.framework 3 | AccountSettingsUI.framework 4 | ActorKit.framework 5 | AggregateDictionary.framework 6 | AppSupport.framework 7 | ApplePushService.framework 8 | AssetsLibraryServices.framework 9 | BluetoothManager.framework 10 | Celestial.framework 11 | CertUI.framework 12 | ChatKit.framework 13 | Conference.framework 14 | CoreDAV.framework 15 | DAVKit.framework 16 | DataAccess.framework 17 | DataAccessExpress.framework 18 | DataAccessUI.framework 19 | DataDetectorsCore.framework 20 | DataDetectorsUI.framework 21 | DataMigration.framework 22 | GMM.framework 23 | GameKitServices.framework 24 | GeoServices.framework 25 | IAP.framework 26 | IMAVCore.framework 27 | IMCore.framework 28 | ITSync.framework 29 | ImageCapture.framework 30 | JSON.framework 31 | JavaScriptCore.framework 32 | MIME.framework 33 | ManagedConfiguration.framework 34 | MapSupport.framework 35 | Marco.framework 36 | MediaToolbox.framework 37 | Message.framework 38 | MobileWirelessSync.framework 39 | MusicLibrary.framework 40 | Notes.framework 41 | OfficeImport.framework 42 | PersistentConnection.framework 43 | PhotoLibrary.framework 44 | Preferences.framework 45 | ProofReader.framework 46 | ProtocolBuffer.framework 47 | SMSCTServer.framework 48 | ScreenReaderBrailleDriver.framework 49 | ScreenReaderCore.framework 50 | ScreenReaderOutput.framework 51 | ScreenReaderOutputServer.framework 52 | Search.framework 53 | SportsTrainer.framework 54 | SportsVoices.framework 55 | SportsWorkout.framework 56 | Spotlight.framework 57 | SpringBoardServices.framework 58 | SpringBoardUI.framework 59 | StoreServices.framework 60 | Symbolication.framework 61 | TelephonyUI.framework 62 | TextInput.framework 63 | UIAccessibility.framework 64 | VisualVoicemail.framework 65 | VoiceMemos.framework 66 | VoiceServices.framework 67 | WebBookmarks.framework 68 | WebCore.framework 69 | WebKit.framework 70 | WebUI.framework 71 | YouTube.framework 72 | iCalendar.framework 73 | iTunesStore.framework 74 | iTunesStoreUI.framework 75 | iWorkImport.framework 76 | -------------------------------------------------------------------------------- /model/RTBRuntime.h: -------------------------------------------------------------------------------- 1 | /* 2 | AllClasses.h created by eepstein on Sat 16-Mar-2002 3 | 4 | 5 | Author: Ezra Epstein (eepstein@prajna.com) 6 | 7 | Copyright (c) 2002 by Prajna IT Consulting. 8 | http://www.prajna.com 9 | 10 | ======================================================================== 11 | 12 | THIS PROGRAM AND THIS CODE COME WITH ABSOLUTELY NO WARRANTY. 13 | THIS CODE HAS BEEN PROVIDED "AS IS" AND THE RESPONSIBILITY 14 | FOR ITS OPERATIONS IS 100% YOURS. 15 | 16 | ======================================================================== 17 | This file is part of RuntimeBrowser. 18 | 19 | RuntimeBrowser is free software; you can redistribute it and/or modify 20 | it under the terms of the GNU General Public License as published by 21 | the Free Software Foundation; either version 2 of the License, or 22 | (at your option) any later version. 23 | 24 | RuntimeBrowser is distributed in the hope that it will be useful, 25 | but WITHOUT ANY WARRANTY; without even the implied warranty of 26 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27 | GNU General Public License for more details. 28 | 29 | You should have received a copy of the GNU General Public License 30 | along with RuntimeBrowser (in a file called "COPYING.txt"); if not, 31 | write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 32 | Boston, MA 02111-1307 USA 33 | 34 | */ 35 | 36 | #import 37 | #import "RTBClass.h" 38 | #import "RTBProtocol.h" 39 | 40 | @interface RTBRuntime : NSObject 41 | 42 | @property (nonatomic, retain) NSMutableArray *rootClasses; 43 | @property (nonatomic, retain) NSMutableDictionary *allClassStubsByName; 44 | @property (nonatomic, retain) NSMutableDictionary *allClassStubsByImagePath; 45 | @property (nonatomic, retain) NSMutableDictionary *allProtocolsByName; 46 | 47 | + (RTBRuntime *)sharedInstance; 48 | 49 | - (RTBClass *)classStubForClassName:(NSString *)classname; 50 | - (NSArray *)sortedClassStubs; 51 | - (void)emptyCachesAndReadAllRuntimeClasses; 52 | - (NSArray *)sortedProtocolStubs; 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/4_1_pri.txt: -------------------------------------------------------------------------------- 1 | AXRuntime.framework 2 | AccountSettings.framework 3 | AccountSettingsUI.framework 4 | ActorKit.framework 5 | AggregateDictionary.framework 6 | AppSupport.framework 7 | ApplePushService.framework 8 | AssetsLibraryServices.framework 9 | BluetoothManager.framework 10 | Celestial.framework 11 | CertUI.framework 12 | ChatKit.framework 13 | Conference.framework 14 | CoreDAV.framework 15 | DAVKit.framework 16 | DataAccess.framework 17 | DataAccessExpress.framework 18 | DataAccessUI.framework 19 | DataDetectorsCore.framework 20 | DataDetectorsUI.framework 21 | DataMigration.framework 22 | FTServices.framework 23 | GMM.framework 24 | GameKitServices.framework 25 | GeoServices.framework 26 | IAP.framework 27 | IMAVCore.framework 28 | IMCore.framework 29 | ITSync.framework 30 | ImageCapture.framework 31 | JSON.framework 32 | JavaScriptCore.framework 33 | MIME.framework 34 | MailServices.framework 35 | ManagedConfiguration.framework 36 | MapSupport.framework 37 | Marco.framework 38 | MediaRemote.framework 39 | MediaToolbox.framework 40 | Message.framework 41 | MobileWirelessSync.framework 42 | MusicLibrary.framework 43 | Notes.framework 44 | OfficeImport.framework 45 | PersistentConnection.framework 46 | PhotoLibrary.framework 47 | Preferences.framework 48 | ProofReader.framework 49 | ProtocolBuffer.framework 50 | SMSCTServer.framework 51 | ScreenReaderBrailleDriver.framework 52 | ScreenReaderCore.framework 53 | ScreenReaderOutput.framework 54 | ScreenReaderOutputServer.framework 55 | Search.framework 56 | SportsTrainer.framework 57 | SportsVoices.framework 58 | SportsWorkout.framework 59 | Spotlight.framework 60 | SpringBoardServices.framework 61 | SpringBoardUI.framework 62 | StoreServices.framework 63 | Symbolication.framework 64 | TelephonyUI.framework 65 | TextInput.framework 66 | UIAccessibility.framework 67 | VisualVoicemail.framework 68 | VoiceMemos.framework 69 | VoiceServices.framework 70 | WebBookmarks.framework 71 | WebCore.framework 72 | WebKit.framework 73 | WebUI.framework 74 | YouTube.framework 75 | iCalendar.framework 76 | iTunesStore.framework 77 | iTunesStoreUI.framework 78 | iWorkImport.framework 79 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

RuntimeBrowser

2 | 3 | This is a class browser for the Objective-C runtime on iOS and macOS. It gives you full access to all classes loaded in the runtime; allows you to dynamically load new modules and their classes; shows every method implemented on each class; and displays information in a header (.h) file format. 4 | 5 | We have found this to be a useful development tool. Please note, however, that each user is responsible for their own usage. 6 | 7 | The original version was released in April 2002 by [Ezra Epstein](https://github.com/eepstein). The project is maintained by [Nicolas Seriot](https://github.com/nst) since August, 2008. [HASHBANG Productions](https://hashbang.productions) has contributed some updates to the app. 8 | 9 | **[Download on Chariz](https://chariz.com/get/runtimebrowser)** (for jailbroken devices) 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | ## License 20 | THIS PROGRAM AND THIS CODE COME WITH ABSOLUTELY NO WARRANTY. THIS CODE HAS BEEN PROVIDED "AS IS" AND THE RESPONSIBILITY FOR ITS OPERATIONS IS 100% YOURS. 21 | 22 | RuntimeBrowser is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. 23 | 24 | RuntimeBrowser is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 25 | 26 | You should have received a copy of the GNU General Public License along with RuntimeBrowser (in a file called "LICENSE.md"); if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 27 | 28 | Refer to [LICENSE.md](LICENSE.md). 29 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/4_2_pri.txt: -------------------------------------------------------------------------------- 1 | AXRuntime.framework 2 | AccountSettings.framework 3 | AccountSettingsUI.framework 4 | ActorKit.framework 5 | AggregateDictionary.framework 6 | AppSupport.framework 7 | AppleAccount.framework 8 | ApplePushService.framework 9 | AssetsLibraryServices.framework 10 | BluetoothManager.framework 11 | Celestial.framework 12 | CertUI.framework 13 | ChatKit.framework 14 | Conference.framework 15 | CoreDAV.framework 16 | CorePDF.framework 17 | DAVKit.framework 18 | DataAccess.framework 19 | DataAccessExpress.framework 20 | DataAccessUI.framework 21 | DataDetectorsCore.framework 22 | DataDetectorsUI.framework 23 | DataMigration.framework 24 | FTServices.framework 25 | GMM.framework 26 | GameKitServices.framework 27 | GeoServices.framework 28 | IAP.framework 29 | IMAVCore.framework 30 | IMCore.framework 31 | ITSync.framework 32 | ImageCapture.framework 33 | JSON.framework 34 | JavaScriptCore.framework 35 | MIME.framework 36 | MailServices.framework 37 | ManagedConfiguration.framework 38 | Marco.framework 39 | MediaControl.framework 40 | MediaRemote.framework 41 | MediaToolbox.framework 42 | Message.framework 43 | MobileWirelessSync.framework 44 | MusicLibrary.framework 45 | Notes.framework 46 | OfficeImport.framework 47 | PersistentConnection.framework 48 | PhotoLibrary.framework 49 | Preferences.framework 50 | PrintKit.framework 51 | ProofReader.framework 52 | ProtocolBuffer.framework 53 | SMSCTServer.framework 54 | ScreenReaderBrailleDriver.framework 55 | ScreenReaderCore.framework 56 | ScreenReaderOutput.framework 57 | ScreenReaderOutputServer.framework 58 | Search.framework 59 | SportsTrainer.framework 60 | SportsVoices.framework 61 | SportsWorkout.framework 62 | Spotlight.framework 63 | SpringBoardServices.framework 64 | SpringBoardUI.framework 65 | StoreServices.framework 66 | Symbolication.framework 67 | TelephonyUI.framework 68 | TextInput.framework 69 | UIAccessibility.framework 70 | VisualVoicemail.framework 71 | VoiceMemos.framework 72 | VoiceServices.framework 73 | WebBookmarks.framework 74 | WebCore.framework 75 | WebKit.framework 76 | WebUI.framework 77 | YouTube.framework 78 | iCalendar.framework 79 | iTunesStore.framework 80 | iTunesStoreUI.framework 81 | iWorkImport.framework 82 | -------------------------------------------------------------------------------- /iOS/GCDWebServer/Requests/GCDWebServerFileRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012-2014, Pierre-Olivier Latour 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * The name of Pierre-Olivier Latour may not be used to endorse 13 | or promote products derived from this software without specific 14 | prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import "GCDWebServerRequest.h" 29 | 30 | /** 31 | * The GCDWebServerFileRequest subclass of GCDWebServerRequest stores the body 32 | * of the HTTP request to a file on disk. 33 | */ 34 | @interface GCDWebServerFileRequest : GCDWebServerRequest 35 | 36 | /** 37 | * Returns the path to the temporary file containing the request body. 38 | * 39 | * @warning This temporary file will be automatically deleted when the 40 | * GCDWebServerFileRequest is deallocated. If you want to preserve this file, 41 | * you must move it to a different location beforehand. 42 | */ 43 | @property(nonatomic, readonly) NSString* temporaryPath; 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /model/RTBTypeDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ClassDisplay.h created by eepstein on Sun 17-Mar-2002 4 | 5 | Author: Ezra Epstein (eepstein@prajna.com) 6 | 7 | Copyright (c) 2002 by Prajna IT Consulting. 8 | http://www.prajna.com 9 | 10 | ======================================================================== 11 | 12 | THIS PROGRAM AND THIS CODE COME WITH ABSOLUTELY NO WARRANTY. 13 | THIS CODE HAS BEEN PROVIDED "AS IS" AND THE RESPONSIBILITY 14 | FOR ITS OPERATIONS IS 100% YOURS. 15 | 16 | ======================================================================== 17 | This file is part of RuntimeBrowser. 18 | 19 | RuntimeBrowser is free software; you can redistribute it and/or modify 20 | it under the terms of the GNU General Public License as published by 21 | the Free Software Foundation; either version 2 of the License, or 22 | (at your option) any later version. 23 | 24 | RuntimeBrowser is distributed in the hope that it will be useful, 25 | but WITHOUT ANY WARRANTY; without even the implied warranty of 26 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27 | GNU General Public License for more details. 28 | 29 | You should have received a copy of the GNU General Public License 30 | along with RuntimeBrowser (in a file called "COPYING.txt"); if not, 31 | write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 32 | Boston, MA 02111-1307 USA 33 | 34 | */ 35 | 36 | #import 37 | 38 | @interface RTBTypeDecoder : NSObject { 39 | NSMutableDictionary *namedStructs; 40 | const char* ivT; // the currently-processed Ivar type string 41 | int structDepth; 42 | int structPart; 43 | BOOL currentWarning; 44 | BOOL methodWarning; 45 | BOOL showUnhandledWarning; 46 | BOOL showFunctionSignatureNote; 47 | } 48 | 49 | @property (nonatomic, retain) NSMutableSet *refdClasses; 50 | @property (nonatomic, retain) NSMutableDictionary *namedStructs; 51 | @property (nonatomic) BOOL showCommentForBlocks; 52 | 53 | + (NSString *)decodeType:(NSString *)encodedType flat:(BOOL)flat; 54 | + (NSArray *)decodeTypes:(NSString *)encodedType flat:(BOOL)flat; 55 | 56 | // for tests 57 | - (NSDictionary *)flatCTypeDeclForEncType:(const char*)encType; 58 | - (NSDictionary *)ivarCTypeDeclForEncType:(const char*)encType; 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBMethodCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // MethodCell.m 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 13.08.08. 6 | // Copyright 2008 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import "RTBMethodCell.h" 10 | #import "NSString+SyntaxColoring.h" 11 | 12 | static NSArray *cachedKeywords = nil; 13 | 14 | @implementation RTBMethodCell 15 | 16 | - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 17 | RTBMethodCell *cell = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 18 | cell.textLabel.lineBreakMode = NSLineBreakByWordWrapping; 19 | cell.textLabel.numberOfLines = 0; 20 | return cell; 21 | } 22 | 23 | - (void)setMethod:(RTBMethod *)method { 24 | _method = method; 25 | 26 | BOOL hasArguments = [method hasArguments]; 27 | self.accessoryType = hasArguments ? UITableViewCellAccessoryDisclosureIndicator : UITableViewCellAccessoryNone; 28 | 29 | NSString *returnType = [method returnTypeDecoded]; 30 | 31 | NSString *selectorString = [method selectorString]; 32 | 33 | if ([selectorString isEqualToString:@"alloc"] || [selectorString isEqualToString:@"init"]) { 34 | self.textLabel.textColor = [UIColor systemBlueColor]; 35 | } else if ([returnType isEqualToString:@"void"] && !hasArguments && ([selectorString isEqualToString:@".cxx_destruct"] || [selectorString isEqualToString:@"dealloc"])) { 36 | self.textLabel.textColor = [UIColor systemOrangeColor]; 37 | } else { 38 | self.textLabel.textColor = [UIColor blackColor]; 39 | if (@available(iOS 13, *)) { 40 | if ([UIColor respondsToSelector:@selector(labelColor)]) { 41 | self.textLabel.textColor = [UIColor labelColor]; 42 | } 43 | } 44 | } 45 | 46 | if(cachedKeywords == nil) { 47 | NSString *keywordsPath = [[NSBundle mainBundle] pathForResource:@"Keywords" ofType:@"plist"]; 48 | NSArray *keywords = [NSArray arrayWithContentsOfFile:keywordsPath]; 49 | cachedKeywords = keywords; 50 | } 51 | 52 | NSString *s = [method headerDescriptionWithNewlineAfterArgs:NO]; 53 | 54 | NSAttributedString *as = [s colorizeWithKeywords:cachedKeywords classes:nil colorize:YES]; 55 | 56 | self.textLabel.attributedText = as; 57 | } 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/4_3_pri.txt: -------------------------------------------------------------------------------- 1 | AOSNotification.framework 2 | AXRuntime.framework 3 | AccountSettings.framework 4 | AccountSettingsUI.framework 5 | ActorKit.framework 6 | AggregateDictionary.framework 7 | AppSupport.framework 8 | AppleAccount.framework 9 | ApplePushService.framework 10 | AssetsLibraryServices.framework 11 | BluetoothManager.framework 12 | BookmarkDAV.framework 13 | Celestial.framework 14 | CertUI.framework 15 | ChatKit.framework 16 | Conference.framework 17 | CoreDAV.framework 18 | CorePDF.framework 19 | DAVKit.framework 20 | DataAccess.framework 21 | DataAccessExpress.framework 22 | DataAccessUI.framework 23 | DataDetectorsCore.framework 24 | DataDetectorsUI.framework 25 | DataMigration.framework 26 | FTServices.framework 27 | GMM.framework 28 | GameKitServices.framework 29 | GeoServices.framework 30 | HomeSharing.framework 31 | IAP.framework 32 | IMAVCore.framework 33 | IMCore.framework 34 | ITSync.framework 35 | ImageCapture.framework 36 | JSON.framework 37 | JavaScriptCore.framework 38 | MIME.framework 39 | MailServices.framework 40 | ManagedConfiguration.framework 41 | Marco.framework 42 | MediaControl.framework 43 | MediaRemote.framework 44 | MediaToolbox.framework 45 | Message.framework 46 | MobileWirelessSync.framework 47 | MusicLibrary.framework 48 | Notes.framework 49 | OfficeImport.framework 50 | PersistentConnection.framework 51 | PhotoBoothEffects.framework 52 | PhotoLibrary.framework 53 | Preferences.framework 54 | PrintKit.framework 55 | ProofReader.framework 56 | ProtocolBuffer.framework 57 | SMSCTServer.framework 58 | ScreenReaderBrailleDriver.framework 59 | ScreenReaderCore.framework 60 | ScreenReaderOutput.framework 61 | ScreenReaderOutputServer.framework 62 | Search.framework 63 | SportsTrainer.framework 64 | SportsVoices.framework 65 | SportsWorkout.framework 66 | Spotlight.framework 67 | SpringBoardServices.framework 68 | SpringBoardUI.framework 69 | StoreServices.framework 70 | Symbolication.framework 71 | TelephonyUI.framework 72 | TextInput.framework 73 | UIAccessibility.framework 74 | VisualVoicemail.framework 75 | VoiceMemos.framework 76 | VoiceServices.framework 77 | WebBookmarks.framework 78 | WebCore.framework 79 | WebKit.framework 80 | WebUI.framework 81 | YouTube.framework 82 | iAdCore.framework 83 | iCalendar.framework 84 | iTunesStore.framework 85 | iTunesStoreUI.framework 86 | iWorkImport.framework 87 | -------------------------------------------------------------------------------- /iOS/GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012-2014, Pierre-Olivier Latour 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * The name of Pierre-Olivier Latour may not be used to endorse 13 | or promote products derived from this software without specific 14 | prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import "GCDWebServerDataRequest.h" 29 | 30 | /** 31 | * The GCDWebServerURLEncodedFormRequest subclass of GCDWebServerRequest 32 | * parses the body of the HTTP request as a URL encoded form using 33 | * GCDWebServerParseURLEncodedForm(). 34 | */ 35 | @interface GCDWebServerURLEncodedFormRequest : GCDWebServerDataRequest 36 | 37 | /** 38 | * Returns the unescaped control names and values for the URL encoded form. 39 | * 40 | * The text encoding used to interpret the data is extracted from the 41 | * "Content-Type" header or defaults to UTF-8. 42 | */ 43 | @property(nonatomic, readonly) NSDictionary* arguments; 44 | 45 | /** 46 | * Returns the MIME type for URL encoded forms 47 | * i.e. "application/x-www-form-urlencoded". 48 | */ 49 | + (NSString*)mimeType; 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /iOS/OCRuntime/Keywords.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSUInteger 6 | nonatomic 7 | readwrite 8 | NSInteger 9 | readonly 10 | register 11 | uint16_t 12 | uint32_t 13 | uint64_t 14 | continue 15 | unsigned 16 | volatile 17 | IBAction 18 | IBOutlet 19 | typedef 20 | uint8_t 21 | unichar 22 | int16_t 23 | int32_t 24 | int64_t 25 | default 26 | assign 27 | signed 28 | sizeof 29 | static 30 | oneway 31 | struct 32 | setter 33 | retain 34 | return 35 | switch 36 | UInt16 37 | UInt32 38 | double 39 | extern 40 | getter 41 | bycopy 42 | atomic 43 | int8_t 44 | super 45 | short 46 | byref 47 | union 48 | while 49 | break 50 | UInt8 51 | const 52 | inout 53 | byref 54 | float 55 | void 56 | BOOL 57 | bool 58 | case 59 | char 60 | else 61 | NULL 62 | enum 63 | long 64 | copy 65 | auto 66 | goto 67 | int 68 | for 69 | nil 70 | Nil 71 | SEL 72 | IMP 73 | YES 74 | out 75 | NO 76 | id 77 | if 78 | do 79 | in 80 | Class 81 | 82 | 83 | -------------------------------------------------------------------------------- /OSX/Keywords.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSUInteger 6 | nonatomic 7 | readwrite 8 | NSInteger 9 | readonly 10 | register 11 | uint16_t 12 | uint32_t 13 | uint64_t 14 | continue 15 | unsigned 16 | volatile 17 | IBAction 18 | IBOutlet 19 | typedef 20 | uint8_t 21 | unichar 22 | int16_t 23 | int32_t 24 | int64_t 25 | default 26 | atomic 27 | assign 28 | strong 29 | retain 30 | signed 31 | sizeof 32 | static 33 | oneway 34 | struct 35 | setter 36 | return 37 | switch 38 | UInt16 39 | UInt32 40 | double 41 | extern 42 | getter 43 | bycopy 44 | int8_t 45 | super 46 | short 47 | byref 48 | union 49 | while 50 | break 51 | UInt8 52 | const 53 | inout 54 | byref 55 | float 56 | weak 57 | void 58 | BOOL 59 | bool 60 | case 61 | char 62 | else 63 | NULL 64 | enum 65 | long 66 | copy 67 | auto 68 | goto 69 | int 70 | for 71 | nil 72 | Nil 73 | SEL 74 | IMP 75 | YES 76 | out 77 | NO 78 | id 79 | if 80 | do 81 | in 82 | Class 83 | 84 | 85 | -------------------------------------------------------------------------------- /iOS/GCDWebServer/Requests/GCDWebServerDataRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012-2014, Pierre-Olivier Latour 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * The name of Pierre-Olivier Latour may not be used to endorse 13 | or promote products derived from this software without specific 14 | prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import "GCDWebServerRequest.h" 29 | 30 | /** 31 | * The GCDWebServerDataRequest subclass of GCDWebServerRequest stores the body 32 | * of the HTTP request in memory. 33 | */ 34 | @interface GCDWebServerDataRequest : GCDWebServerRequest 35 | 36 | /** 37 | * Returns the data for the request body. 38 | */ 39 | @property(nonatomic, readonly) NSData* data; 40 | 41 | @end 42 | 43 | @interface GCDWebServerDataRequest (Extensions) 44 | 45 | /** 46 | * Returns the data for the request body interpreted as text. If the content 47 | * type of the body is not a text one, or if an error occurs, nil is returned. 48 | * 49 | * The text encoding used to interpret the data is extracted from the 50 | * "Content-Type" header or defaults to UTF-8. 51 | */ 52 | @property(nonatomic, readonly) NSString* text; 53 | 54 | /** 55 | * Returns the data for the request body interpreted as a JSON object. If the 56 | * content type of the body is not JSON, or if an error occurs, nil is returned. 57 | */ 58 | @property(nonatomic, readonly) id jsonObject; 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /OSX/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleDocumentTypes 8 | 9 | 10 | CFBundleTypeExtensions 11 | 12 | bundle 13 | 14 | CFBundleTypeName 15 | Bundle 16 | CFBundleTypeRole 17 | Editor 18 | LSItemContentTypes 19 | 20 | com.apple.bundle 21 | 22 | LSTypeIsPackage 23 | 24 | NSPersistentStoreTypeKey 25 | Binary 26 | 27 | 28 | CFBundleTypeExtensions 29 | 30 | framework 31 | 32 | CFBundleTypeName 33 | Framework 34 | CFBundleTypeRole 35 | Editor 36 | LSItemContentTypes 37 | 38 | com.apple.framework 39 | 40 | LSTypeIsPackage 41 | 42 | NSPersistentStoreTypeKey 43 | Binary 44 | 45 | 46 | CFBundleTypeExtensions 47 | 48 | app 49 | 50 | CFBundleTypeName 51 | Application 52 | CFBundleTypeRole 53 | Editor 54 | LSItemContentTypes 55 | 56 | com.apple.application- 57 | bundle 58 | 59 | LSTypeIsPackage 60 | 61 | NSPersistentStoreTypeKey 62 | Binary 63 | 64 | 65 | CFBundleExecutable 66 | ${EXECUTABLE_NAME} 67 | CFBundleIdentifier 68 | ch.seriot.$(EXECUTABLE_NAME) 69 | CFBundleInfoDictionaryVersion 70 | 6.0 71 | CFBundleName 72 | ${PRODUCT_NAME} 73 | CFBundlePackageType 74 | APPL 75 | CFBundleSignature 76 | ???? 77 | CFBundleVersion 78 | $(CURRENT_PROJECT_VERSION) 79 | LSApplicationCategoryType 80 | public.app-category.developer-tools 81 | NSMainNibFile 82 | RuntimeBrowser 83 | NSPrincipalClass 84 | NSApplication 85 | NSSupportsSuddenTermination 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /OSX/BrowserNode.m: -------------------------------------------------------------------------------- 1 | // 2 | // RootItem.m 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 2/20/11. 6 | // Copyright 2011 seriot.ch. All rights reserved. 7 | // 8 | 9 | #import "BrowserNode.h" 10 | #import "RTBRuntime.h" 11 | #import "RTBProtocol.h" 12 | 13 | @implementation BrowserNode 14 | 15 | @synthesize nodeName; 16 | @synthesize children; 17 | 18 | + (BrowserNode *)rootNodeList { 19 | BrowserNode *rn = [[BrowserNode alloc] init]; 20 | rn.children = [[RTBRuntime sharedInstance] sortedClassStubs]; 21 | return rn; 22 | } 23 | 24 | + (BrowserNode *)rootNodeTree { 25 | BrowserNode *rn = [[BrowserNode alloc] init]; 26 | rn.children = [[RTBRuntime sharedInstance] rootClasses]; 27 | return rn; 28 | } 29 | 30 | + (BrowserNode *)rootNodeImages { 31 | BrowserNode *bn = [[BrowserNode alloc] init]; 32 | 33 | NSDictionary *allStubsByImage = [RTBRuntime sharedInstance].allClassStubsByImagePath; 34 | 35 | NSMutableArray *images = [NSMutableArray array]; 36 | 37 | for(NSString *image in [allStubsByImage allKeys]) { 38 | BrowserNode *node = [[BrowserNode alloc] init]; 39 | node.nodeName = image; 40 | NSMutableArray *stubs = [NSMutableArray arrayWithArray:[allStubsByImage valueForKey:image]]; 41 | [stubs sortUsingSelector:@selector(compare:)]; 42 | node.children = stubs; 43 | [images addObject:node]; 44 | } 45 | 46 | [images sortUsingSelector:@selector(compare:)]; // TODO: sort by lastPathComponent? 47 | 48 | bn.nodeName = @"Images"; 49 | bn.children = images; 50 | return bn; 51 | } 52 | 53 | + (BrowserNode *)rootNodeProtocols { 54 | BrowserNode *bn = [[BrowserNode alloc] init]; 55 | 56 | bn.nodeName = @"Protocols"; 57 | bn.children = [[RTBRuntime sharedInstance] sortedProtocolStubs]; 58 | 59 | return bn; 60 | } 61 | 62 | - (NSImage *)icon { 63 | 64 | NSArray *extensions = [NSArray arrayWithObjects:@".app", @".framework", @".bundle", @".dylib", nil]; 65 | for(NSString *ext in extensions) { 66 | NSRange range = [nodeName rangeOfString:ext]; 67 | if(range.location != NSNotFound) { 68 | NSString *bundlePath = [nodeName substringToIndex:(range.location + [ext length])]; 69 | return [[NSWorkspace sharedWorkspace] iconForFile:bundlePath]; 70 | } 71 | } 72 | 73 | return nil; 74 | } 75 | 76 | + (void)thisClassIsPartOfTheRuntimeBrowser {} 77 | 78 | - (NSComparisonResult)compare:(BrowserNode *)otherNode { 79 | return [nodeName compare:[otherNode nodeName]]; 80 | } 81 | 82 | - (NSString *)nodeInfo { 83 | NSArray *pathComponents = [nodeName componentsSeparatedByString:@"/"]; 84 | return [NSString stringWithFormat:@"%@ (%lu)", [pathComponents lastObject], (unsigned long)[children count]]; 85 | } 86 | 87 | - (BOOL)canBeSavedAsHeader { 88 | return NO; 89 | } 90 | 91 | @end 92 | -------------------------------------------------------------------------------- /model/RTBClass.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ClassStub.h created by eepstein on Sat 16-Mar-2002 4 | 5 | Author: Ezra Epstein (eepstein@prajna.com) 6 | 7 | Copyright (c) 2002 by Prajna IT Consulting. 8 | http://www.prajna.com 9 | 10 | ======================================================================== 11 | 12 | THIS PROGRAM AND THIS CODE COME WITH ABSOLUTELY NO WARRANTY. 13 | THIS CODE HAS BEEN PROVIDED "AS IS" AND THE RESPONSIBILITY 14 | FOR ITS OPERATIONS IS 100% YOURS. 15 | 16 | ======================================================================== 17 | This file is part of RuntimeBrowser. 18 | 19 | RuntimeBrowser is free software; you can redistribute it and/or modify 20 | it under the terms of the GNU General Public License as published by 21 | the Free Software Foundation; either version 2 of the License, or 22 | (at your option) any later version. 23 | 24 | RuntimeBrowser is distributed in the hope that it will be useful, 25 | but WITHOUT ANY WARRANTY; without even the implied warranty of 26 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27 | GNU General Public License for more details. 28 | 29 | You should have received a copy of the GNU General Public License 30 | along with RuntimeBrowser (in a file called "COPYING.txt"); if not, 31 | write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 32 | Boston, MA 02111-1307 USA 33 | 34 | */ 35 | 36 | #import 37 | 38 | /*" 39 | The runtime tells us the superclass of a class, but we don't directly know which are 40 | the subclasses of a class. 41 | The purpose of ClassStub is to have a way of accessing ALL of a class's currently loaded subclasses. 42 | "*/ 43 | @interface RTBClass : NSObject 44 | 45 | + (RTBClass *)classStubWithClass:(Class)klass; 46 | 47 | - (NSArray *)subclassesStubs; 48 | 49 | - (void)addSubclassStub:(RTBClass *)klassStub; 50 | 51 | - (NSString *)classObjectName; 52 | - (NSString *)imagePath; 53 | 54 | - (NSSet *)iVarNames; 55 | - (NSSet *)iVarDecodedTypes; 56 | - (NSSet *)methodsNamePartsLowercase; 57 | - (NSMutableSet *)protocolsNames; 58 | - (NSArray *)sortedProtocolsNames; 59 | - (NSArray *)sortedIvarDictionaries; 60 | 61 | - (NSArray *)sortedMethodsIsClassMethod:(BOOL)isClassMethod; 62 | - (NSArray *)sortedMethodsGroupsOfGroupsByImageAndThenCategory; 63 | - (NSArray *)sortedPropertiesDictionariesWithDisplayPropertiesDefaultValues:(BOOL)displayPropertiesDefaultValues; 64 | 65 | - (BOOL)containsSearchString:(NSString *)searchString; 66 | 67 | - (BOOL)writeAtPath:(NSString *)path; 68 | 69 | // BrowserNode protocol 70 | 71 | - (NSArray *)children; // same as subclassesStubs 72 | - (NSString *)nodeName;// same as stubClassname 73 | - (NSString *)nodeInfo; 74 | - (BOOL)canBeSavedAsHeader; 75 | 76 | @end 77 | -------------------------------------------------------------------------------- /model/RTBTypeDecoder2.h: -------------------------------------------------------------------------------- 1 | // 2 | // RTBTypeDecoded2.h 3 | // runtime_cli 4 | // 5 | // Created by Nicolas Seriot on 23/05/15. 6 | // 7 | // 8 | 9 | #import 10 | 11 | //#include 12 | 13 | // http://opensource.apple.com/source/llvmgcc42/llvmgcc42-2336.9/libobjc/objc/objc-api.h 14 | #define _C_ID '@' // id 15 | #define _C_CLASS '#' // Class 16 | #define _C_SEL ':' // SEL 17 | #define _C_CHR 'c' // char 18 | #define _C_UCHR 'C' // unsigned char 19 | #define _C_SHT 's' // short 20 | #define _C_USHT 'S' // unsigned short 21 | #define _C_INT 'i' // int 22 | #define _C_UINT 'I' // unsigned int 23 | #define _C_LNG 'l' // long 24 | #define _C_ULNG 'L' // unsigned long 25 | #define _C_LNG_LNG 'q' // long long 26 | #define _C_ULNG_LNG 'Q' // unsigned long long 27 | #define _C_FLT 'f' // float 28 | #define _C_DBL 'd' // double 29 | #define _C_BOOL 'B' // bool (or _Bool) 30 | #define _C_VOID 'v' // void 31 | #define _C_CHARPTR '*' // char* 32 | 33 | #define _C_PTR '^' // a pointer to some type is _C_PTR followed by the type string of the pointed-to type. 34 | #define _C_BFLD 'b' // a bitfield in a structure is represented as _C_BFLD followed by an integer with the number of bits. 35 | #define _C_ATOM '%' // 36 | #define _C_ARY_B '[' // a C array is represented as _C_ARY_B followed by an integer representing the number of items followed by the encoded element type, followed by _C_ARY_E. 37 | #define _C_ARY_E ']' // .. 38 | #define _C_UNION_B '(' // a C union is represented as _C_UNION_B followed by the struct name, followed by '=', followed by the encoded types of all fields followed by _C_UNION_E. The field name (including the closing equals sign) is optional. 39 | #define _C_UNION_E ')' // .. 40 | #define _C_STRUCT_B '{' // a C structure is represented as _C_STRUCT_B followed by the struct name, followed by '=', followed by the encoded types of all fields followed by _C_STRUCT_E. The field name (including the closing equals sign) is optional.#define _C_STRUCT_E '}' 41 | #define _C_STRUCT_E '}' // .. 42 | #define _C_VECTOR '!' 43 | #define _C_COMPLEX 'j' 44 | // The C construct ‘const’ is mapped to _C_CONST, that is a const char* is represented as _C_CONST + _C_CHARPTR. 45 | 46 | @interface RTBTypeDecoder2 : NSObject 47 | 48 | @property (nonatomic, strong) NSDictionary *simpeTypesDictionary; 49 | 50 | + (NSArray *)decodeTypes:(NSString *)encodedType flat:(BOOL)flat; 51 | + (NSString *)decodeType:(NSString *)encodedType flat:(BOOL)flat; 52 | 53 | - (NSDictionary *)decodeType:(NSString *)encodedType; 54 | + (NSInteger)indexOfClosingCharForString:(NSString *)s openingChar:(unichar)open closingChar:(unichar)close; 55 | + (NSString *)nameBeforeEqualInString:(NSString *)s; 56 | + (NSString *)descriptionForTypeDictionary:(NSDictionary *)d; 57 | 58 | @end 59 | -------------------------------------------------------------------------------- /iOS/GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012-2014, Pierre-Olivier Latour 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * The name of Pierre-Olivier Latour may not be used to endorse 13 | or promote products derived from this software without specific 14 | prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #if !__has_feature(objc_arc) 29 | #error GCDWebServer requires ARC 30 | #endif 31 | 32 | #import "GCDWebServerPrivate.h" 33 | 34 | @interface GCDWebServerURLEncodedFormRequest () { 35 | @private 36 | NSDictionary* _arguments; 37 | } 38 | @end 39 | 40 | @implementation GCDWebServerURLEncodedFormRequest 41 | 42 | @synthesize arguments=_arguments; 43 | 44 | + (NSString*)mimeType { 45 | return @"application/x-www-form-urlencoded"; 46 | } 47 | 48 | - (BOOL)close:(NSError**)error { 49 | if (![super close:error]) { 50 | return NO; 51 | } 52 | 53 | NSString* charset = GCDWebServerExtractHeaderValueParameter(self.contentType, @"charset"); 54 | NSString* string = [[NSString alloc] initWithData:self.data encoding:GCDWebServerStringEncodingFromCharset(charset)]; 55 | _arguments = GCDWebServerParseURLEncodedForm(string); 56 | GWS_DCHECK(_arguments); 57 | 58 | return YES; 59 | } 60 | 61 | - (NSString*)description { 62 | NSMutableString* description = [NSMutableString stringWithString:[super description]]; 63 | [description appendString:@"\n"]; 64 | for (NSString* argument in [[_arguments allKeys] sortedArrayUsingSelector:@selector(compare:)]) { 65 | [description appendFormat:@"\n%@ = %@", argument, [_arguments objectForKey:argument]]; 66 | } 67 | return description; 68 | } 69 | 70 | @end 71 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/5_0_pri.txt: -------------------------------------------------------------------------------- 1 | AOSKit.framework 2 | AOSNotification.framework 3 | AXRuntime.framework 4 | AccountSettings.framework 5 | AccountSettingsUI.framework 6 | ActorKit.framework 7 | AggregateDictionary.framework 8 | AirPortAssistant.framework 9 | AirTraffic.framework 10 | AppStoreUI.framework 11 | AppSupport.framework 12 | AppleAccount.framework 13 | ApplePushService.framework 14 | AssetsLibraryServices.framework 15 | BluetoothManager.framework 16 | BookmarkDAV.framework 17 | BulletinBoard.framework 18 | CalDAV.framework 19 | Celestial.framework 20 | CertInfo.framework 21 | CertUI.framework 22 | ChatKit.framework 23 | Conference.framework 24 | CoreDAV.framework 25 | CoreMediaStream.framework 26 | CorePDF.framework 27 | CoreTime.framework 28 | DataAccess.framework 29 | DataAccessExpress.framework 30 | DataAccessUI.framework 31 | DataDetectorsCore.framework 32 | DataDetectorsUI.framework 33 | DataMigration.framework 34 | FTClientServices.framework 35 | FTServices.framework 36 | GMM.framework 37 | GameKitServices.framework 38 | GeoServices.framework 39 | HomeSharing.framework 40 | IAP.framework 41 | IMAVCore.framework 42 | IMCore.framework 43 | ImageCapture.framework 44 | JavaScriptCore.framework 45 | Librarian.framework 46 | MIME.framework 47 | MMCSServices.framework 48 | MailServices.framework 49 | ManagedConfiguration.framework 50 | MediaControlReceiver.framework 51 | MediaControlSender.framework 52 | MediaRemote.framework 53 | MediaStream.framework 54 | MediaToolbox.framework 55 | Message.framework 56 | MobileActivation.framework 57 | MobileBackup.framework 58 | MobileTimer.framework 59 | MobileWirelessSync.framework 60 | MusicLibrary.framework 61 | Notes.framework 62 | OAuth.framework 63 | OfficeImport.framework 64 | PersistentConnection.framework 65 | PhotoBoothEffects.framework 66 | PhotoLibrary.framework 67 | PhotoLibraryServices.framework 68 | Preferences.framework 69 | PrintKit.framework 70 | ProofReader.framework 71 | ProtocolBuffer.framework 72 | RemoteUI.framework 73 | SMSCTServer.framework 74 | ScreenReaderBrailleDriver.framework 75 | ScreenReaderCore.framework 76 | ScreenReaderOutput.framework 77 | ScreenReaderOutputServer.framework 78 | Search.framework 79 | SoftwareUpdateServices.framework 80 | SportsTrainer.framework 81 | SportsVoices.framework 82 | SportsWorkout.framework 83 | Spotlight.framework 84 | SpringBoardServices.framework 85 | SpringBoardUI.framework 86 | Stocks.framework 87 | StoreServices.framework 88 | Symbolication.framework 89 | SyncedDefaults.framework 90 | TelephonyUI.framework 91 | TextInput.framework 92 | ToneLibrary.framework 93 | UIAccessibility.framework 94 | Ubiquity.framework 95 | VisualAlert.framework 96 | VisualVoicemail.framework 97 | VoiceMemos.framework 98 | VoiceServices.framework 99 | Weather.framework 100 | WebBookmarks.framework 101 | WebCore.framework 102 | WebKit.framework 103 | WebUI.framework 104 | XPCObjects.framework 105 | YouTube.framework 106 | iAdCore.framework 107 | iCalendar.framework 108 | iOSDiagnosticsSupport.framework 109 | iPodUI.framework 110 | iTunesStore.framework 111 | iTunesStoreUI.framework 112 | iWorkImport.framework 113 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBInfoVC.m: -------------------------------------------------------------------------------- 1 | // 2 | // InfoViewController.m 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 25.01.09. 6 | // Copyright 2009 Sen:te. All rights reserved. 7 | // 8 | 9 | #import "RTBInfoVC.h" 10 | #import "RTBAppDelegate.h" 11 | #import "GCDWebServer.h" 12 | 13 | @interface RTBInfoVC () 14 | 15 | @property (nonatomic, retain) IBOutlet UILabel *webServerStatusLabel; 16 | 17 | @property (nonatomic, retain) IBOutlet UISwitch *showOCRuntimeClassesSwitch; 18 | @property (nonatomic, retain) IBOutlet UISwitch *addCommentForBlocksSwitch; 19 | @property (nonatomic, retain) IBOutlet UISwitch *toggleWebServerSwitch; 20 | 21 | @end 22 | 23 | @implementation RTBInfoVC 24 | 25 | //- (void)dismissModalView:(id)sender { 26 | // [self dismissViewControllerAnimated:YES completion:nil]; 27 | //} 28 | 29 | - (void)updateWebServerStatus { 30 | RTBAppDelegate *appDelegate = (RTBAppDelegate *)[[UIApplication sharedApplication] delegate]; 31 | NSString *serverURL = [NSString stringWithFormat:@"http://%@:%d/", [appDelegate myIPAddress], [appDelegate serverPort]]; 32 | _webServerStatusLabel.text = [[appDelegate webServer] isRunning] ? serverURL : @"Web Server Disabled"; 33 | } 34 | 35 | - (void)viewWillAppear:(BOOL)animated { 36 | [super viewWillAppear:animated]; 37 | 38 | [_showOCRuntimeClassesSwitch setOn:[[[NSUserDefaults standardUserDefaults] valueForKey:@"RTBShowOCRuntimeClasses"] boolValue]]; 39 | [_addCommentForBlocksSwitch setOn:[[[NSUserDefaults standardUserDefaults] valueForKey:@"RTBAddCommentsForBlocks"] boolValue]]; 40 | [_toggleWebServerSwitch setOn:[[[NSUserDefaults standardUserDefaults] valueForKey:@"RTBEnableWebServer"] boolValue]]; 41 | 42 | [self updateWebServerStatus]; 43 | } 44 | 45 | - (void)viewDidLoad { 46 | [super viewDidLoad]; 47 | 48 | self.title = NSLocalizedString(@"About", nil); 49 | // self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissModalView:)]; 50 | } 51 | 52 | - (IBAction)openWebSiteAction:(id)sender { 53 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://github.com/hbang/RuntimeBrowser"]]; 54 | } 55 | 56 | - (void)didReceiveMemoryWarning { 57 | [super didReceiveMemoryWarning]; 58 | 59 | self.webServerStatusLabel = nil; 60 | } 61 | 62 | - (IBAction)showOCRuntimeClassesAction:(id)sender { 63 | [[NSUserDefaults standardUserDefaults] setBool:((UISwitch *)sender).isOn forKey:@"RTBShowOCRuntimeClasses"]; 64 | } 65 | 66 | - (IBAction)addBlockCommentsAction:(id)sender { 67 | [[NSUserDefaults standardUserDefaults] setBool:((UISwitch *)sender).isOn forKey:@"RTBAddCommentsForBlocks"]; 68 | } 69 | 70 | - (IBAction)toggleWebServerAction:(id)sender { 71 | [[NSUserDefaults standardUserDefaults] setBool:((UISwitch *)sender).isOn forKey:@"RTBEnableWebServer"]; 72 | 73 | RTBAppDelegate *appDelegate = (RTBAppDelegate *)[[UIApplication sharedApplication] delegate]; 74 | 75 | if(((UISwitch *)sender).isOn) { 76 | [appDelegate startWebServer]; 77 | } else { 78 | [appDelegate stopWebServer]; 79 | } 80 | 81 | [self updateWebServerStatus]; 82 | } 83 | 84 | @end 85 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/5_1_pri.txt: -------------------------------------------------------------------------------- 1 | AOSKit.framework 2 | AOSNotification.framework 3 | AXRuntime.framework 4 | AccountSettings.framework 5 | AccountSettingsUI.framework 6 | ActorKit.framework 7 | AggregateDictionary.framework 8 | AirPortAssistant.framework 9 | AirTraffic.framework 10 | AppStoreUI.framework 11 | AppSupport.framework 12 | AppleAccount.framework 13 | ApplePushService.framework 14 | AssetsLibraryServices.framework 15 | AssistantServices.framework 16 | AssistantUI.framework 17 | BluetoothManager.framework 18 | BookmarkDAV.framework 19 | BulletinBoard.framework 20 | CalDAV.framework 21 | Celestial.framework 22 | CertInfo.framework 23 | CertUI.framework 24 | ChatKit.framework 25 | Conference.framework 26 | CoreDAV.framework 27 | CoreMediaStream.framework 28 | CorePDF.framework 29 | CoreTime.framework 30 | DataAccess.framework 31 | DataAccessExpress.framework 32 | DataAccessUI.framework 33 | DataDetectorsCore.framework 34 | DataDetectorsUI.framework 35 | DataMigration.framework 36 | FTClientServices.framework 37 | FTServices.framework 38 | GMM.framework 39 | GameKitServices.framework 40 | GeoServices.framework 41 | HomeSharing.framework 42 | IAP.framework 43 | IMAVCore.framework 44 | IMCore.framework 45 | ImageCapture.framework 46 | JavaScriptCore.framework 47 | Librarian.framework 48 | MIME.framework 49 | MMCSServices.framework 50 | MailServices.framework 51 | ManagedConfiguration.framework 52 | MediaControlReceiver.framework 53 | MediaControlSender.framework 54 | MediaRemote.framework 55 | MediaStream.framework 56 | MediaToolbox.framework 57 | Message.framework 58 | MobileActivation.framework 59 | MobileBackup.framework 60 | MobileTimer.framework 61 | MobileWirelessSync.framework 62 | MusicLibrary.framework 63 | Notes.framework 64 | OAuth.framework 65 | OfficeImport.framework 66 | PersistentConnection.framework 67 | PhotoBoothEffects.framework 68 | PhotoLibrary.framework 69 | PhotoLibraryServices.framework 70 | Preferences.framework 71 | PrintKit.framework 72 | ProofReader.framework 73 | ProtocolBuffer.framework 74 | RemoteUI.framework 75 | SAObjects.framework 76 | SMSCTServer.framework 77 | ScreenReaderBrailleDriver.framework 78 | ScreenReaderCore.framework 79 | ScreenReaderOutput.framework 80 | ScreenReaderOutputServer.framework 81 | Search.framework 82 | SoftwareUpdateServices.framework 83 | SportsTrainer.framework 84 | SportsVoices.framework 85 | SportsWorkout.framework 86 | Spotlight.framework 87 | SpringBoardServices.framework 88 | SpringBoardUI.framework 89 | Stocks.framework 90 | StoreServices.framework 91 | Symbolication.framework 92 | SyncedDefaults.framework 93 | TelephonyUI.framework 94 | TextInput.framework 95 | ToneLibrary.framework 96 | UIAccessibility.framework 97 | Ubiquity.framework 98 | VisualAlert.framework 99 | VisualVoicemail.framework 100 | VoiceMemos.framework 101 | VoiceServices.framework 102 | Weather.framework 103 | WebBookmarks.framework 104 | WebCore.framework 105 | WebKit.framework 106 | WebUI.framework 107 | XPCObjects.framework 108 | YouTube.framework 109 | iAdCore.framework 110 | iCalendar.framework 111 | iOSDiagnosticsSupport.framework 112 | iPodUI.framework 113 | iTunesStore.framework 114 | iTunesStoreUI.framework 115 | iWorkImport.framework 116 | -------------------------------------------------------------------------------- /iOS/GCDWebServer/Responses/GCDWebServerStreamedResponse.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012-2014, Pierre-Olivier Latour 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * The name of Pierre-Olivier Latour may not be used to endorse 13 | or promote products derived from this software without specific 14 | prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #if !__has_feature(objc_arc) 29 | #error GCDWebServer requires ARC 30 | #endif 31 | 32 | #import "GCDWebServerPrivate.h" 33 | 34 | @interface GCDWebServerStreamedResponse () { 35 | @private 36 | GCDWebServerAsyncStreamBlock _block; 37 | } 38 | @end 39 | 40 | @implementation GCDWebServerStreamedResponse 41 | 42 | + (instancetype)responseWithContentType:(NSString*)type streamBlock:(GCDWebServerStreamBlock)block { 43 | return [[[self class] alloc] initWithContentType:type streamBlock:block]; 44 | } 45 | 46 | + (instancetype)responseWithContentType:(NSString*)type asyncStreamBlock:(GCDWebServerAsyncStreamBlock)block { 47 | return [[[self class] alloc] initWithContentType:type asyncStreamBlock:block]; 48 | } 49 | 50 | - (instancetype)initWithContentType:(NSString*)type streamBlock:(GCDWebServerStreamBlock)block { 51 | return [self initWithContentType:type asyncStreamBlock:^(GCDWebServerBodyReaderCompletionBlock completionBlock) { 52 | 53 | NSError* error = nil; 54 | NSData* data = block(&error); 55 | completionBlock(data, error); 56 | 57 | }]; 58 | } 59 | 60 | - (instancetype)initWithContentType:(NSString*)type asyncStreamBlock:(GCDWebServerAsyncStreamBlock)block { 61 | if ((self = [super init])) { 62 | _block = [block copy]; 63 | 64 | self.contentType = type; 65 | } 66 | return self; 67 | } 68 | 69 | - (void)asyncReadDataWithCompletion:(GCDWebServerBodyReaderCompletionBlock)block { 70 | _block(block); 71 | } 72 | 73 | - (NSString*)description { 74 | NSMutableString* description = [NSMutableString stringWithString:[super description]]; 75 | [description appendString:@"\n\n"]; 76 | return description; 77 | } 78 | 79 | @end 80 | -------------------------------------------------------------------------------- /runtime_cli/runtime_cli.1: -------------------------------------------------------------------------------- 1 | .\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples. 2 | .\"See Also: 3 | .\"man mdoc.samples for a complete listing of options 4 | .\"man mdoc for the short list of editing options 5 | .\"/usr/share/misc/mdoc.template 6 | .Dd 2/16/11 \" DATE 7 | .Dt runtime_cli 1 \" Program name and manual section number 8 | .Os Darwin 9 | .Sh NAME \" Section Header - required - don't modify 10 | .Nm runtime_cli, 11 | .\" The following lines are read in generating the apropos(man -k) database. Use only key 12 | .\" words here as the database is built based on the words here and in the .ND line. 13 | .Nm Other_name_for_same_program(), 14 | .Nm Yet another name for the same program. 15 | .\" Use .Nm macro to designate other names for the documented program. 16 | .Nd This line parsed for whatis database. 17 | .Sh SYNOPSIS \" Section Header - required - don't modify 18 | .Nm 19 | .Op Fl abcd \" [-abcd] 20 | .Op Fl a Ar path \" [-a path] 21 | .Op Ar file \" [file] 22 | .Op Ar \" [file ...] 23 | .Ar arg0 \" Underlined argument - use .Ar anywhere to underline 24 | arg2 ... \" Arguments 25 | .Sh DESCRIPTION \" Section Header - required - don't modify 26 | Use the .Nm macro to refer to your program throughout the man page like such: 27 | .Nm 28 | Underlining is accomplished with the .Ar macro like this: 29 | .Ar underlined text . 30 | .Pp \" Inserts a space 31 | A list of items with descriptions: 32 | .Bl -tag -width -indent \" Begins a tagged list 33 | .It item a \" Each item preceded by .It macro 34 | Description of item a 35 | .It item b 36 | Description of item b 37 | .El \" Ends the list 38 | .Pp 39 | A list of flags and their descriptions: 40 | .Bl -tag -width -indent \" Differs from above in tag removed 41 | .It Fl a \"-a flag as a list item 42 | Description of -a flag 43 | .It Fl b 44 | Description of -b flag 45 | .El \" Ends the list 46 | .Pp 47 | .\" .Sh ENVIRONMENT \" May not be needed 48 | .\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1 49 | .\" .It Ev ENV_VAR_1 50 | .\" Description of ENV_VAR_1 51 | .\" .It Ev ENV_VAR_2 52 | .\" Description of ENV_VAR_2 53 | .\" .El 54 | .Sh FILES \" File used or created by the topic of the man page 55 | .Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact 56 | .It Pa /usr/share/file_name 57 | FILE_1 description 58 | .It Pa /Users/joeuser/Library/really_long_file_name 59 | FILE_2 description 60 | .El \" Ends the list 61 | .\" .Sh DIAGNOSTICS \" May not be needed 62 | .\" .Bl -diag 63 | .\" .It Diagnostic Tag 64 | .\" Diagnostic informtion here. 65 | .\" .It Diagnostic Tag 66 | .\" Diagnostic informtion here. 67 | .\" .El 68 | .Sh SEE ALSO 69 | .\" List links in ascending order by section, alphabetically within a section. 70 | .\" Please do not reference files that do not exist without filing a bug report 71 | .Xr a 1 , 72 | .Xr b 1 , 73 | .Xr c 1 , 74 | .Xr a 2 , 75 | .Xr b 2 , 76 | .Xr a 3 , 77 | .Xr b 3 78 | .\" .Sh BUGS \" Document known, unremedied bugs 79 | .\" .Sh HISTORY \" Document history if command behaves in a unique manner -------------------------------------------------------------------------------- /iOS/OCRuntime/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "filename" : "AppIcon29x29.png", 15 | "idiom" : "iphone", 16 | "scale" : "1x", 17 | "size" : "29x29" 18 | }, 19 | { 20 | "filename" : "AppIcon58x58.png", 21 | "idiom" : "iphone", 22 | "scale" : "2x", 23 | "size" : "29x29" 24 | }, 25 | { 26 | "filename" : "AppIcon87x87.png", 27 | "idiom" : "iphone", 28 | "scale" : "3x", 29 | "size" : "29x29" 30 | }, 31 | { 32 | "filename" : "AppIcon80x80.png", 33 | "idiom" : "iphone", 34 | "scale" : "2x", 35 | "size" : "40x40" 36 | }, 37 | { 38 | "filename" : "AppIcon120x120.png", 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "40x40" 42 | }, 43 | { 44 | "idiom" : "iphone", 45 | "scale" : "1x", 46 | "size" : "57x57" 47 | }, 48 | { 49 | "idiom" : "iphone", 50 | "scale" : "2x", 51 | "size" : "57x57" 52 | }, 53 | { 54 | "filename" : "AppIcon120x120-1.png", 55 | "idiom" : "iphone", 56 | "scale" : "2x", 57 | "size" : "60x60" 58 | }, 59 | { 60 | "filename" : "AppIcon180x180.png", 61 | "idiom" : "iphone", 62 | "scale" : "3x", 63 | "size" : "60x60" 64 | }, 65 | { 66 | "idiom" : "ipad", 67 | "scale" : "1x", 68 | "size" : "20x20" 69 | }, 70 | { 71 | "idiom" : "ipad", 72 | "scale" : "2x", 73 | "size" : "20x20" 74 | }, 75 | { 76 | "idiom" : "ipad", 77 | "scale" : "1x", 78 | "size" : "29x29" 79 | }, 80 | { 81 | "idiom" : "ipad", 82 | "scale" : "2x", 83 | "size" : "29x29" 84 | }, 85 | { 86 | "idiom" : "ipad", 87 | "scale" : "1x", 88 | "size" : "40x40" 89 | }, 90 | { 91 | "idiom" : "ipad", 92 | "scale" : "2x", 93 | "size" : "40x40" 94 | }, 95 | { 96 | "idiom" : "ipad", 97 | "scale" : "1x", 98 | "size" : "50x50" 99 | }, 100 | { 101 | "idiom" : "ipad", 102 | "scale" : "2x", 103 | "size" : "50x50" 104 | }, 105 | { 106 | "idiom" : "ipad", 107 | "scale" : "1x", 108 | "size" : "72x72" 109 | }, 110 | { 111 | "idiom" : "ipad", 112 | "scale" : "2x", 113 | "size" : "72x72" 114 | }, 115 | { 116 | "filename" : "AppIcon76x76.png", 117 | "idiom" : "ipad", 118 | "scale" : "1x", 119 | "size" : "76x76" 120 | }, 121 | { 122 | "filename" : "AppIcon152x152.png", 123 | "idiom" : "ipad", 124 | "scale" : "2x", 125 | "size" : "76x76" 126 | }, 127 | { 128 | "filename" : "AppIcon167x167.png", 129 | "idiom" : "ipad", 130 | "scale" : "2x", 131 | "size" : "83.5x83.5" 132 | }, 133 | { 134 | "idiom" : "ios-marketing", 135 | "scale" : "1x", 136 | "size" : "1024x1024" 137 | } 138 | ], 139 | "info" : { 140 | "author" : "xcode", 141 | "version" : 1 142 | } 143 | } 144 | -------------------------------------------------------------------------------- /tools/deprecated/draw_frameworks_history.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # $ python draw_frameworks_history.py && open ios_framweorks.png 4 | 5 | from PIL import Image, ImageDraw, ImageFont 6 | import os 7 | 8 | def build_data(path): 9 | d = {} # {'symbol':[('6.0', 'private'), ('6.1', 'public')]} 10 | 11 | for root, dirs, files in os.walk(path): 12 | sym_files = (f for f in files if len(f.split('_')) == 3 and f.endswith(".txt")) 13 | for filename in sym_files: 14 | path = os.path.join(root, filename) 15 | 16 | f_ = open(path) 17 | lines = f_.readlines() 18 | f_.close() 19 | 20 | file_type = filename.split('_')[2].split('.')[0] 21 | 22 | if file_type == 'pub': 23 | status = 'public' 24 | elif file_type == 'pri': 25 | status = 'private' 26 | elif file_type == 'lib': 27 | status = 'lib' 28 | else: 29 | raise Exception 30 | 31 | version = '.'.join(filename.split('_')[0:2]) 32 | 33 | lines = [l.strip('\n') for l in lines] 34 | 35 | for name in lines: 36 | if not name in d: 37 | d[name] = [(version, status)] 38 | else: 39 | d[name].append((version, status)) 40 | 41 | return d 42 | 43 | def sorted_versions(d): 44 | versions = set() 45 | for version_status in d.values(): 46 | for v, s in version_status: 47 | versions.add(v) 48 | 49 | sorted_versions = list(versions) 50 | sorted_versions.sort() 51 | 52 | return sorted_versions 53 | 54 | def draw_data(d): 55 | TOP_MARGIN_HEIGHT = 12 56 | RIGHT_MARGIN_WIDTH = 220 57 | LINE_HEIGHT = 12 58 | BOX_WIDTH = 32 59 | FONT = ImageFont.truetype("/System/Library/Fonts/Monaco.dfont", 9) 60 | 61 | versions = sorted_versions(d) 62 | 63 | img = Image.new("RGB", (len(versions) * BOX_WIDTH + RIGHT_MARGIN_WIDTH, len(d) * LINE_HEIGHT + TOP_MARGIN_HEIGHT), 'lightgray') 64 | draw = ImageDraw.Draw(img) 65 | draw.fontmode="1" # antialiasing 66 | 67 | for (i, k) in enumerate(sorted(d.iterkeys())): 68 | draw.text((len(versions) * BOX_WIDTH + 3, TOP_MARGIN_HEIGHT + i * LINE_HEIGHT), k, fill="black", font=FONT) 69 | 70 | l = d[k] 71 | for (version, status) in l: 72 | color = 'red' if status == 'private' else 'green' if status == 'public' else 'blue' 73 | x1 = versions.index(version) * BOX_WIDTH + 1 74 | x2 = x1 + BOX_WIDTH - 2 75 | y1 = TOP_MARGIN_HEIGHT + i * LINE_HEIGHT 76 | y2 = TOP_MARGIN_HEIGHT + (i+1) * LINE_HEIGHT - 2 77 | draw.rectangle((x1, y1, x2, y2), fill=color) 78 | 79 | major = None 80 | for (i, v) in enumerate(versions): 81 | current_major = v.split('.')[0] 82 | if current_major != major: 83 | draw.line((i * BOX_WIDTH, 0, i * BOX_WIDTH, len(d) * LINE_HEIGHT + TOP_MARGIN_HEIGHT), fill="black") 84 | major = current_major 85 | draw.text((i * BOX_WIDTH + 7, 0), v, fill="black", font=FONT) 86 | draw.line((len(versions) * BOX_WIDTH, 0, len(versions) * BOX_WIDTH, len(d) * LINE_HEIGHT + TOP_MARGIN_HEIGHT), fill="black") 87 | draw.line((0, TOP_MARGIN_HEIGHT, len(versions) * BOX_WIDTH, TOP_MARGIN_HEIGHT), fill="black") 88 | 89 | img.save("ios_frameworks.png", "PNG") 90 | 91 | d = build_data('data') 92 | draw_data(d) 93 | -------------------------------------------------------------------------------- /model/RTBProtocol.m: -------------------------------------------------------------------------------- 1 | // 2 | // ProtocolStub.m 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 24/04/15. 6 | // 7 | // 8 | 9 | #import "RTBProtocol.h" 10 | #import "RTBClass.h" 11 | #import 12 | #import "RTBRuntimeHeader.h" 13 | 14 | @implementation RTBProtocol 15 | 16 | - (NSComparisonResult)compare:(RTBProtocol *)other { 17 | return [self.protocolName compare:other.protocolName]; 18 | } 19 | 20 | + (instancetype)protocolStubWithProtocolName:(NSString *)protocolName { 21 | NSAssert([protocolName isKindOfClass:[NSString class]], @""); 22 | 23 | RTBProtocol *p = [[RTBProtocol alloc] init]; 24 | p.protocolName = protocolName; 25 | p.conformingClassesStubsSet = [NSMutableSet set]; 26 | return p; 27 | } 28 | 29 | - (NSArray *)sortedAdoptedProtocolsNames { 30 | Protocol *p = NSProtocolFromString(_protocolName); 31 | if(p == nil) return nil; 32 | 33 | NSMutableArray *ma = [NSMutableArray array]; 34 | 35 | unsigned int outCount = 0; 36 | __unsafe_unretained Protocol **protocolList = protocol_copyProtocolList(p, &outCount); 37 | for(int i = 0; i < outCount; i++) { 38 | Protocol *adoptedProtocol = protocolList[i]; 39 | NSString *adoptedProtocolName = [NSString stringWithCString:protocol_getName(adoptedProtocol) encoding:NSUTF8StringEncoding]; 40 | [ma addObject:adoptedProtocolName]; 41 | } 42 | free(protocolList); 43 | 44 | [ma sortedArrayUsingSelector:@selector(compare:)]; 45 | 46 | return ma; 47 | } 48 | 49 | - (NSArray *)sortedMethodsRequired:(BOOL)required instanceMethods:(BOOL)instanceMethods { 50 | Protocol *p = NSProtocolFromString([self protocolName]); 51 | if(p == nil) return nil; 52 | 53 | NSMutableArray *ma = [NSMutableArray array]; 54 | 55 | unsigned int outCount = 0; 56 | struct objc_method_description *methods = protocol_copyMethodDescriptionList(p, required, instanceMethods, &outCount); 57 | for(int i = 0; i < outCount; i++) { 58 | struct objc_method_description method = methods[i]; 59 | 60 | NSString *name = NSStringFromSelector(method.name); 61 | NSString *description = [RTBRuntimeHeader descriptionForProtocol:p selector:method.name isRequiredMethod:required isInstanceMethod:instanceMethods]; 62 | 63 | NSDictionary *d = @{@"name":name, @"description":description}; 64 | 65 | [ma addObject:d]; 66 | } 67 | 68 | free(methods); 69 | 70 | [ma sortUsingComparator:^NSComparisonResult(NSDictionary *d1, NSDictionary *d2) { 71 | return [d1[@"name"] compare:d2[@"name"]]; 72 | }]; 73 | 74 | return ma; 75 | } 76 | 77 | - (NSString *)description { 78 | NSString *superDescription = [super description]; 79 | return [NSString stringWithFormat:@"%@ - %@", superDescription, _protocolName]; 80 | } 81 | 82 | - (BOOL)hasChildren { 83 | return [_conformingClassesStubsSet count] > 0; 84 | } 85 | 86 | #pragma mark BrowserNode protocol 87 | 88 | - (NSArray *)children { 89 | NSMutableArray *ma = [[_conformingClassesStubsSet allObjects] mutableCopy]; 90 | 91 | [ma sortedArrayUsingSelector:@selector(compare:)]; 92 | 93 | return ma; 94 | } 95 | 96 | - (NSString *)nodeName { 97 | return _protocolName; 98 | } 99 | 100 | - (NSString *)nodeInfo { 101 | return [NSString stringWithFormat:@"%@", _protocolName]; 102 | } 103 | 104 | - (BOOL)canBeSavedAsHeader { 105 | return YES; 106 | } 107 | 108 | @end 109 | -------------------------------------------------------------------------------- /iOS/GCDWebServer/Responses/GCDWebServerStreamedResponse.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012-2014, Pierre-Olivier Latour 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * The name of Pierre-Olivier Latour may not be used to endorse 13 | or promote products derived from this software without specific 14 | prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import "GCDWebServerResponse.h" 29 | 30 | /** 31 | * The GCDWebServerStreamBlock is called to stream the data for the HTTP body. 32 | * The block must return either a chunk of data, an empty NSData when done, or 33 | * nil on error and set the "error" argument which is guaranteed to be non-NULL. 34 | */ 35 | typedef NSData* (^GCDWebServerStreamBlock)(NSError** error); 36 | 37 | /** 38 | * The GCDWebServerAsyncStreamBlock works like the GCDWebServerStreamBlock 39 | * except the streamed data can be returned at a later time allowing for 40 | * truly asynchronous generation of the data. 41 | * 42 | * The block must call "completionBlock" passing the new chunk of data when ready, 43 | * an empty NSData when done, or nil on error and pass a NSError. 44 | * 45 | * The block cannot call "completionBlock" more than once per invocation. 46 | */ 47 | typedef void (^GCDWebServerAsyncStreamBlock)(GCDWebServerBodyReaderCompletionBlock completionBlock); 48 | 49 | /** 50 | * The GCDWebServerStreamedResponse subclass of GCDWebServerResponse streams 51 | * the body of the HTTP response using a GCD block. 52 | */ 53 | @interface GCDWebServerStreamedResponse : GCDWebServerResponse 54 | 55 | /** 56 | * Creates a response with streamed data and a given content type. 57 | */ 58 | + (instancetype)responseWithContentType:(NSString*)type streamBlock:(GCDWebServerStreamBlock)block; 59 | 60 | /** 61 | * Creates a response with async streamed data and a given content type. 62 | */ 63 | + (instancetype)responseWithContentType:(NSString*)type asyncStreamBlock:(GCDWebServerAsyncStreamBlock)block; 64 | 65 | /** 66 | * Initializes a response with streamed data and a given content type. 67 | */ 68 | - (instancetype)initWithContentType:(NSString*)type streamBlock:(GCDWebServerStreamBlock)block; 69 | 70 | /** 71 | * This method is the designated initializer for the class. 72 | */ 73 | - (instancetype)initWithContentType:(NSString*)type asyncStreamBlock:(GCDWebServerAsyncStreamBlock)block; 74 | 75 | @end 76 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBTreeTVC.m: -------------------------------------------------------------------------------- 1 | // 2 | // RTBTreeTVC.m 3 | // OCRuntime 4 | // 5 | // Created by Nicolas Seriot on 7/17/13. 6 | // Copyright (c) 2013 Nicolas Seriot. All rights reserved. 7 | // 8 | 9 | #import "RTBTreeTVC.h" 10 | #import "RTBRuntime.h" 11 | #import "RTBClassCell.h" 12 | #import "RTBClass.h" 13 | #import "RTBClassDisplayVC.h" 14 | 15 | @interface RTBTreeTVC () 16 | 17 | @end 18 | 19 | @implementation RTBTreeTVC 20 | 21 | - (RTBClassDisplayVC *)classDisplayVC { 22 | if(_classDisplayVC == nil) { 23 | self.classDisplayVC = [[RTBClassDisplayVC alloc] initWithNibName:@"ClassDisplayVC" bundle:nil]; 24 | } 25 | return _classDisplayVC; 26 | } 27 | 28 | - (void)viewDidLoad { 29 | [super viewDidLoad]; 30 | self.allClasses = [RTBRuntime sharedInstance]; 31 | if(!_isSubLevel) { 32 | self.classStubs = [_allClasses rootClasses]; 33 | // self.title = @"Tree"; 34 | self.navigationItem.title = @"Root Classes"; 35 | } 36 | } 37 | 38 | - (void)viewDidUnload { 39 | self.classDisplayVC = nil; 40 | [super viewDidUnload]; 41 | } 42 | 43 | - (void)viewWillAppear:(BOOL)animated { 44 | if(!_isSubLevel) { 45 | self.classStubs = [_allClasses rootClasses]; // classes might have changed because of dynamic loading 46 | } 47 | [super viewWillAppear:animated]; 48 | } 49 | 50 | - (void)didReceiveMemoryWarning { 51 | [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview 52 | // Release anything that's not essential, such as cached data 53 | } 54 | 55 | - (void)showHeader:(id)sender { 56 | NSLog(@"-- showHeader:%@", sender); 57 | } 58 | 59 | #pragma mark Table view methods 60 | 61 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 62 | return 1; 63 | } 64 | 65 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 66 | return [_classStubs count]; 67 | } 68 | 69 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 70 | 71 | RTBClassCell *cell = (RTBClassCell *)[tableView dequeueReusableCellWithIdentifier:@"RTBClassCell"]; 72 | 73 | // Set up the cell 74 | RTBClass *cs = [_classStubs objectAtIndex:indexPath.row]; 75 | #warning TODO: cs.class = .. 76 | cell.className = cs.classObjectName; 77 | cell.accessoryType = [[cs subclassesStubs] count] > 0 ? UITableViewCellAccessoryDisclosureIndicator : UITableViewCellAccessoryNone; 78 | 79 | return cell; 80 | } 81 | 82 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 83 | RTBClass *cs = [_classStubs objectAtIndex:indexPath.row]; 84 | 85 | if([[cs subclassesStubs] count] == 0) { 86 | RTBClassCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 87 | [cell showHeaders:self]; 88 | return; 89 | } 90 | 91 | UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; 92 | RTBTreeTVC *tvc = (RTBTreeTVC *)[sb instantiateViewControllerWithIdentifier:@"RTBTreeTVC"]; 93 | tvc.isSubLevel = YES; 94 | tvc.classStubs = [cs subclassesStubs]; 95 | tvc.title = cs.classObjectName; 96 | [self.navigationController pushViewController:tvc animated:YES]; 97 | } 98 | 99 | #pragma mark - Navigation 100 | 101 | //// In a story board-based application, you will often want to do a little preparation before navigation 102 | //- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 103 | //{ 104 | // // Get the new view controller using [segue destinationViewController]. 105 | // // Pass the selected object to the new view controller. 106 | //} 107 | 108 | @end 109 | -------------------------------------------------------------------------------- /OSX/AppController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | AppController.h created by eepstein on Mon 15-Apr-2002 4 | 5 | Author: Ezra Epstein (eepstein@prajna.com) 6 | 7 | Copyright (c) 2002 by Prajna IT Consulting. 8 | http://www.prajna.com 9 | 10 | ======================================================================== 11 | 12 | THIS PROGRAM AND THIS CODE COME WITH ABSOLUTELY NO WARRANTY. 13 | THIS CODE HAS BEEN PROVIDED "AS IS" AND THE RESPONSIBILITY 14 | FOR ITS OPERATIONS IS 100% YOURS. 15 | 16 | ======================================================================== 17 | This file is part of RuntimeBrowser. 18 | 19 | RuntimeBrowser is free software; you can redistribute it and/or modify 20 | it under the terms of the GNU General Public License as published by 21 | the Free Software Foundation; either version 2 of the License, or 22 | (at your option) any later version. 23 | 24 | RuntimeBrowser is distributed in the hope that it will be useful, 25 | but WITHOUT ANY WARRANTY; without even the implied warranty of 26 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27 | GNU General Public License for more details. 28 | 29 | You should have received a copy of the GNU General Public License 30 | along with RuntimeBrowser (in a file called "COPYING.txt"); if not, 31 | write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 32 | Boston, MA 02111-1307 USA 33 | 34 | */ 35 | 36 | //TODO: make text size changeable 37 | //TODO: reveal in Finder 38 | //TODO: add history with navigation 39 | //TODO: improve cells appearance (icons margins, ...) 40 | //TODO: improve search (define search fields, ...) 41 | //TODO: keep selection on view change 42 | 43 | #import 44 | 45 | @class RTBRuntime; 46 | @class BrowserNode; 47 | 48 | typedef enum { 49 | RBBrowserViewTypeImages = 0, 50 | RBBrowserViewTypeList = 1, 51 | RBBrowserViewTypeTree = 2, 52 | RBBrowserViewTypeProtocols = 3 53 | } RBBrowserViewType; 54 | 55 | @interface AppController : NSObject { 56 | 57 | #ifdef DEBUG 58 | double searchStart; 59 | #endif 60 | 61 | BrowserNode *searchResultsNode; 62 | 63 | RTBRuntime *allClasses; 64 | 65 | NSString *openDir; 66 | NSURL *saveDirURL; 67 | 68 | NSArray *keywords; 69 | NSArray *classes; 70 | 71 | NSMutableArray *searchResults; 72 | 73 | NSOperationQueue *searchQueue; 74 | } 75 | 76 | @property (nonatomic, strong) IBOutlet NSTextField *label; 77 | @property (nonatomic, strong) IBOutlet NSBrowser *classBrowser; 78 | @property (nonatomic, strong) IBOutlet NSTextView *headerTextView; 79 | @property (nonatomic, strong) IBOutlet NSSegmentedControl *segmentedControl; 80 | @property (nonatomic, strong) IBOutlet NSSearchField *searchField; 81 | @property (nonatomic, strong) NSWindow *mainWindow; 82 | @property (nonatomic, strong) NSURL *saveDirURL; 83 | @property (nonatomic, strong) NSArray *keywords; 84 | @property (nonatomic, strong) RTBRuntime *allClasses; 85 | @property (nonatomic, strong) NSArray *classes; 86 | @property (nonatomic, strong) BrowserNode *searchResultsNode; 87 | @property (nonatomic, strong) NSMutableArray *searchResults; 88 | @property (nonatomic, strong) NSOperationQueue *searchQueue; 89 | 90 | - (IBAction)openAction:(id)sender; 91 | - (IBAction)saveAction:(id)sender; 92 | - (IBAction)saveAllAction:(id)sender; 93 | 94 | - (IBAction)changeViewTypeFromSegmentedControl:(NSSegmentedControl *)sender; 95 | - (IBAction)changeViewTypeFromMenuItem:(NSMenuItem *)sender; 96 | 97 | - (IBAction)cellClickedAction:(id)sender; 98 | 99 | - (IBAction)search:(id)sender; 100 | 101 | @end 102 | -------------------------------------------------------------------------------- /iOS/GCDWebServer/Requests/GCDWebServerDataRequest.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012-2014, Pierre-Olivier Latour 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * The name of Pierre-Olivier Latour may not be used to endorse 13 | or promote products derived from this software without specific 14 | prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #if !__has_feature(objc_arc) 29 | #error GCDWebServer requires ARC 30 | #endif 31 | 32 | #import "GCDWebServerPrivate.h" 33 | 34 | @interface GCDWebServerDataRequest () { 35 | @private 36 | NSMutableData* _data; 37 | 38 | NSString* _text; 39 | id _jsonObject; 40 | } 41 | @end 42 | 43 | @implementation GCDWebServerDataRequest 44 | 45 | @synthesize data=_data; 46 | 47 | - (BOOL)open:(NSError**)error { 48 | if (self.contentLength != NSUIntegerMax) { 49 | _data = [[NSMutableData alloc] initWithCapacity:self.contentLength]; 50 | } else { 51 | _data = [[NSMutableData alloc] init]; 52 | } 53 | if (_data == nil) { 54 | if (error) { 55 | *error = [NSError errorWithDomain:kGCDWebServerErrorDomain code:-1 userInfo:@{NSLocalizedDescriptionKey: @"Failed allocating memory"}]; 56 | } 57 | return NO; 58 | } 59 | return YES; 60 | } 61 | 62 | - (BOOL)writeData:(NSData*)data error:(NSError**)error { 63 | [_data appendData:data]; 64 | return YES; 65 | } 66 | 67 | - (BOOL)close:(NSError**)error { 68 | return YES; 69 | } 70 | 71 | - (NSString*)description { 72 | NSMutableString* description = [NSMutableString stringWithString:[super description]]; 73 | if (_data) { 74 | [description appendString:@"\n\n"]; 75 | [description appendString:GCDWebServerDescribeData(_data, self.contentType)]; 76 | } 77 | return description; 78 | } 79 | 80 | @end 81 | 82 | @implementation GCDWebServerDataRequest (Extensions) 83 | 84 | - (NSString*)text { 85 | if (_text == nil) { 86 | if ([self.contentType hasPrefix:@"text/"]) { 87 | NSString* charset = GCDWebServerExtractHeaderValueParameter(self.contentType, @"charset"); 88 | _text = [[NSString alloc] initWithData:self.data encoding:GCDWebServerStringEncodingFromCharset(charset)]; 89 | } else { 90 | GWS_DNOT_REACHED(); 91 | } 92 | } 93 | return _text; 94 | } 95 | 96 | - (id)jsonObject { 97 | if (_jsonObject == nil) { 98 | NSString* mimeType = GCDWebServerTruncateHeaderValue(self.contentType); 99 | if ([mimeType isEqualToString:@"application/json"] || [mimeType isEqualToString:@"text/json"] || [mimeType isEqualToString:@"text/javascript"]) { 100 | _jsonObject = [NSJSONSerialization JSONObjectWithData:_data options:0 error:NULL]; 101 | } else { 102 | GWS_DNOT_REACHED(); 103 | } 104 | } 105 | return _jsonObject; 106 | } 107 | 108 | @end 109 | -------------------------------------------------------------------------------- /tools/deprecated/sort_ios_headers_contents.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | """ 4 | Overwrites the headers with their contents-sorted version. 5 | The goal is to ease comparision between versions. 6 | 7 | $ cd iOS-Runtime-Headers 8 | $ python sort_ios_headers_contents.py 9 | """ 10 | 11 | import os 12 | 13 | def write_header_description(filepath, first_lines, ivars, properties, class_methods, instance_methods): 14 | 15 | with open (filepath, 'w') as f: 16 | 17 | for l in first_lines: 18 | f.write(l) 19 | for l in ivars: 20 | f.write(l) 21 | f.write("}\n\n") 22 | 23 | for l in properties: 24 | f.write(l) 25 | if len(properties): 26 | f.write("\n") 27 | 28 | for l in class_methods: 29 | f.write(l) 30 | if len(class_methods): 31 | f.write("\n") 32 | 33 | for l in instance_methods: 34 | f.write(l) 35 | if len(instance_methods): 36 | f.write("\n") 37 | 38 | f.write("@end\n") 39 | 40 | def sort_header(path_in, path_out): 41 | 42 | ivars = [] 43 | properties = [] 44 | class_methods = [] 45 | instance_methods = [] 46 | 47 | first_lines = [] 48 | has_seen_interface = False 49 | 50 | with open(path_in, 'r') as f: 51 | for line in f: 52 | 53 | if not has_seen_interface: 54 | if line.startswith("/* Generated by RuntimeBrowser"): 55 | # remove version to ease diff comparision 56 | line = "/* Generated by RuntimeBrowser\n" 57 | 58 | # remove extraneous new lines 59 | if len(first_lines) > 0 and len(first_lines[-1]) is 1 and len(line) is 1: 60 | continue 61 | 62 | if line.startswith('@class'): 63 | line = line.replace(',', '') 64 | line = line.replace(';\n', '') 65 | line = line.replace('@class', '') 66 | comps = line.split(' ') 67 | comps = map(lambda s:s.strip(' ' ), comps) 68 | comps = filter(lambda s:len(s) > 0, comps) 69 | comps.sort() 70 | line = "@class " + ', '.join(comps) + ";\n" 71 | 72 | if line.startswith('@interface'): 73 | has_seen_interface = True 74 | if not line.endswith('{\n'): 75 | line = line[:-1] + ' {\n' 76 | if line.endswith(' {\n'): 77 | line = line[:-4] + ' {\n' 78 | 79 | first_lines.append(line) 80 | continue 81 | 82 | if line is '{\n': 83 | first_lines = first_lines[:-1] 84 | 85 | if line.startswith(' '): 86 | ivars.append(line) 87 | elif line.startswith('@property'): 88 | properties.append(line) 89 | elif line.startswith('+'): 90 | class_methods.append(line) 91 | elif line.startswith('-'): 92 | instance_methods.append(line) 93 | 94 | ivars = sorted(ivars, key = lambda s: s.replace('*', '').split(' ')[-1]) 95 | properties = sorted(properties, key = lambda s: s.split(' ')[-1]) 96 | class_methods = sorted(class_methods, key = lambda s: ')'.join(s.split(')')[1:])) 97 | instance_methods = sorted(instance_methods, key = lambda s: ')'.join(s.split(')')[1:])) 98 | 99 | write_header_description(path_out, first_lines, ivars, properties, class_methods, instance_methods) 100 | 101 | for root, dirs, files in os.walk('.'): 102 | 103 | headers = (f for f in files if f.endswith(".h")) 104 | 105 | for f in headers: 106 | path = os.path.join(root, f) 107 | print path 108 | 109 | sort_header(path, path) 110 | -------------------------------------------------------------------------------- /iOS/GCDWebServer/Core/GCDWebServerFunctions.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012-2014, Pierre-Olivier Latour 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * The name of Pierre-Olivier Latour may not be used to endorse 13 | or promote products derived from this software without specific 14 | prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | #ifdef __cplusplus 31 | extern "C" { 32 | #endif 33 | 34 | /** 35 | * Converts a file extension to the corresponding MIME type. 36 | * If there is no match, "application/octet-stream" is returned. 37 | */ 38 | NSString* GCDWebServerGetMimeTypeForExtension(NSString* extension); 39 | 40 | /** 41 | * Add percent-escapes to a string so it can be used in a URL. 42 | * The legal characters ":@/?&=+" are also escaped to ensure compatibility 43 | * with URL encoded forms and URL queries. 44 | */ 45 | NSString* GCDWebServerEscapeURLString(NSString* string); 46 | 47 | /** 48 | * Unescapes a URL percent-encoded string. 49 | */ 50 | NSString* GCDWebServerUnescapeURLString(NSString* string); 51 | 52 | /** 53 | * Extracts the unescaped names and values from an 54 | * "application/x-www-form-urlencoded" form. 55 | * http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1 56 | */ 57 | NSDictionary* GCDWebServerParseURLEncodedForm(NSString* form); 58 | 59 | /** 60 | * On OS X, returns the IPv4 or IPv6 address as a string of the primary 61 | * connected service or nil if not available. 62 | * 63 | * On iOS, returns the IPv4 or IPv6 address as a string of the WiFi 64 | * interface if connected or nil otherwise. 65 | */ 66 | NSString* GCDWebServerGetPrimaryIPAddress(BOOL useIPv6); 67 | 68 | /** 69 | * Converts a date into a string using RFC822 formatting. 70 | * https://tools.ietf.org/html/rfc822#section-5 71 | * https://tools.ietf.org/html/rfc1123#section-5.2.14 72 | */ 73 | NSString* GCDWebServerFormatRFC822(NSDate* date); 74 | 75 | /** 76 | * Converts a RFC822 formatted string into a date. 77 | * https://tools.ietf.org/html/rfc822#section-5 78 | * https://tools.ietf.org/html/rfc1123#section-5.2.14 79 | * 80 | * @warning Timezones other than GMT are not supported by this function. 81 | */ 82 | NSDate* GCDWebServerParseRFC822(NSString* string); 83 | 84 | /** 85 | * Converts a date into a string using IOS 8601 formatting. 86 | * http://tools.ietf.org/html/rfc3339#section-5.6 87 | */ 88 | NSString* GCDWebServerFormatISO8601(NSDate* date); 89 | 90 | /** 91 | * Converts a ISO 8601 formatted string into a date. 92 | * http://tools.ietf.org/html/rfc3339#section-5.6 93 | * 94 | * @warning Only "calendar" variant is supported at this time and timezones 95 | * other than GMT are not supported either. 96 | */ 97 | NSDate* GCDWebServerParseISO8601(NSString* string); 98 | 99 | #ifdef __cplusplus 100 | } 101 | #endif 102 | -------------------------------------------------------------------------------- /iOS/GCDWebServer/Responses/GCDWebServerErrorResponse.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012-2014, Pierre-Olivier Latour 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * The name of Pierre-Olivier Latour may not be used to endorse 13 | or promote products derived from this software without specific 14 | prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import "GCDWebServerDataResponse.h" 29 | #import "GCDWebServerHTTPStatusCodes.h" 30 | 31 | /** 32 | * The GCDWebServerDataResponse subclass of GCDWebServerDataResponse generates 33 | * an HTML body from an HTTP status code and an error message. 34 | */ 35 | @interface GCDWebServerErrorResponse : GCDWebServerDataResponse 36 | 37 | /** 38 | * Creates a client error response with the corresponding HTTP status code. 39 | */ 40 | + (instancetype)responseWithClientError:(GCDWebServerClientErrorHTTPStatusCode)errorCode message:(NSString*)format, ... NS_FORMAT_FUNCTION(2,3); 41 | 42 | /** 43 | * Creates a server error response with the corresponding HTTP status code. 44 | */ 45 | + (instancetype)responseWithServerError:(GCDWebServerServerErrorHTTPStatusCode)errorCode message:(NSString*)format, ... NS_FORMAT_FUNCTION(2,3); 46 | 47 | /** 48 | * Creates a client error response with the corresponding HTTP status code 49 | * and an underlying NSError. 50 | */ 51 | + (instancetype)responseWithClientError:(GCDWebServerClientErrorHTTPStatusCode)errorCode underlyingError:(NSError*)underlyingError message:(NSString*)format, ... NS_FORMAT_FUNCTION(3,4); 52 | 53 | /** 54 | * Creates a server error response with the corresponding HTTP status code 55 | * and an underlying NSError. 56 | */ 57 | + (instancetype)responseWithServerError:(GCDWebServerServerErrorHTTPStatusCode)errorCode underlyingError:(NSError*)underlyingError message:(NSString*)format, ... NS_FORMAT_FUNCTION(3,4); 58 | 59 | /** 60 | * Initializes a client error response with the corresponding HTTP status code. 61 | */ 62 | - (instancetype)initWithClientError:(GCDWebServerClientErrorHTTPStatusCode)errorCode message:(NSString*)format, ... NS_FORMAT_FUNCTION(2,3); 63 | 64 | /** 65 | * Initializes a server error response with the corresponding HTTP status code. 66 | */ 67 | - (instancetype)initWithServerError:(GCDWebServerServerErrorHTTPStatusCode)errorCode message:(NSString*)format, ... NS_FORMAT_FUNCTION(2,3); 68 | 69 | /** 70 | * Initializes a client error response with the corresponding HTTP status code 71 | * and an underlying NSError. 72 | */ 73 | - (instancetype)initWithClientError:(GCDWebServerClientErrorHTTPStatusCode)errorCode underlyingError:(NSError*)underlyingError message:(NSString*)format, ... NS_FORMAT_FUNCTION(3,4); 74 | 75 | /** 76 | * Initializes a server error response with the corresponding HTTP status code 77 | * and an underlying NSError. 78 | */ 79 | - (instancetype)initWithServerError:(GCDWebServerServerErrorHTTPStatusCode)errorCode underlyingError:(NSError*)underlyingError message:(NSString*)format, ... NS_FORMAT_FUNCTION(3,4); 80 | 81 | @end 82 | -------------------------------------------------------------------------------- /iOS/GCDWebServer/Responses/GCDWebServerDataResponse.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012-2014, Pierre-Olivier Latour 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * The name of Pierre-Olivier Latour may not be used to endorse 13 | or promote products derived from this software without specific 14 | prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import "GCDWebServerResponse.h" 29 | 30 | /** 31 | * The GCDWebServerDataResponse subclass of GCDWebServerResponse reads the body 32 | * of the HTTP response from memory. 33 | */ 34 | @interface GCDWebServerDataResponse : GCDWebServerResponse 35 | 36 | /** 37 | * Creates a response with data in memory and a given content type. 38 | */ 39 | + (instancetype)responseWithData:(NSData*)data contentType:(NSString*)type; 40 | 41 | /** 42 | * This method is the designated initializer for the class. 43 | */ 44 | - (instancetype)initWithData:(NSData*)data contentType:(NSString*)type; 45 | 46 | @end 47 | 48 | @interface GCDWebServerDataResponse (Extensions) 49 | 50 | /** 51 | * Creates a data response from text encoded using UTF-8. 52 | */ 53 | + (instancetype)responseWithText:(NSString*)text; 54 | 55 | /** 56 | * Creates a data response from HTML encoded using UTF-8. 57 | */ 58 | + (instancetype)responseWithHTML:(NSString*)html; 59 | 60 | /** 61 | * Creates a data response from an HTML template encoded using UTF-8. 62 | * See -initWithHTMLTemplate:variables: for details. 63 | */ 64 | + (instancetype)responseWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables; 65 | 66 | /** 67 | * Creates a data response from a serialized JSON object and the default 68 | * "application/json" content type. 69 | */ 70 | + (instancetype)responseWithJSONObject:(id)object; 71 | 72 | /** 73 | * Creates a data response from a serialized JSON object and a custom 74 | * content type. 75 | */ 76 | + (instancetype)responseWithJSONObject:(id)object contentType:(NSString*)type; 77 | 78 | /** 79 | * Initializes a data response from text encoded using UTF-8. 80 | */ 81 | - (instancetype)initWithText:(NSString*)text; 82 | 83 | /** 84 | * Initializes a data response from HTML encoded using UTF-8. 85 | */ 86 | - (instancetype)initWithHTML:(NSString*)html; 87 | 88 | /** 89 | * Initializes a data response from an HTML template encoded using UTF-8. 90 | * 91 | * All occurences of "%variable%" within the HTML template are replaced with 92 | * their corresponding values. 93 | */ 94 | - (instancetype)initWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables; 95 | 96 | /** 97 | * Initializes a data response from a serialized JSON object and the default 98 | * "application/json" content type. 99 | */ 100 | - (instancetype)initWithJSONObject:(id)object; 101 | 102 | /** 103 | * Initializes a data response from a serialized JSON object and a custom 104 | * content type. 105 | */ 106 | - (instancetype)initWithJSONObject:(id)object contentType:(NSString*)type; 107 | 108 | @end 109 | -------------------------------------------------------------------------------- /iOS/GCDWebServer/Responses/GCDWebServerFileResponse.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012-2014, Pierre-Olivier Latour 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * The name of Pierre-Olivier Latour may not be used to endorse 13 | or promote products derived from this software without specific 14 | prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import "GCDWebServerResponse.h" 29 | 30 | /** 31 | * The GCDWebServerFileResponse subclass of GCDWebServerResponse reads the body 32 | * of the HTTP response from a file on disk. 33 | * 34 | * It will automatically set the contentType, lastModifiedDate and eTag 35 | * properties of the GCDWebServerResponse according to the file extension and 36 | * metadata. 37 | */ 38 | @interface GCDWebServerFileResponse : GCDWebServerResponse 39 | 40 | /** 41 | * Creates a response with the contents of a file. 42 | */ 43 | + (instancetype)responseWithFile:(NSString*)path; 44 | 45 | /** 46 | * Creates a response like +responseWithFile: and sets the "Content-Disposition" 47 | * HTTP header for a download if the "attachment" argument is YES. 48 | */ 49 | + (instancetype)responseWithFile:(NSString*)path isAttachment:(BOOL)attachment; 50 | 51 | /** 52 | * Creates a response like +responseWithFile: but restricts the file contents 53 | * to a specific byte range. 54 | * 55 | * See -initWithFile:byteRange: for details. 56 | */ 57 | + (instancetype)responseWithFile:(NSString*)path byteRange:(NSRange)range; 58 | 59 | /** 60 | * Creates a response like +responseWithFile:byteRange: and sets the 61 | * "Content-Disposition" HTTP header for a download if the "attachment" 62 | * argument is YES. 63 | */ 64 | + (instancetype)responseWithFile:(NSString*)path byteRange:(NSRange)range isAttachment:(BOOL)attachment; 65 | 66 | /** 67 | * Initializes a response with the contents of a file. 68 | */ 69 | - (instancetype)initWithFile:(NSString*)path; 70 | 71 | /** 72 | * Initializes a response like +responseWithFile: and sets the 73 | * "Content-Disposition" HTTP header for a download if the "attachment" 74 | * argument is YES. 75 | */ 76 | - (instancetype)initWithFile:(NSString*)path isAttachment:(BOOL)attachment; 77 | 78 | /** 79 | * Initializes a response like -initWithFile: but restricts the file contents 80 | * to a specific byte range. This range should be set to (NSUIntegerMax, 0) for 81 | * the full file, (offset, length) if expressed from the beginning of the file, 82 | * or (NSUIntegerMax, length) if expressed from the end of the file. The "offset" 83 | * and "length" values will be automatically adjusted to be compatible with the 84 | * actual size of the file. 85 | * 86 | * This argument would typically be set to the value of the byteRange property 87 | * of the current GCDWebServerRequest. 88 | */ 89 | - (instancetype)initWithFile:(NSString*)path byteRange:(NSRange)range; 90 | 91 | /** 92 | * This method is the designated initializer for the class. 93 | */ 94 | - (instancetype)initWithFile:(NSString*)path byteRange:(NSRange)range isAttachment:(BOOL)attachment; 95 | 96 | @end 97 | -------------------------------------------------------------------------------- /iOS/OCRuntime/RTBSearchVC.m: -------------------------------------------------------------------------------- 1 | // 2 | // SearchViewController.m 3 | // RuntimeBrowser 4 | // 5 | // Created by Nicolas Seriot on 18.01.09. 6 | // Copyright 2009 Sen:te. All rights reserved. 7 | // 8 | 9 | #import "RTBSearchVC.h" 10 | #import "RTBClass.h" 11 | #import "RTBClassCell.h" 12 | #import "RTBRuntime.h" 13 | 14 | @implementation RTBSearchVC 15 | 16 | /* 17 | // The designated initializer. Override to perform setup that is required before the view is loaded. 18 | - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 19 | if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 20 | // Custom initialization 21 | } 22 | return self; 23 | } 24 | */ 25 | 26 | /* 27 | // Implement loadView to create a view hierarchy programmatically, without using a nib. 28 | - (void)loadView { 29 | } 30 | */ 31 | 32 | 33 | // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 34 | - (void)viewDidLoad { 35 | self.title = @"Search"; 36 | self.allClasses = [RTBRuntime sharedInstance]; 37 | self.foundClasses = [NSMutableArray array]; 38 | 39 | //searchBar.keyboardType = UIKeyboardTypeASCIICapable; 40 | _theSearchBar.autocapitalizationType = UITextAutocapitalizationTypeNone; 41 | _theSearchBar.autocorrectionType = UITextAutocorrectionTypeNo; 42 | // _theSearchBar.showsCancelButton = YES; 43 | 44 | [super viewDidLoad]; 45 | } 46 | 47 | - (void)viewWillAppear:(BOOL)animated { 48 | [super viewWillAppear:animated]; 49 | 50 | [_theSearchBar becomeFirstResponder]; 51 | } 52 | 53 | - (void)didReceiveMemoryWarning { 54 | [super didReceiveMemoryWarning]; 55 | self.foundClasses = [NSMutableArray array]; 56 | } 57 | 58 | #pragma mark TableViewDataSouce protocol 59 | 60 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 61 | return 1; 62 | } 63 | 64 | // Customize the number of rows in the table view. 65 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 66 | return [_foundClasses count]; 67 | } 68 | 69 | // Customize the appearance of table view cells. 70 | - (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 71 | 72 | RTBClassCell *cell = (RTBClassCell *)[_tableView dequeueReusableCellWithIdentifier:@"RTBClassCell"]; 73 | 74 | // Set up the cell 75 | RTBClass *cs = [_foundClasses objectAtIndex:indexPath.row]; 76 | cell.className = cs.classObjectName; 77 | cell.accessoryType = UITableViewCellAccessoryNone; 78 | 79 | return cell; 80 | } 81 | 82 | #pragma mark UISearchBarDelegate protocol 83 | 84 | - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { 85 | //NSLog(@"textDidChange:%@", searchText); 86 | 87 | if([searchBar.text length] == 0) { 88 | [_foundClasses removeAllObjects]; 89 | [_tableView reloadData]; 90 | } 91 | } 92 | 93 | - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { 94 | return YES; 95 | } 96 | 97 | //- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar { 98 | // NSLog(@"searchBarTextDidBeginEditing:"); 99 | //} 100 | 101 | - (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar { 102 | //NSLog(@"searchBarShouldEndEditing:"); 103 | return YES; 104 | } 105 | 106 | //- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar { 107 | // NSLog(@"searchBarTextDidEndEditing:"); 108 | //} 109 | 110 | - (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar { 111 | [searchBar resignFirstResponder]; 112 | } 113 | 114 | - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { 115 | [searchBar resignFirstResponder]; 116 | 117 | [_foundClasses removeAllObjects]; 118 | 119 | NSRange range; 120 | for(RTBClass *cs in [_allClasses sortedClassStubs]) { 121 | range = [[cs description] rangeOfString:searchBar.text options:NSCaseInsensitiveSearch]; 122 | if(range.location != NSNotFound) { 123 | //NSLog(@"-- add %@", cs); 124 | [_foundClasses addObject:cs]; 125 | } 126 | } 127 | 128 | NSSortDescriptor *sd = [[NSSortDescriptor alloc] initWithKey:@"description" ascending:YES]; 129 | [_foundClasses sortUsingDescriptors:[NSArray arrayWithObject:sd]]; 130 | 131 | [_tableView reloadData]; 132 | } 133 | 134 | @end 135 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/6_0_pri.txt: -------------------------------------------------------------------------------- 1 | ACTFramework.framework 2 | AITTarget.framework 3 | AOSKit.framework 4 | AOSNotification.framework 5 | AXHearingAidSupport.framework 6 | AXRuntime.framework 7 | AccessibilityUtilities.framework 8 | AccountSettings.framework 9 | AccountSettingsUI.framework 10 | AccountsDaemon.framework 11 | ActorKit.framework 12 | AggregateDictionary.framework 13 | AirPortAssistant.framework 14 | AirTraffic.framework 15 | Altitude.framework 16 | AppStoreUI.framework 17 | AppSupport.framework 18 | AppleAccount.framework 19 | ApplePushService.framework 20 | AssetsLibraryServices.framework 21 | AssistantServices.framework 22 | AssistantUI.framework 23 | BackBoardServices.framework 24 | BluetoothManager.framework 25 | BookmarkDAV.framework 26 | BulletinBoard.framework 27 | CalDAV.framework 28 | Celestial.framework 29 | CertInfo.framework 30 | CertUI.framework 31 | ChatKit.framework 32 | CloudRecents.framework 33 | CommonUtilities.framework 34 | CommunicationsSetupUI.framework 35 | Conference.framework 36 | CoreDAV.framework 37 | CoreMediaStream.framework 38 | CorePDF.framework 39 | CoreTime.framework 40 | DataAccess.framework 41 | DataAccessExpress.framework 42 | DataAccessUI.framework 43 | DataDetectorsCore.framework 44 | DataDetectorsUI.framework 45 | DataMigration.framework 46 | DictionaryServices.framework 47 | EAFirmwareUpdater.framework 48 | FTClientServices.framework 49 | FTServices.framework 50 | FaceCoreLight.framework 51 | FactoryDiags.framework 52 | FactoryTest.framework 53 | GAIA.framework 54 | GameKitServices.framework 55 | GeoServices.framework 56 | HomeSharing.framework 57 | IAP.framework 58 | IMAVCore.framework 59 | IMCore.framework 60 | IMDAppleServices.framework 61 | IMDMessageServices.framework 62 | IMDPersistence.framework 63 | IMDaemonCore.framework 64 | IMFoundation.framework 65 | IMTranscoding.framework 66 | IMTransferServices.framework 67 | ImageCapture.framework 68 | IncomingCallFilter.framework 69 | JavaScriptCore.framework 70 | Librarian.framework 71 | MIME.framework 72 | MMCSServices.framework 73 | MailServices.framework 74 | ManagedConfiguration.framework 75 | MediaControlSender.framework 76 | MediaRemote.framework 77 | MediaStream.framework 78 | Message.framework 79 | MobileAccessoryUpdater.framework 80 | MobileActivation.framework 81 | MobileAsset.framework 82 | MobileAssetUpdater.framework 83 | MobileBackup.framework 84 | MobileTimer.framework 85 | MobileWirelessSync.framework 86 | MusicLibrary.framework 87 | MusicStoreUI.framework 88 | Notes.framework 89 | OAuth.framework 90 | OfficeImport.framework 91 | PersistentConnection.framework 92 | PhotoBoothEffects.framework 93 | PhotoLibrary.framework 94 | PhotoLibraryServices.framework 95 | PowerLog.framework 96 | Preferences.framework 97 | PrintKit.framework 98 | ProofReader.framework 99 | ProtocolBuffer.framework 100 | RemoteUI.framework 101 | SAObjects.framework 102 | ScreenReaderBrailleDriver.framework 103 | ScreenReaderCore.framework 104 | ScreenReaderOutput.framework 105 | ScreenReaderOutputServer.framework 106 | Search.framework 107 | SkankKit.framework 108 | SocialDaemon.framework 109 | SoftwareUpdateServices.framework 110 | SportsTrainer.framework 111 | SportsVoices.framework 112 | SportsWorkout.framework 113 | Spotlight.framework 114 | SpringBoardServices.framework 115 | SpringBoardUI.framework 116 | Stocks.framework 117 | StoreBookkeeper.framework 118 | StoreKitUI.framework 119 | StoreServices.framework 120 | Symbolication.framework 121 | SyncedDefaults.framework 122 | TelephonyUI.framework 123 | TelephonyUtilities.framework 124 | TextInput.framework 125 | ToneLibrary.framework 126 | UIAccessibility.framework 127 | UIFoundation.framework 128 | VectorKit.framework 129 | VideoProcessing.framework 130 | VideoUpload.framework 131 | VisualAlert.framework 132 | VisualVoicemail.framework 133 | VoiceMemos.framework 134 | VoiceServices.framework 135 | Weather.framework 136 | WebBookmarks.framework 137 | WebCore.framework 138 | WebKit.framework 139 | WebUI.framework 140 | WirelessDiagnostics.framework 141 | XPCKit.framework 142 | XPCObjects.framework 143 | XPCService.framework 144 | YouTube.framework 145 | iAdDeveloper.framework 146 | iCalendar.framework 147 | iOSDiagnosticsSupport.framework 148 | iPodUI.framework 149 | iTunesStore.framework 150 | iTunesStoreUI.framework 151 | iWorkImport.framework 152 | -------------------------------------------------------------------------------- /tools/ios_headers_history/data/6_1_pri.txt: -------------------------------------------------------------------------------- 1 | ACTFramework.framework 2 | AITTarget.framework 3 | AOSKit.framework 4 | AOSNotification.framework 5 | AXHearingAidSupport.framework 6 | AXRuntime.framework 7 | AccessibilityUtilities.framework 8 | AccountSettings.framework 9 | AccountSettingsUI.framework 10 | AccountsDaemon.framework 11 | ActorKit.framework 12 | AggregateDictionary.framework 13 | AirPlayDiagnostics.framework 14 | AirPortAssistant.framework 15 | AirTraffic.framework 16 | Altitude.framework 17 | AppStoreUI.framework 18 | AppSupport.framework 19 | AppleAccount.framework 20 | ApplePushService.framework 21 | AssetsLibraryServices.framework 22 | AssistantServices.framework 23 | AssistantUI.framework 24 | BackBoardServices.framework 25 | BluetoothManager.framework 26 | BookmarkDAV.framework 27 | BulletinBoard.framework 28 | CalDAV.framework 29 | Celestial.framework 30 | CertInfo.framework 31 | CertUI.framework 32 | ChatKit.framework 33 | CloudRecents.framework 34 | CommonUtilities.framework 35 | CommunicationsSetupUI.framework 36 | Conference.framework 37 | CoreDAV.framework 38 | CoreMediaStream.framework 39 | CorePDF.framework 40 | CoreTime.framework 41 | DataAccess.framework 42 | DataAccessExpress.framework 43 | DataAccessUI.framework 44 | DataDetectorsCore.framework 45 | DataDetectorsUI.framework 46 | DataMigration.framework 47 | DictionaryServices.framework 48 | EAFirmwareUpdater.framework 49 | FTClientServices.framework 50 | FTServices.framework 51 | FaceCoreLight.framework 52 | FactoryDiags.framework 53 | FactoryTest.framework 54 | GAIA.framework 55 | GameKitServices.framework 56 | GeoServices.framework 57 | HomeSharing.framework 58 | IAP.framework 59 | IMAVCore.framework 60 | IMCore.framework 61 | IMDAppleServices.framework 62 | IMDMessageServices.framework 63 | IMDPersistence.framework 64 | IMDaemonCore.framework 65 | IMFoundation.framework 66 | IMTranscoding.framework 67 | IMTransferServices.framework 68 | ImageCapture.framework 69 | IncomingCallFilter.framework 70 | JavaScriptCore.framework 71 | Librarian.framework 72 | MIME.framework 73 | MMCSServices.framework 74 | MailServices.framework 75 | ManagedConfiguration.framework 76 | MediaControlSender.framework 77 | MediaRemote.framework 78 | MediaStream.framework 79 | Message.framework 80 | MobileAccessoryUpdater.framework 81 | MobileActivation.framework 82 | MobileAsset.framework 83 | MobileAssetUpdater.framework 84 | MobileBackup.framework 85 | MobileTimer.framework 86 | MobileWirelessSync.framework 87 | MusicLibrary.framework 88 | MusicStoreUI.framework 89 | Notes.framework 90 | OAuth.framework 91 | OfficeImport.framework 92 | PersistentConnection.framework 93 | PhotoBoothEffects.framework 94 | PhotoLibrary.framework 95 | PhotoLibraryServices.framework 96 | PowerLog.framework 97 | Preferences.framework 98 | PrintKit.framework 99 | ProofReader.framework 100 | ProtocolBuffer.framework 101 | RemoteUI.framework 102 | SAObjects.framework 103 | ScreenReaderBrailleDriver.framework 104 | ScreenReaderCore.framework 105 | ScreenReaderOutput.framework 106 | ScreenReaderOutputServer.framework 107 | Search.framework 108 | SkankKit.framework 109 | SocialDaemon.framework 110 | SoftwareUpdateServices.framework 111 | SportsTrainer.framework 112 | SportsVoices.framework 113 | SportsWorkout.framework 114 | Spotlight.framework 115 | SpringBoardServices.framework 116 | SpringBoardUI.framework 117 | Stocks.framework 118 | StoreBookkeeper.framework 119 | StoreKitUI.framework 120 | StoreServices.framework 121 | Symbolication.framework 122 | SyncedDefaults.framework 123 | TelephonyUI.framework 124 | TelephonyUtilities.framework 125 | TextInput.framework 126 | ToneLibrary.framework 127 | UIAccessibility.framework 128 | UIFoundation.framework 129 | VectorKit.framework 130 | VideoProcessing.framework 131 | VideoUpload.framework 132 | VisualAlert.framework 133 | VisualVoicemail.framework 134 | VoiceMemos.framework 135 | VoiceServices.framework 136 | Weather.framework 137 | WebBookmarks.framework 138 | WebCore.framework 139 | WebKit.framework 140 | WebUI.framework 141 | WirelessDiagnostics.framework 142 | XPCKit.framework 143 | XPCObjects.framework 144 | XPCService.framework 145 | YouTube.framework 146 | iAdDeveloper.framework 147 | iCalendar.framework 148 | iOSDiagnosticsSupport.framework 149 | iPodUI.framework 150 | iTunesStore.framework 151 | iTunesStoreUI.framework 152 | iWorkImport.framework 153 | --------------------------------------------------------------------------------