├── .gitignore ├── Action Menu Plugin.xctemplate ├── TemplateIcon.icns ├── TemplateInfo.plist └── ___PACKAGENAMEASIDENTIFIER___.m ├── Activator Listener.xctemplate ├── Icon-small.png ├── Icon-small@2x.png ├── TemplateIcon.icns └── TemplateInfo.plist ├── AssistantExtensions Extension.xctemplate ├── TemplateIcon.icns ├── TemplateInfo.plist ├── ___PACKAGENAMEASIDENTIFIER___-Info.plist ├── ___PACKAGENAMEASIDENTIFIER___Commands.h ├── ___PACKAGENAMEASIDENTIFIER___Commands.m ├── ___PACKAGENAMEASIDENTIFIER___Extension.h ├── ___PACKAGENAMEASIDENTIFIER___Extension.m ├── ___PACKAGENAMEASIDENTIFIER___Nib.xib ├── ___PACKAGENAMEASIDENTIFIER___Snippet.h └── ___PACKAGENAMEASIDENTIFIER___Snippet.m ├── Base.xctemplate ├── TemplateIcon.icns └── TemplateInfo.plist ├── CaptainHook Tweak.xctemplate ├── TemplateIcon.icns ├── TemplateInfo.plist ├── ___PACKAGENAMEASIDENTIFIER___.mm └── ___PACKAGENAMEASIDENTIFIER___.plist ├── Cocoa Touch Library.xctemplate ├── TemplateIcon.icns ├── TemplateInfo.plist ├── ___PACKAGENAMEASIDENTIFIER___.h └── ___PACKAGENAMEASIDENTIFIER___.m ├── Command-line Tool.xctemplate ├── TemplateIcon.icns ├── TemplateInfo.plist └── ___PACKAGENAMEASIDENTIFIER___.xcdatamodeld │ ├── .xccurrentversion │ └── ___PACKAGENAMEASIDENTIFIER___.xcdatamodel │ ├── .xccurrentversion │ └── contents ├── Debian Package.xctemplate ├── TemplateIcon.icns └── TemplateInfo.plist ├── Empty Project.xctemplate ├── TemplateIcon.icns └── TemplateInfo.plist ├── LICENSE ├── Logos Tweak.xctemplate ├── TemplateIcon.icns ├── TemplateInfo.plist ├── ___PACKAGENAMEASIDENTIFIER___.mm └── ___PACKAGENAMEASIDENTIFIER___.xm ├── ManPage.xctemplate ├── TemplateIcon.icns ├── TemplateInfo.plist └── ___PACKAGENAMEASIDENTIFIER___.1 ├── NotificationCenter Widget.xctemplate ├── BBWeeAppController.h ├── Info.plist ├── InfoPlist.strings ├── TemplateIcon.icns ├── TemplateInfo.plist ├── WeeAppBackground.png ├── WeeAppBackground@2x.png ├── ___PACKAGENAMEASIDENTIFIER___Controller.h └── ___PACKAGENAMEASIDENTIFIER___Controller.m ├── PreferenceLoader Bundle.xctemplate ├── TemplateIcon.icns ├── TemplateInfo.plist ├── ___PACKAGENAMEASIDENTIFIER___-Info.plist ├── ___PACKAGENAMEASIDENTIFIER___-PreferenceBundles.plist ├── ___PACKAGENAMEASIDENTIFIER___-PreferenceLoader.plist ├── ___PACKAGENAMEASIDENTIFIER___-Preferences.plist ├── ___PACKAGENAMEASIDENTIFIER___Controller.h ├── ___PACKAGENAMEASIDENTIFIER___Controller.m ├── ___PACKAGENAMEASIDENTIFIER___Icon.png └── ___PACKAGENAMEASIDENTIFIER___Icon@2x.png ├── PreferenceLoader.xctemplate ├── TemplateIcon.icns ├── TemplateInfo.plist ├── ___PACKAGENAMEASIDENTIFIER___.plist ├── ___PACKAGENAMEASIDENTIFIER___Icon.png └── ___PACKAGENAMEASIDENTIFIER___Icon@2x.png ├── README.md ├── SBSettings Toggle.xctemplate ├── TemplateIcon.icns ├── TemplateInfo.plist └── ___PACKAGENAMEASIDENTIFIER___.m ├── Unit Tests.xctemplate ├── TemplateIcon.icns └── TemplateInfo.plist └── XPC Service.xctemplate ├── TemplateIcon.icns ├── TemplateInfo.plist ├── main.m ├── postinst └── prerm /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | ._* 3 | .VolumeIcon.icns 4 | .com.apple.timemachine.supported 5 | .fseventsd 6 | .localized 7 | .DocumentRevisions-V100 8 | .Spotlight-V100 9 | .vol 10 | Icon -------------------------------------------------------------------------------- /Action Menu Plugin.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/Action Menu Plugin.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /Action Menu Plugin.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.actionMenuPlugin 9 | Concrete 10 | 11 | Description 12 | This template builds an Action Menu Plugin. 13 | Ancestors 14 | 15 | com.kokoabim.iosopendev.base 16 | com.kokoabim.iosopendev.unitTests 17 | 18 | Targets 19 | 20 | 21 | ProductType 22 | com.apple.product-type.library.dynamic 23 | SharedSettings 24 | 25 | DYLIB_COMPATIBILITY_VERSION 26 | 1 27 | DYLIB_CURRENT_VERSION 28 | 1 29 | INSTALL_PATH 30 | /Library/ActionMenu/Plugins 31 | GCC_PREFIX_HEADER 32 | ___PACKAGENAME___/___PACKAGENAME___-Prefix.pch 33 | GCC_PRECOMPILE_PREFIX_HEADER 34 | YES 35 | 36 | BuildPhases 37 | 38 | 39 | Class 40 | Sources 41 | 42 | 43 | Class 44 | Frameworks 45 | 46 | 47 | Class 48 | Headers 49 | 50 | 51 | ShellScript 52 | /opt/iOSOpenDev/bin/iosod --xcbp 53 | ShellPath 54 | /bin/sh 55 | RunOnlyForDeploymentPostprocessing 56 | 57 | Class 58 | ShellScript 59 | 60 | 61 | Frameworks 62 | 63 | Foundation 64 | UIKit 65 | 66 | 67 | 68 | Nodes 69 | 70 | ___PACKAGENAME___-Prefix.pch:objC:importFoundation 71 | ___PACKAGENAME___-Prefix.pch:objC:importCocoa 72 | ___PACKAGENAMEASIDENTIFIER___.m 73 | Package/DEBIAN/control:debianControl:section 74 | Package/DEBIAN/control:debianControl:depends 75 | Package/Library/ActionMenu/Plugins/0xdeadfa11 76 | 77 | Definitions 78 | 79 | Package/Library/ActionMenu/Plugins/0xdeadfa11 80 | 81 | Group 82 | 83 | Package 84 | Library 85 | ActionMenu 86 | Plugins 87 | 88 | Beginning 89 | 90 | This file was created only to help build the project's group structure, and it can now be deleted. 91 | 92 | Why 0xdeadfa11? See http://developer.apple.com/library/ios/#technotes/tn2151/_index.html. 93 | 94 | ___PACKAGENAMEASIDENTIFIER___.m 95 | 96 | Path 97 | ___PACKAGENAMEASIDENTIFIER___.m 98 | 99 | *:debianControl:section 100 | Section: Addons (Action Menu) 101 | *:debianControl:depends 102 | Depends: firmware (>= 5.0), actionmenu 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /Action Menu Plugin.xctemplate/___PACKAGENAMEASIDENTIFIER___.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | // Action Menu developed by Ryan Petrich 10 | 11 | #import 12 | #import 13 | #import "ActionMenu/ActionMenu.h" 14 | 15 | @implementation UIResponder (___PROJECTNAMEASIDENTIFIER___Action) 16 | 17 | - (void)do___PROJECTNAMEASIDENTIFIER___:(id)sender 18 | { 19 | // TODO: Implement ___PROJECTNAME___ Plugin 20 | } 21 | 22 | - (BOOL)canDo___PROJECTNAMEASIDENTIFIER___:(id)sender 23 | { 24 | return YES; 25 | } 26 | 27 | + (void)load 28 | { 29 | [[UIMenuController sharedMenuController] registerAction:@selector(do___PROJECTNAMEASIDENTIFIER___:) title:@"___PROJECTNAME___" canPerform:@selector(canDo___PROJECTNAMEASIDENTIFIER___:)]; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Activator Listener.xctemplate/Icon-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/Activator Listener.xctemplate/Icon-small.png -------------------------------------------------------------------------------- /Activator Listener.xctemplate/Icon-small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/Activator Listener.xctemplate/Icon-small@2x.png -------------------------------------------------------------------------------- /Activator Listener.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/Activator Listener.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /Activator Listener.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.activatorListener 9 | Concrete 10 | 11 | Description 12 | This template builds an Activator Listener. 13 | Ancestors 14 | 15 | com.kokoabim.iosopendev.base 16 | com.kokoabim.iosopendev.unitTests 17 | 18 | Targets 19 | 20 | 21 | ProductType 22 | com.apple.product-type.library.dynamic 23 | SharedSettings 24 | 25 | INSTALL_PATH 26 | /Library/MobileSubstrate/DynamicLibraries 27 | DYLIB_CURRENT_VERSION 28 | 1 29 | DYLIB_COMPATIBILITY_VERSION 30 | 1 31 | 32 | BuildPhases 33 | 34 | 35 | Class 36 | Sources 37 | 38 | 39 | Class 40 | Frameworks 41 | 42 | 43 | Class 44 | Headers 45 | 46 | 47 | ShellScript 48 | /opt/iOSOpenDev/bin/iosod --xcbp 49 | ShellPath 50 | /bin/sh 51 | RunOnlyForDeploymentPostprocessing 52 | 53 | Class 54 | ShellScript 55 | 56 | 57 | Frameworks 58 | 59 | Foundation 60 | UIKit 61 | 62 | 63 | 64 | Nodes 65 | 66 | ___PACKAGENAMEASIDENTIFIER___.m 67 | Package/DEBIAN/control:debianControl:section 68 | Package/DEBIAN/control:debianControl:depends 69 | Package/Library/MobileSubstrate/DynamicLibraries/___PACKAGENAMEASIDENTIFIER___.plist 70 | Package/Library/Activator/Listeners/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___/Info.plist 71 | Package/Library/Activator/Listeners/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___/Icon-small.png 72 | Package/Library/Activator/Listeners/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___/Icon-small@2x.png 73 | 74 | Definitions 75 | 76 | ___PACKAGENAMEASIDENTIFIER___.m 77 | 78 | Beginning 79 | // 80 | // ___FILENAME___ 81 | // ___PACKAGENAME___ 82 | // 83 | // Created by ___FULLUSERNAME___ on ___DATE___. 84 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 85 | // 86 | 87 | // LibActivator by Ryan Petrich 88 | // See https://github.com/rpetrich/libactivator 89 | 90 | #import <Foundation/Foundation.h> 91 | #import <UIKit/UIKit.h> 92 | #import <libactivator/libactivator.h> 93 | 94 | #error iOSOpenDev post-project creation from template requirements (remove these lines after completed) -- \ 95 | Link to libactivator.dylib: \ 96 | (1) go to TARGETS > Build Phases > Link Binary With Libraries and add /opt/iOSOpenDev/lib/libactivator.dylib 97 | 98 | @interface ___FILEBASENAMEASIDENTIFIER___ : NSObject<LAListener, UIAlertViewDelegate> { 99 | @private 100 | UIAlertView *av; 101 | } 102 | @end 103 | 104 | @implementation ___FILEBASENAMEASIDENTIFIER___ 105 | 106 | - (BOOL)dismiss 107 | { 108 | if (av) 109 | { 110 | [av dismissWithClickedButtonIndex:[av cancelButtonIndex] animated:YES]; 111 | return YES; 112 | } 113 | return NO; 114 | } 115 | 116 | - (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex 117 | { 118 | } 119 | 120 | - (void)activator:(LAActivator *)activator receiveEvent:(LAEvent *)event 121 | { 122 | if (![self dismiss]) 123 | { 124 | av = [[UIAlertView alloc] initWithTitle:@"___PACKAGENAME___" message:[event name] delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 125 | [av show]; 126 | [event setHandled:YES]; 127 | } 128 | } 129 | 130 | - (void)activator:(LAActivator *)activator abortEvent:(LAEvent *)event 131 | { 132 | // Called when event is escalated to higher event 133 | [self dismiss]; 134 | } 135 | 136 | - (void)activator:(LAActivator *)activator otherListenerDidHandleEvent:(LAEvent *)event 137 | { 138 | // Called when other listener receives an event 139 | [self dismiss]; 140 | } 141 | 142 | - (void)activator:(LAActivator *)activator receiveDeactivateEvent:(LAEvent *)event 143 | { 144 | // Called when the home button is pressed. 145 | // If showing UI, then dismiss it and call setHandled:. 146 | if ([self dismiss]) 147 | [event setHandled:YES]; 148 | } 149 | 150 | 151 | + (void)load 152 | { 153 | @autoreleasepool 154 | { 155 | [[LAActivator sharedInstance] registerListener:[self new] forName:@"___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___"]; 156 | } 157 | } 158 | 159 | @end 160 | 161 | Package/Library/MobileSubstrate/DynamicLibraries/___PACKAGENAMEASIDENTIFIER___.plist 162 | 163 | Group 164 | 165 | Package 166 | Library 167 | MobileSubstrate 168 | DynamicLibraries 169 | 170 | Beginning 171 | <?xml version="1.0" encoding="UTF-8"?> 172 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 173 | <plist version="1.0"> 174 | <dict> 175 | <key>Filter</key> 176 | <dict> 177 | <key>Bundles</key> 178 | <array> 179 | <string>com.apple.springboard</string> 180 | </array> 181 | </dict> 182 | </dict> 183 | </plist> 184 | 185 | *:debianControl:section 186 | Section: System 187 | *:debianControl:depends 188 | Depends: firmware (>= 5.0), mobilesubstrate, libactivator 189 | Package/Library/Activator/Listeners/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___/Info.plist 190 | 191 | Group 192 | 193 | Package 194 | Library 195 | Activator 196 | Listeners 197 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 198 | 199 | Beginning 200 | <?xml version="1.0" encoding="UTF-8"?> 201 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 202 | <plist version="1.0"> 203 | <dict> 204 | <key>title</key> 205 | <string>___PACKAGENAME___</string> 206 | <key>description</key> 207 | <string>Go Red Sox!</string> 208 | <key>compatible-modes</key> 209 | <array> 210 | <string>springboard</string> 211 | <string>application</string> 212 | <string>lockscreen</string> 213 | </array> 214 | </dict> 215 | </plist> 216 | 217 | Package/Library/Activator/Listeners/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___/Icon-small.png 218 | 219 | Group 220 | 221 | Package 222 | Library 223 | Activator 224 | Listeners 225 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 226 | 227 | Path 228 | Icon-small.png 229 | 230 | Package/Library/Activator/Listeners/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___/Icon-small@2x.png 231 | 232 | Group 233 | 234 | Package 235 | Library 236 | Activator 237 | Listeners 238 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 239 | 240 | Path 241 | Icon-small@2x.png 242 | 243 | 244 | 245 | 246 | -------------------------------------------------------------------------------- /AssistantExtensions Extension.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/AssistantExtensions Extension.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /AssistantExtensions Extension.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.assistantExtensionsExtension 9 | Concrete 10 | 11 | Description 12 | This template builds an AssistantExtensions Extension. 13 | Ancestors 14 | 15 | com.kokoabim.iosopendev.base 16 | com.kokoabim.iosopendev.unitTests 17 | 18 | Targets 19 | 20 | 21 | ProductType 22 | com.apple.product-type.bundle 23 | SharedSettings 24 | 25 | GCC_PREFIX_HEADER 26 | ___PACKAGENAME___/___PACKAGENAME___-Prefix.pch 27 | GCC_PRECOMPILE_PREFIX_HEADER 28 | YES 29 | INFOPLIST_FILE 30 | ___PACKAGENAME___/___PACKAGENAME___-Info.plist 31 | WRAPPER_EXTENSION 32 | assistantExtension 33 | INSTALL_PATH 34 | /Library/AssistantExtensions 35 | 36 | BuildPhases 37 | 38 | 39 | Class 40 | Sources 41 | 42 | 43 | Class 44 | Frameworks 45 | 46 | 47 | Class 48 | Headers 49 | 50 | 51 | ShellScript 52 | /opt/iOSOpenDev/bin/iosod --xcbp 53 | ShellPath 54 | /bin/sh 55 | RunOnlyForDeploymentPostprocessing 56 | 57 | Class 58 | ShellScript 59 | 60 | 61 | Frameworks 62 | 63 | Foundation 64 | UIKit 65 | 66 | 67 | 68 | Nodes 69 | 70 | ___PACKAGENAMEASIDENTIFIER___-Info.plist 71 | Package/Library/AssistantExtensions/___PACKAGENAME___.assistantExtension/0xdeadfa11 72 | ___PACKAGENAME___-Prefix.pch:objC:importCocoa 73 | ___PACKAGENAME___-Prefix.pch:objC:importFoundation 74 | ___PACKAGENAMEASIDENTIFIER___Commands.h 75 | ___PACKAGENAMEASIDENTIFIER___Commands.m 76 | ___PACKAGENAMEASIDENTIFIER___Snippet.h 77 | ___PACKAGENAMEASIDENTIFIER___Snippet.m 78 | ___PACKAGENAMEASIDENTIFIER___Extension.h 79 | ___PACKAGENAMEASIDENTIFIER___Extension.m 80 | ___PACKAGENAMEASIDENTIFIER___Nib.xib 81 | Package/DEBIAN/control:debianControl:section 82 | Package/DEBIAN/control:debianControl:depends 83 | 84 | Definitions 85 | 86 | Package/Library/AssistantExtensions/___PACKAGENAME___.assistantExtension/0xdeadfa11 87 | 88 | Group 89 | 90 | Package 91 | Library 92 | AssistantExtensions 93 | ___PACKAGENAME___.assistantExtension 94 | 95 | Beginning 96 | 97 | This file was created only to help build the project's group structure, and it can now be deleted. 98 | 99 | Why 0xdeadfa11? See http://developer.apple.com/library/ios/#technotes/tn2151/_index.html. 100 | 101 | ___PACKAGENAMEASIDENTIFIER___-Info.plist 102 | 103 | Group 104 | Supporting Files 105 | Path 106 | ___PACKAGENAMEASIDENTIFIER___-Info.plist 107 | 108 | ___PACKAGENAMEASIDENTIFIER___Commands.h 109 | 110 | Path 111 | ___PACKAGENAMEASIDENTIFIER___Commands.h 112 | 113 | ___PACKAGENAMEASIDENTIFIER___Commands.m 114 | 115 | Path 116 | ___PACKAGENAMEASIDENTIFIER___Commands.m 117 | 118 | ___PACKAGENAMEASIDENTIFIER___Snippet.h 119 | 120 | Path 121 | ___PACKAGENAMEASIDENTIFIER___Snippet.h 122 | 123 | ___PACKAGENAMEASIDENTIFIER___Snippet.m 124 | 125 | Path 126 | ___PACKAGENAMEASIDENTIFIER___Snippet.m 127 | 128 | ___PACKAGENAMEASIDENTIFIER___Extension.h 129 | 130 | Path 131 | ___PACKAGENAMEASIDENTIFIER___Extension.h 132 | 133 | ___PACKAGENAMEASIDENTIFIER___Extension.m 134 | 135 | Path 136 | ___PACKAGENAMEASIDENTIFIER___Extension.m 137 | 138 | ___PACKAGENAMEASIDENTIFIER___Nib.xib 139 | 140 | Path 141 | ___PACKAGENAMEASIDENTIFIER___Nib.xib 142 | 143 | *:debianControl:section 144 | Section: Addons (AssistantExtensions) 145 | *:debianControl:depends 146 | Depends: firmware (>= 5.0), gsc.assistant, mobilesubstrate, me.k3a.ae 147 | 148 | 149 | 150 | -------------------------------------------------------------------------------- /AssistantExtensions Extension.xctemplate/___PACKAGENAMEASIDENTIFIER___-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.${PRODUCT_NAME:rfc1034identifier} 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 | NSPrincipalClass 26 | ___PACKAGENAMEASIDENTIFIER___Extension 27 | 28 | 29 | -------------------------------------------------------------------------------- /AssistantExtensions Extension.xctemplate/___PACKAGENAMEASIDENTIFIER___Commands.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | // class to handle commands for the AE Extension 12 | // one or more SECommand class can exist per AE Extension but normally just one 13 | // each different SECommand class must be "registered" in *Extenion's -[initWithSystem:system] 14 | 15 | @interface ___FILEBASENAMEASIDENTIFIER___ : NSObject 16 | 17 | -(BOOL)handleSpeech:(NSString*)text tokens:(NSArray*)tokens tokenSet:(NSSet*)tokenset context:(id)ctx; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /AssistantExtensions Extension.xctemplate/___PACKAGENAMEASIDENTIFIER___Commands.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | #import "___FILEBASENAME___.h" 10 | 11 | @implementation ___FILEBASENAMEASIDENTIFIER___ 12 | 13 | -(BOOL)handleSpeech:(NSString*)text tokens:(NSArray*)tokens tokenSet:(NSSet*)tokenset context:(id)ctx 14 | { 15 | // NSLog(@"___PROJECTNAMEASIDENTIFIER___Commands handleSpeech: %@", text); 16 | 17 | // react to recognized tokens (what happen or what happened) 18 | if ([tokens count] >= 2 && [[tokens objectAtIndex:0] isEqualToString:@"who"] && 19 | ([tokenset containsObject:@"rocks"] || [tokenset containsObject:@"rules"])) 20 | { 21 | // three ways to respond... 22 | 23 | // #1: send utterance text as response 24 | //[ctx sendAddViewsUtteranceView:@"Angels and Airwaves"]; 25 | 26 | // #2: send snippet view as response 27 | //NSDictionary* snipProps = [NSDictionary dictionaryWithObjectsAndKeys:@"Angels and Airwaves", @"text", @"http://angelsandairwaves.com", @"link", nil]; 28 | //[ctx sendAddViewsSnippet:@"___PROJECTNAMEASIDENTIFIER___Snippet" properties:snipProps]; 29 | 30 | // #3: send utterance text and snippet view as response 31 | NSDictionary* snipProps = [NSDictionary dictionaryWithObjectsAndKeys:@"Angels and Airwaves", @"text", @"http://angelsandairwaves.com", @"link", nil]; 32 | NSMutableArray* views = [NSMutableArray arrayWithCapacity:2]; 33 | [views addObject:[ctx createAssistantUtteranceView:@"Angels and Airwaves"]]; 34 | [views addObject:[ctx createSnippet:@"___PROJECTNAMEASIDENTIFIER___Snippet" properties:snipProps]]; 35 | [ctx sendAddViews:views]; 36 | 37 | // for more complex extensions, do something asynchronly here... 38 | 39 | // end of the request 40 | [ctx sendRequestCompleted]; 41 | 42 | return YES; // handled by extension 43 | } 44 | 45 | return NO; 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /AssistantExtensions Extension.xctemplate/___PACKAGENAMEASIDENTIFIER___Extension.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | // main class of the AE extension 12 | // name of this class must be the value of the key NSPrincipalClass in Info.plist 13 | // only one SEExtension class can exist for an AE Extension 14 | // each SECommand and SESnippet class must be registered in this class's -[initWithSystem:system] 15 | 16 | @interface ___FILEBASENAMEASIDENTIFIER___ : NSObject 17 | 18 | -(id)initWithSystem:(id)system; 19 | 20 | -(NSString*)author; 21 | -(NSString*)name; 22 | -(NSString*)description; 23 | -(NSString*)website; 24 | -(NSString*)versionRequirement; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /AssistantExtensions Extension.xctemplate/___PACKAGENAMEASIDENTIFIER___Extension.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | #import "___FILEBASENAME___.h" 10 | #import "___PROJECTNAMEASIDENTIFIER___Commands.h" 11 | #import "___PROJECTNAMEASIDENTIFIER___Snippet.h" 12 | 13 | @implementation ___FILEBASENAMEASIDENTIFIER___ 14 | 15 | -(id)initWithSystem:(id)system 16 | { 17 | if ((self = [super init])) 18 | { 19 | [system registerCommand:[___PROJECTNAMEASIDENTIFIER___Commands class]]; 20 | [system registerSnippet:[___PROJECTNAMEASIDENTIFIER___Snippet class]]; 21 | } 22 | return self; 23 | } 24 | 25 | -(NSString*)author 26 | { 27 | return @"___FULLUSERNAME___"; 28 | } 29 | 30 | -(NSString*)name 31 | { 32 | return @"___PROJECTNAME___"; 33 | } 34 | 35 | -(NSString*)description 36 | { 37 | return @"Created using the iOSOpenDev Xcode template for building an Assistant Extension"; 38 | } 39 | 40 | -(NSString*)website 41 | { 42 | return @"http://www.iOSOpenDev.com"; 43 | } 44 | 45 | -(NSString*)versionRequirement 46 | { 47 | return @"1.0.1"; 48 | } 49 | 50 | @end -------------------------------------------------------------------------------- /AssistantExtensions Extension.xctemplate/___PACKAGENAMEASIDENTIFIER___Nib.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1280 5 | 11D50 6 | 1938 7 | 1138.32 8 | 568.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 933 12 | 13 | 14 | IBProxyObject 15 | IBUIView 16 | IBUIWebView 17 | 18 | 19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 20 | 21 | 22 | PluginDependencyRecalculationVersion 23 | 24 | 25 | 26 | 27 | IBFilesOwner 28 | IBCocoaTouchFramework 29 | 30 | 31 | IBFirstResponder 32 | IBCocoaTouchFramework 33 | 34 | 35 | 36 | 274 37 | 38 | 39 | 40 | 274 41 | {310, 275} 42 | 43 | 44 | 45 | _NS:693 46 | 47 | 3 48 | MCAwAA 49 | 50 | YES 51 | IBCocoaTouchFramework 52 | YES 53 | 54 | 55 | {{0, 20}, {310, 275}} 56 | 57 | 58 | 59 | 60 | YES 61 | 62 | 63 | IBUISimulatedFreeformSizeMetricsSentinel 64 | Freeform 65 | 66 | IBCocoaTouchFramework 67 | 68 | 69 | 70 | 71 | 72 | 73 | _nib 74 | 75 | 76 | 77 | 3 78 | 79 | 80 | 81 | _webView 82 | 83 | 84 | 85 | 5 86 | 87 | 88 | 89 | 90 | 91 | 0 92 | 93 | 94 | 95 | 96 | 97 | 1 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | -1 106 | 107 | 108 | File's Owner 109 | 110 | 111 | -2 112 | 113 | 114 | 115 | 116 | 4 117 | 118 | 119 | 120 | 121 | 122 | 123 | ___PACKAGENAMEASIDENTIFIER___Snippet 124 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 125 | UIResponder 126 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 127 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 128 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 129 | 130 | 131 | 132 | 133 | 134 | 5 135 | 136 | 137 | 138 | 139 | ___PACKAGENAMEASIDENTIFIER___Snippet 140 | NSObject 141 | 142 | UIView 143 | UIWebView 144 | 145 | 146 | 147 | _nib 148 | UIView 149 | 150 | 151 | _webView 152 | UIWebView 153 | 154 | 155 | 156 | IBProjectSource 157 | ./Classes/___PACKAGENAMEASIDENTIFIER___Snippet.h 158 | 159 | 160 | 161 | 162 | 0 163 | IBCocoaTouchFramework 164 | YES 165 | 3 166 | 933 167 | 168 | 169 | -------------------------------------------------------------------------------- /AssistantExtensions Extension.xctemplate/___PACKAGENAMEASIDENTIFIER___Snippet.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | // AssistantExtensions by Mario Hros 10 | // See http://ae.k3a.me/ 11 | 12 | #import 13 | 14 | // this class represents one visible "snippet" (e.g. Weather, Notes, etc) 15 | // there can be 0, 1 or more different SESnippet classes per AE Extension 16 | // each different SESnippet class must be "registered" in *Extenion's -[initWithSystem:system] 17 | 18 | #error iOSOpenDev Post-Template Project Creation Requirement (remove these lines after completed) -- \ 19 | Add a Copy Bundle Resources Build Phase to compile ___PACKAGENAMEASIDENTIFIER___Nib.xib: \ 20 | (1) go to TARGETS > Build Phases > Add Build Phase > Add Copy Bundle Resources, drag and drop ___PACKAGENAMEASIDENTIFIER___Nib.xib into the Copy Bundle Resources item list \ 21 | (2) drag and drop the Copy Bundle Resources Build Phase so that it is ABOVE the Run Script Build Phase 22 | 23 | @interface ___FILEBASENAMEASIDENTIFIER___ : NSObject { 24 | UIView* _view; 25 | IBOutlet UIView* _nib; 26 | IBOutlet UIWebView* _webView; 27 | } 28 | 29 | - (id)initWithProperties:(NSDictionary*)props; 30 | - (id)view; 31 | 32 | @end -------------------------------------------------------------------------------- /AssistantExtensions Extension.xctemplate/___PACKAGENAMEASIDENTIFIER___Snippet.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | #import "___FILEBASENAME___.h" 10 | 11 | @implementation ___FILEBASENAMEASIDENTIFIER___ 12 | 13 | - (id)view 14 | { 15 | return _view; 16 | } 17 | 18 | - (id)initWithProperties:(NSDictionary*)props; 19 | { 20 | // NSLog(@"[___PACKAGENAMEASIDENTIFIER___Snippet initWithProperties:'%@']", props); 21 | 22 | if ((self = [super init])) 23 | { 24 | if (![[NSBundle bundleForClass:[self class]] loadNibNamed:@"___PACKAGENAMEASIDENTIFIER___Nib" owner:self options:nil]) 25 | { 26 | NSLog(@"Failed to load nib file."); 27 | return NO; 28 | } 29 | [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[props objectForKey:@"link"]]]]; 30 | } 31 | return self; 32 | } 33 | 34 | @end -------------------------------------------------------------------------------- /Base.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/Base.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /Base.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.kokoabim.iosopendev.base 7 | Kind 8 | Xcode.Xcode3.ProjectTemplateUnitKind 9 | Ancestors 10 | 11 | com.apple.dt.unit.iPhoneBase 12 | com.kokoabim.iosopendev.debianPackage 13 | com.kokoabim.iosopendev.preferenceLoader 14 | 15 | Targets 16 | 17 | 18 | Name 19 | ___PACKAGENAME___ 20 | SharedSettings 21 | 22 | CODE_SIGN_IDENTITY 23 | 24 | PRODUCT_NAME 25 | $(TARGET_NAME) 26 | iOSOpenDevRespringOnInstall 27 | YES 28 | iOSOpenDevDevice 29 | 30 | iOSOpenDevInstallOnProfiling 31 | YES 32 | iOSOpenDevCopyOnBuild 33 | NO 34 | iOSOpenDevInstallOnAnyBuild 35 | NO 36 | 37 | 38 | 39 | Platforms 40 | 41 | com.apple.platform.iphoneos 42 | 43 | Project 44 | 45 | SharedSettings 46 | 47 | TARGETED_DEVICE_FAMILY 48 | 1,2 49 | GCC_WARN_ABOUT_MISSING_PROTOTYPES 50 | YES 51 | GCC_WARN_UNUSED_VARIABLE 52 | YES 53 | GCC_WARN_ABOUT_RETURN_TYPE 54 | YES 55 | GCC_C_LANGUAGE_STANDARD 56 | gnu99 57 | EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES 58 | *.nib *.lproj *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj 59 | HEADER_SEARCH_PATHS 60 | $(iOSOpenDevPath)/include/** 61 | LIBRARY_SEARCH_PATHS 62 | $(iOSOpenDevPath)/lib/** 63 | iOSOpenDevPath 64 | /opt/iOSOpenDev 65 | IPHONEOS_DEPLOYMENT_TARGET 66 | latest_iphoneos 67 | FRAMEWORK_SEARCH_PATHS 68 | $(iOSOpenDevPath)/frameworks/** $(SDKROOT)/System/Library/PrivateFrameworks 69 | 70 | SDK 71 | iphoneos 72 | Configurations 73 | 74 | Debug 75 | 76 | VALIDATE_PRODUCT 77 | NO 78 | GCC_OPTIMIZATION_LEVEL 79 | 0 80 | GCC_PREPROCESSOR_DEFINITIONS 81 | DEBUG=1 $(inherited) 82 | GCC_SYMBOLS_PRIVATE_EXTERN 83 | NO 84 | COPY_PHASE_STRIP 85 | NO 86 | GCC_DYNAMIC_NO_PIC 87 | NO 88 | 89 | Release 90 | 91 | COPY_PHASE_STRIP 92 | YES 93 | VALIDATE_PRODUCT 94 | YES 95 | 96 | 97 | 98 | Options 99 | 100 | 101 | Identifier 102 | productName 103 | Required 104 | 105 | Name 106 | Product Name 107 | NotPersisted 108 | 109 | Description 110 | Your new product's name. 111 | EmptyReplacement 112 | ProductName 113 | Type 114 | text 115 | 116 | 117 | Identifier 118 | bundleIdentifierPrefix 119 | Required 120 | 121 | Name 122 | Company Identifier 123 | Description 124 | Your company's bundle identifier prefix. 125 | EmptyReplacement 126 | com.yourcompany 127 | Type 128 | text 129 | 130 | 131 | Identifier 132 | bundleIdentifier 133 | Name 134 | Bundle Identifier 135 | NotPersisted 136 | 137 | Description 138 | Your new product's bundle identifier. 139 | Default 140 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 141 | Type 142 | static 143 | 144 | 145 | Definitions 146 | 147 | *:comments 148 | // 149 | // ___FILENAME___ 150 | // ___PACKAGENAME___ 151 | // 152 | // Created by ___FULLUSERNAME___ on ___DATE___. 153 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 154 | // 155 | 156 | *:import:* 157 | #import "___*___" 158 | 159 | *:*:importFoundation 160 | #import <Foundation/Foundation.h> 161 | 162 | ___PACKAGENAME___-Prefix.pch 163 | 164 | Beginning 165 | // 166 | // Prefix header for all source files of the '___PACKAGENAME___' target in the '___PACKAGENAME___' project 167 | // 168 | 169 | Group 170 | Supporting Files 171 | TargetIndices 172 | 173 | 174 | ___PACKAGENAME___-Prefix.pch:objC 175 | 176 | Beginning 177 | #ifdef __OBJC__ 178 | End 179 | #endif 180 | Indent 181 | 1 182 | 183 | 184 | 185 | 186 | -------------------------------------------------------------------------------- /CaptainHook Tweak.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/CaptainHook Tweak.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /CaptainHook Tweak.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.captainHookTweak 9 | Concrete 10 | 11 | Description 12 | This template builds a CaptainHook-based Substrate Tweak. 13 | Ancestors 14 | 15 | com.kokoabim.iosopendev.base 16 | com.kokoabim.iosopendev.unitTests 17 | 18 | Targets 19 | 20 | 21 | ProductType 22 | com.apple.product-type.library.dynamic 23 | SharedSettings 24 | 25 | GCC_PRECOMPILE_PREFIX_HEADER 26 | YES 27 | GCC_PREFIX_HEADER 28 | ___PACKAGENAME___/___PACKAGENAME___-Prefix.pch 29 | INSTALL_PATH 30 | /Library/MobileSubstrate/DynamicLibraries 31 | DYLIB_CURRENT_VERSION 32 | 1 33 | DYLIB_COMPATIBILITY_VERSION 34 | 1 35 | 36 | BuildPhases 37 | 38 | 39 | Class 40 | Sources 41 | 42 | 43 | Class 44 | Frameworks 45 | 46 | 47 | Class 48 | Headers 49 | 50 | 51 | ShellScript 52 | /opt/iOSOpenDev/bin/iosod --xcbp 53 | ShellPath 54 | /bin/sh 55 | RunOnlyForDeploymentPostprocessing 56 | 57 | Class 58 | ShellScript 59 | 60 | 61 | Frameworks 62 | 63 | Foundation 64 | 65 | 66 | 67 | Nodes 68 | 69 | ___PACKAGENAME___-Prefix.pch:objC:importFoundation 70 | ___PACKAGENAMEASIDENTIFIER___.mm 71 | Package/DEBIAN/control:debianControl:section 72 | Package/DEBIAN/control:debianControl:depends 73 | Package/Library/MobileSubstrate/DynamicLibraries/___PACKAGENAMEASIDENTIFIER___.plist 74 | 75 | Definitions 76 | 77 | ___PACKAGENAMEASIDENTIFIER___.mm 78 | 79 | Path 80 | ___PACKAGENAMEASIDENTIFIER___.mm 81 | 82 | Package/Library/MobileSubstrate/DynamicLibraries/___PACKAGENAMEASIDENTIFIER___.plist 83 | 84 | Group 85 | 86 | Package 87 | Library 88 | MobileSubstrate 89 | DynamicLibraries 90 | 91 | Path 92 | ___PACKAGENAMEASIDENTIFIER___.plist 93 | 94 | *:debianControl:section 95 | Section: Tweaks 96 | *:debianControl:depends 97 | Depends: firmware (>= 5.0), mobilesubstrate 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /CaptainHook Tweak.xctemplate/___PACKAGENAMEASIDENTIFIER___.mm: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | // CaptainHook by Ryan Petrich 10 | // see https://github.com/rpetrich/CaptainHook/ 11 | 12 | #import 13 | #import "CaptainHook/CaptainHook.h" 14 | #include // not required; for examples only 15 | 16 | // Objective-C runtime hooking using CaptainHook: 17 | // 1. declare class using CHDeclareClass() 18 | // 2. load class using CHLoadClass() or CHLoadLateClass() in CHConstructor 19 | // 3. hook method using CHOptimizedMethod() 20 | // 4. register hook using CHHook() in CHConstructor 21 | // 5. (optionally) call old method using CHSuper() 22 | 23 | 24 | @interface ___FILEBASENAMEASIDENTIFIER___ : NSObject 25 | 26 | @end 27 | 28 | @implementation ___FILEBASENAMEASIDENTIFIER___ 29 | 30 | -(id)init 31 | { 32 | if ((self = [super init])) 33 | { 34 | } 35 | 36 | return self; 37 | } 38 | 39 | @end 40 | 41 | 42 | @class ClassToHook; 43 | 44 | CHDeclareClass(ClassToHook); // declare class 45 | 46 | CHOptimizedMethod(0, self, void, ClassToHook, messageName) // hook method (with no arguments and no return value) 47 | { 48 | // write code here ... 49 | 50 | CHSuper(0, ClassToHook, messageName); // call old (original) method 51 | } 52 | 53 | CHOptimizedMethod(2, self, BOOL, ClassToHook, arg1, NSString*, value1, arg2, BOOL, value2) // hook method (with 2 arguments and a return value) 54 | { 55 | // write code here ... 56 | 57 | return CHSuper(2, ClassToHook, arg1, value1, arg2, value2); // call old (original) method and return its return value 58 | } 59 | 60 | static void WillEnterForeground(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) 61 | { 62 | // not required; for example only 63 | } 64 | 65 | static void ExternallyPostedNotification(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) 66 | { 67 | // not required; for example only 68 | } 69 | 70 | CHConstructor // code block that runs immediately upon load 71 | { 72 | @autoreleasepool 73 | { 74 | // listen for local notification (not required; for example only) 75 | CFNotificationCenterRef center = CFNotificationCenterGetLocalCenter(); 76 | CFNotificationCenterAddObserver(center, NULL, WillEnterForeground, CFSTR("UIApplicationWillEnterForegroundNotification"), NULL, CFNotificationSuspensionBehaviorCoalesce); 77 | 78 | // listen for system-side notification (not required; for example only) 79 | // this would be posted using: notify_post("___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.eventname"); 80 | CFNotificationCenterRef darwin = CFNotificationCenterGetDarwinNotifyCenter(); 81 | CFNotificationCenterAddObserver(darwin, NULL, ExternallyPostedNotification, CFSTR("___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.eventname"), NULL, CFNotificationSuspensionBehaviorCoalesce); 82 | 83 | // CHLoadClass(ClassToHook); // load class (that is "available now") 84 | // CHLoadLateClass(ClassToHook); // load class (that will be "available later") 85 | 86 | CHHook(0, ClassToHook, messageName); // register hook 87 | CHHook(2, ClassToHook, arg1, arg2); // register hook 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /CaptainHook Tweak.xctemplate/___PACKAGENAMEASIDENTIFIER___.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Classes 8 | 9 | CoreFoundationVersion 10 | 11 | Executables 12 | 13 | Bundles 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Cocoa Touch Library.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/Cocoa Touch Library.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /Cocoa Touch Library.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.cocoaTouchLibrary 9 | Concrete 10 | 11 | Description 12 | This template builds a dynamic or static library that links against the Foundation and UIKit frameworks. 13 | Ancestors 14 | 15 | com.kokoabim.iosopendev.base 16 | com.kokoabim.iosopendev.unitTests 17 | 18 | Targets 19 | 20 | 21 | SharedSettings 22 | 23 | INSTALL_PATH 24 | /usr/lib 25 | GCC_PREFIX_HEADER 26 | ___PACKAGENAME___/___PACKAGENAME___-Prefix.pch 27 | GCC_PRECOMPILE_PREFIX_HEADER 28 | YES 29 | 30 | BuildPhases 31 | 32 | 33 | Class 34 | Sources 35 | 36 | 37 | Class 38 | Frameworks 39 | 40 | 41 | Class 42 | Headers 43 | 44 | 45 | ShellScript 46 | /opt/iOSOpenDev/bin/iosod --xcbp 47 | ShellPath 48 | /bin/sh 49 | RunOnlyForDeploymentPostprocessing 50 | 51 | Class 52 | ShellScript 53 | 54 | 55 | Frameworks 56 | 57 | Foundation 58 | UIKit 59 | 60 | 61 | 62 | Options 63 | 64 | 65 | NotPersisted 66 | 67 | SortOrder 68 | 1 69 | Identifier 70 | cocoaLibraryType 71 | Name 72 | Type 73 | Description 74 | Indicates which type of library to create. 75 | Type 76 | popup 77 | Default 78 | Dynamic 79 | Units 80 | 81 | Dynamic 82 | 83 | 84 | Targets 85 | 86 | 87 | ProductType 88 | com.apple.product-type.library.dynamic 89 | SharedSettings 90 | 91 | DYLIB_COMPATIBILITY_VERSION 92 | 1 93 | DYLIB_CURRENT_VERSION 94 | 1 95 | 96 | 97 | 98 | 99 | 100 | Static 101 | 102 | 103 | Targets 104 | 105 | 106 | ProductType 107 | com.apple.product-type.library.static 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | SortOrder 116 | 1 117 | NotPersisted 118 | 119 | Identifier 120 | executablePrefixLib 121 | Name 122 | Prefix executable with lib 123 | Description 124 | Indicates whether to prefix library executable with lib. 125 | Type 126 | checkbox 127 | Default 128 | true 129 | Units 130 | 131 | true 132 | 133 | 134 | Targets 135 | 136 | 137 | SharedSettings 138 | 139 | EXECUTABLE_PREFIX 140 | lib 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | Nodes 150 | 151 | ___PACKAGENAME___-Prefix.pch:objC:importFoundation 152 | ___PACKAGENAMEASIDENTIFIER___.h 153 | ___PACKAGENAMEASIDENTIFIER___.m 154 | Package/DEBIAN/control:debianControl:section 155 | Package/DEBIAN/control:debianControl:depends 156 | Package/usr/lib/0xdeadfa11 157 | 158 | Definitions 159 | 160 | Package/usr/lib/0xdeadfa11 161 | 162 | Group 163 | 164 | Package 165 | usr 166 | lib 167 | 168 | Beginning 169 | 170 | This file was created only to help build the project's group structure, and it can now be deleted. 171 | 172 | Why 0xdeadfa11? See http://developer.apple.com/library/ios/#technotes/tn2151/_index.html. 173 | 174 | ___PACKAGENAMEASIDENTIFIER___.h 175 | 176 | Path 177 | ___PACKAGENAMEASIDENTIFIER___.h 178 | 179 | ___PACKAGENAMEASIDENTIFIER___.m 180 | 181 | Path 182 | ___PACKAGENAMEASIDENTIFIER___.m 183 | 184 | *:debianControl:section 185 | Section: System 186 | *:debianControl:depends 187 | Depends: firmware (>= 5.0) 188 | 189 | 190 | 191 | -------------------------------------------------------------------------------- /Cocoa Touch Library.xctemplate/___PACKAGENAMEASIDENTIFIER___.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ___FILEBASENAMEASIDENTIFIER___ : NSObject 12 | 13 | @end -------------------------------------------------------------------------------- /Cocoa Touch Library.xctemplate/___PACKAGENAMEASIDENTIFIER___.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | #import "___FILEBASENAME___.h" 10 | 11 | @implementation ___FILEBASENAMEASIDENTIFIER___ 12 | 13 | -(id)init 14 | { 15 | if ((self = [super init])) 16 | { 17 | } 18 | 19 | return self; 20 | } 21 | 22 | @end -------------------------------------------------------------------------------- /Command-line Tool.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/Command-line Tool.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /Command-line Tool.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.commandLineTool 9 | Concrete 10 | 11 | Description 12 | This template builds a command-line tool. 13 | Ancestors 14 | 15 | com.kokoabim.iosopendev.base 16 | 17 | Targets 18 | 19 | 20 | SharedSettings 21 | 22 | INSTALL_PATH 23 | /usr/bin 24 | 25 | ProductType 26 | com.apple.product-type.tool 27 | BuildPhases 28 | 29 | 30 | Class 31 | Sources 32 | 33 | 34 | Class 35 | Frameworks 36 | 37 | 38 | ShellScript 39 | /opt/iOSOpenDev/bin/iosod --xcbp 40 | ShellPath 41 | /bin/sh 42 | RunOnlyForDeploymentPostprocessing 43 | 44 | Class 45 | ShellScript 46 | 47 | 48 | 49 | 50 | Options 51 | 52 | 53 | SortOrder 54 | 1 55 | NotPersisted 56 | 57 | Identifier 58 | commandLineType 59 | Name 60 | Type 61 | Description 62 | The type of command-line tool to create. 63 | Default 64 | C 65 | Type 66 | popup 67 | Units 68 | 69 | C 70 | 71 | Nodes 72 | 73 | main.c:comments 74 | main.c:include 75 | main.c:main:content 76 | 77 | Definitions 78 | 79 | main.c:include 80 | #include <stdio.h> 81 | 82 | main.c:main:content 83 | // insert code here... 84 | printf("Hello, World!\n"); 85 | 86 | 87 | 88 | C++ 89 | 90 | Nodes 91 | 92 | main.cpp:comments 93 | main.cpp:include 94 | main.cpp:main:content 95 | 96 | Definitions 97 | 98 | main.cpp:include 99 | #include <iostream> 100 | 101 | main.cpp:main:content 102 | // insert code here... 103 | std::cout << "Hello, World!\n"; 104 | 105 | 106 | 107 | Core Data 108 | 109 | Project 110 | 111 | SharedSettings 112 | 113 | GCC_ENABLE_OBJC_GC 114 | required 115 | 116 | 117 | Targets 118 | 119 | 120 | SharedSettings 121 | 122 | GCC_PRECOMPILE_PREFIX_HEADER 123 | YES 124 | GCC_PREFIX_HEADER 125 | ___PACKAGENAME___/___PACKAGENAME___-Prefix.pch 126 | 127 | Frameworks 128 | 129 | CoreData 130 | Foundation 131 | 132 | 133 | 134 | Nodes 135 | 136 | main.m:comments 137 | main.m:include 138 | main.m:main:content 139 | main.m:coreData 140 | ___PACKAGENAME___-Prefix.pch:objC:importFoundation 141 | ___PACKAGENAME___-Prefix.pch:objC:importCoreData 142 | ___PACKAGENAMEASIDENTIFIER___.xcdatamodeld 143 | 144 | Definitions 145 | 146 | main.m:include 147 | NSManagedObjectModel *managedObjectModel(void); 148 | NSManagedObjectContext *managedObjectContext(void); 149 | 150 | main.m:main:content 151 | @autoreleasepool 152 | { 153 | // Create the managed object context 154 | NSManagedObjectContext *context = managedObjectContext(); 155 | 156 | // Custom code here... 157 | // Save the managed object context 158 | NSError *error = nil; 159 | if (![context save:&error]) { 160 | NSLog(@"Error while saving %@", ([error localizedDescription] != nil) ? [error localizedDescription] : @"Unknown Error"); 161 | exit(1); 162 | } 163 | } 164 | 165 | main.m:coreData 166 | NSManagedObjectModel *managedObjectModel() { 167 | 168 | static NSManagedObjectModel *model = nil; 169 | 170 | if (model != nil) { 171 | return model; 172 | } 173 | 174 | NSString *path = [[[NSProcessInfo processInfo] arguments] objectAtIndex:0]; 175 | path = [path stringByDeletingPathExtension]; 176 | NSURL *modelURL = [NSURL fileURLWithPath:[path stringByAppendingPathExtension:@"momd"]]; 177 | model = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]; 178 | 179 | return model; 180 | } 181 | 182 | NSManagedObjectContext *managedObjectContext() { 183 | 184 | static NSManagedObjectContext *context = nil; 185 | if (context != nil) { 186 | return context; 187 | } 188 | 189 | @autoreleasepool 190 | { 191 | context = [[NSManagedObjectContext alloc] init]; 192 | 193 | NSPersistentStoreCoordinator *coordinator = ___RP___[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel()]___AR___; 194 | [context setPersistentStoreCoordinator:coordinator]; 195 | 196 | NSString *STORE_TYPE = NSSQLiteStoreType; 197 | 198 | NSString *path = [[[NSProcessInfo processInfo] arguments] objectAtIndex:0]; 199 | path = [path stringByDeletingPathExtension]; 200 | NSURL *url = [NSURL fileURLWithPath:[path stringByAppendingPathExtension:@"sqlite"]]; 201 | 202 | NSError *error; 203 | NSPersistentStore *newStore = [coordinator addPersistentStoreWithType:STORE_TYPE configuration:nil URL:url options:nil error:&error]; 204 | 205 | if (newStore == nil) { 206 | NSLog(@"Store Configuration Failure %@", ([error localizedDescription] != nil) ? [error localizedDescription] : @"Unknown Error"); 207 | } 208 | } 209 | return context; 210 | } 211 | 212 | ___PACKAGENAME___-Prefix.pch:objC:importCoreData 213 | #import <CoreData/CoreData.h> 214 | ___PACKAGENAMEASIDENTIFIER___.xcdatamodeld 215 | 216 | Path 217 | ___PACKAGENAMEASIDENTIFIER___.xcdatamodeld 218 | 219 | 220 | 221 | Core Foundation 222 | 223 | Targets 224 | 225 | 226 | Frameworks 227 | 228 | CoreFoundation 229 | 230 | 231 | 232 | Nodes 233 | 234 | main.c:comments 235 | main.c:include 236 | main.c:main:content 237 | 238 | Definitions 239 | 240 | main.c:include 241 | #include <CoreFoundation/CoreFoundation.h> 242 | 243 | main.c:main:content 244 | // insert code here... 245 | CFShow(CFSTR("Hello, World!\n")); 246 | 247 | 248 | 249 | Core Services 250 | 251 | Targets 252 | 253 | 254 | Frameworks 255 | 256 | CoreServices 257 | 258 | 259 | 260 | Nodes 261 | 262 | main.c:comments 263 | main.c:include 264 | main.c:main:content 265 | 266 | Definitions 267 | 268 | main.c:include 269 | #include <CoreServices/CoreServices.h> 270 | 271 | main.c:main:content 272 | // insert code here... 273 | printf("Hello, World!\n"); 274 | 275 | 276 | 277 | Foundation 278 | 279 | Targets 280 | 281 | 282 | SharedSettings 283 | 284 | GCC_PRECOMPILE_PREFIX_HEADER 285 | YES 286 | GCC_PREFIX_HEADER 287 | ___PACKAGENAME___/___PACKAGENAME___-Prefix.pch 288 | 289 | Frameworks 290 | 291 | Foundation 292 | 293 | 294 | 295 | Nodes 296 | 297 | main.m:comments 298 | main.m:include 299 | main.m:main:content 300 | ___PACKAGENAME___-Prefix.pch:objC:importFoundation 301 | 302 | Definitions 303 | 304 | main.m:include 305 | #import <Foundation/Foundation.h> 306 | 307 | main.m:main:content 308 | @autoreleasepool 309 | { 310 | // insert code here... 311 | NSLog(@"Hello, World!"); 312 | } 313 | 314 | 315 | 316 | 317 | 318 | 319 | Nodes 320 | 321 | Package/DEBIAN/control:debianControl:section 322 | Package/DEBIAN/control:debianControl:depends 323 | Package/usr/bin/0xdeadfa11 324 | 325 | Definitions 326 | 327 | Package/usr/bin/0xdeadfa11 328 | 329 | Group 330 | 331 | Package 332 | usr 333 | bin 334 | 335 | Beginning 336 | 337 | This file was created only to help build the project's group structure, and it can now be deleted. 338 | 339 | Why 0xdeadfa11? See http://developer.apple.com/library/ios/#technotes/tn2151/_index.html. 340 | 341 | *:debianControl:section 342 | Section: System 343 | *:debianControl:depends 344 | Depends: firmware (>= 5.0) 345 | *:main 346 | 347 | Beginning 348 | int main (int argc, const char * argv[]) 349 | { 350 | 351 | End 352 | return 0; 353 | } 354 | 355 | Indent 356 | 1 357 | 358 | *:*:importFoundation 359 | #import <Foundation/Foundation.h> 360 | 361 | 362 | 363 | 364 | -------------------------------------------------------------------------------- /Command-line Tool.xctemplate/___PACKAGENAMEASIDENTIFIER___.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Command-line Tool.xctemplate/___PACKAGENAMEASIDENTIFIER___.xcdatamodeld/___PACKAGENAMEASIDENTIFIER___.xcdatamodel/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | ___PACKAGENAMEASIDENTIFIER___.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /Command-line Tool.xctemplate/___PACKAGENAMEASIDENTIFIER___.xcdatamodeld/___PACKAGENAMEASIDENTIFIER___.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Debian Package.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/Debian Package.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /Debian Package.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.debianPackage 9 | Targets 10 | 11 | 12 | SharedSettings 13 | 14 | iOSOpenDevBuildPackageOnAnyBuild 15 | NO 16 | iOSOpenDevUsePackageVersionPList 17 | YES 18 | 19 | 20 | 21 | Nodes 22 | 23 | Package/DEBIAN/control.txt 24 | Package/DEBIAN/control 25 | Package/DEBIAN/control:debianControl 26 | PackageVersion.plist 27 | 28 | Definitions 29 | 30 | Package/DEBIAN/control.txt 31 | 32 | Group 33 | 34 | Package 35 | DEBIAN 36 | 37 | Beginning 38 | 39 | The control file in the same directory as this file is the Debian control file that is needed 40 | to build the project's Debian package that's used by APT repositories like Cydia. 41 | 42 | For more on... 43 | Debian packages, see http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html. 44 | Debian control files, see http://www.debian.org/doc/debian-policy/ch-controlfields.html. 45 | Cydia packages, see http://www.saurik.com/id/7. 46 | 47 | Note: This file (control.txt) was created only to provide an explaination about the Debian control file. This file can now be deleted. 48 | 49 | Package/DEBIAN/control 50 | 51 | Group 52 | 53 | Package 54 | DEBIAN 55 | 56 | 57 | *:debianControl 58 | 59 | Beginning 60 | Package: ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 61 | Name: ___VARIABLE_productName___ 62 | Version: 0.1-1 63 | Description: 64 | End 65 | Conflicts: 66 | Replaces: 67 | Priority: optional 68 | Architecture: iphoneos-arm 69 | Author: ___FULLUSERNAME___ 70 | dev: 71 | Homepage: 72 | Depiction: 73 | Maintainer: 74 | Icon: 75 | 76 | 77 | Package/DEBIAN/preinst 78 | 79 | Group 80 | 81 | Package 82 | DEBIAN 83 | 84 | Beginning 85 | #!/bin/sh 86 | 87 | # This script is executed BEFORE the Debian package is INSTALLED 88 | # For information about this file, see http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html#s-maintscripts. 89 | 90 | 91 | Package/DEBIAN/postinst 92 | 93 | Group 94 | 95 | Package 96 | DEBIAN 97 | 98 | Beginning 99 | #!/bin/sh 100 | 101 | # This script is executed AFTER the Debian package is INSTALLED 102 | # For information about this file, see http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html#s-maintscripts. 103 | 104 | 105 | Package/DEBIAN/prerm 106 | 107 | Group 108 | 109 | Package 110 | DEBIAN 111 | 112 | Beginning 113 | #!/bin/sh 114 | 115 | # This script is executed BEFORE the Debian package is REMOVED 116 | # For information about this file, see http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html#s-maintscripts. 117 | 118 | 119 | Package/DEBIAN/postrm 120 | 121 | Group 122 | 123 | Package 124 | DEBIAN 125 | 126 | Beginning 127 | #!/bin/sh 128 | 129 | # This script is executed AFTER the Debian package is REMOVED 130 | # For information about this file, see http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html#s-maintscripts. 131 | 132 | 133 | PackageVersion.plist 134 | 135 | Group 136 | 137 | Supporting Files 138 | 139 | Beginning 140 | <?xml version="1.0" encoding="UTF-8"?> 141 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 142 | <plist version="1.0"> 143 | <dict> 144 | <key>Major</key> 145 | <string>1</string> 146 | <key>Minor</key> 147 | <string>0</string> 148 | <key>BugFix</key> 149 | <string></string> 150 | <key>Stage</key> 151 | <string></string> 152 | <key>PackageRevision</key> 153 | <string>1</string> 154 | </dict> 155 | </plist> 156 | 157 | 158 | 159 | 160 | -------------------------------------------------------------------------------- /Empty Project.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/Empty Project.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /Empty Project.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.emptyProject 9 | Concrete 10 | 11 | Description 12 | This is an empty project with no files, targets, or build configurations. 13 | ProjectOnly 14 | 15 | Platforms 16 | 17 | com.apple.platform.iphoneos 18 | 19 | Options 20 | 21 | 22 | Identifier 23 | productName 24 | Required 25 | 26 | Name 27 | Product Name 28 | NotPersisted 29 | 30 | Description 31 | Your new product's name. 32 | EmptyReplacement 33 | ProductName 34 | Type 35 | text 36 | 37 | 38 | Project 39 | 40 | SharedSettings 41 | 42 | EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES 43 | *.nib *.lproj *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj 44 | HEADER_SEARCH_PATHS 45 | $(iOSOpenDevPath)/include/** 46 | LIBRARY_SEARCH_PATHS 47 | $(iOSOpenDevPath)/lib/** 48 | iOSOpenDevPath 49 | /opt/iOSOpenDev 50 | IPHONEOS_DEPLOYMENT_TARGET 51 | latest_iphoneos 52 | 53 | SDK 54 | iphoneos 55 | Configurations 56 | 57 | Debug 58 | 59 | Release 60 | 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | iOSOpenDev is an independent project and has not been authorized, sponsored, or otherwise approved by Apple Inc. 2 | 3 | IOS is a registered trademark of Cisco and used under license by Apple Inc. 4 | 5 | Xcode is a registered trademark of Apple Inc. 6 | 7 | iOSOpenDev -- iOS Open Development 8 | Copyright (c) 2012-2013 Spencer W.S. James (Kokoabim) . 9 | 10 | GNU GENERAL PUBLIC LICENSE 11 | Version 2, June 1991 12 | 13 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 14 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 15 | Everyone is permitted to copy and distribute verbatim copies 16 | of this license document, but changing it is not allowed. 17 | 18 | Preamble 19 | 20 | The licenses for most software are designed to take away your 21 | freedom to share and change it. By contrast, the GNU General Public 22 | License is intended to guarantee your freedom to share and change free 23 | software--to make sure the software is free for all its users. This 24 | General Public License applies to most of the Free Software 25 | Foundation's software and to any other program whose authors commit to 26 | using it. (Some other Free Software Foundation software is covered by 27 | the GNU Lesser General Public License instead.) You can apply it to 28 | your programs, too. 29 | 30 | When we speak of free software, we are referring to freedom, not 31 | price. Our General Public Licenses are designed to make sure that you 32 | have the freedom to distribute copies of free software (and charge for 33 | this service if you wish), that you receive source code or can get it 34 | if you want it, that you can change the software or use pieces of it 35 | in new free programs; and that you know you can do these things. 36 | 37 | To protect your rights, we need to make restrictions that forbid 38 | anyone to deny you these rights or to ask you to surrender the rights. 39 | These restrictions translate to certain responsibilities for you if you 40 | distribute copies of the software, or if you modify it. 41 | 42 | For example, if you distribute copies of such a program, whether 43 | gratis or for a fee, you must give the recipients all the rights that 44 | you have. You must make sure that they, too, receive or can get the 45 | source code. And you must show them these terms so they know their 46 | rights. 47 | 48 | We protect your rights with two steps: (1) copyright the software, and 49 | (2) offer you this license which gives you legal permission to copy, 50 | distribute and/or modify the software. 51 | 52 | Also, for each author's protection and ours, we want to make certain 53 | that everyone understands that there is no warranty for this free 54 | software. If the software is modified by someone else and passed on, we 55 | want its recipients to know that what they have is not the original, so 56 | that any problems introduced by others will not reflect on the original 57 | authors' reputations. 58 | 59 | Finally, any free program is threatened constantly by software 60 | patents. We wish to avoid the danger that redistributors of a free 61 | program will individually obtain patent licenses, in effect making the 62 | program proprietary. To prevent this, we have made it clear that any 63 | patent must be licensed for everyone's free use or not licensed at all. 64 | 65 | The precise terms and conditions for copying, distribution and 66 | modification follow. 67 | 68 | GNU GENERAL PUBLIC LICENSE 69 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 70 | 71 | 0. This License applies to any program or other work which contains 72 | a notice placed by the copyright holder saying it may be distributed 73 | under the terms of this General Public License. The "Program", below, 74 | refers to any such program or work, and a "work based on the Program" 75 | means either the Program or any derivative work under copyright law: 76 | that is to say, a work containing the Program or a portion of it, 77 | either verbatim or with modifications and/or translated into another 78 | language. (Hereinafter, translation is included without limitation in 79 | the term "modification".) Each licensee is addressed as "you". 80 | 81 | Activities other than copying, distribution and modification are not 82 | covered by this License; they are outside its scope. The act of 83 | running the Program is not restricted, and the output from the Program 84 | is covered only if its contents constitute a work based on the 85 | Program (independent of having been made by running the Program). 86 | Whether that is true depends on what the Program does. 87 | 88 | 1. You may copy and distribute verbatim copies of the Program's 89 | source code as you receive it, in any medium, provided that you 90 | conspicuously and appropriately publish on each copy an appropriate 91 | copyright notice and disclaimer of warranty; keep intact all the 92 | notices that refer to this License and to the absence of any warranty; 93 | and give any other recipients of the Program a copy of this License 94 | along with the Program. 95 | 96 | You may charge a fee for the physical act of transferring a copy, and 97 | you may at your option offer warranty protection in exchange for a fee. 98 | 99 | 2. You may modify your copy or copies of the Program or any portion 100 | of it, thus forming a work based on the Program, and copy and 101 | distribute such modifications or work under the terms of Section 1 102 | above, provided that you also meet all of these conditions: 103 | 104 | a) You must cause the modified files to carry prominent notices 105 | stating that you changed the files and the date of any change. 106 | 107 | b) You must cause any work that you distribute or publish, that in 108 | whole or in part contains or is derived from the Program or any 109 | part thereof, to be licensed as a whole at no charge to all third 110 | parties under the terms of this License. 111 | 112 | c) If the modified program normally reads commands interactively 113 | when run, you must cause it, when started running for such 114 | interactive use in the most ordinary way, to print or display an 115 | announcement including an appropriate copyright notice and a 116 | notice that there is no warranty (or else, saying that you provide 117 | a warranty) and that users may redistribute the program under 118 | these conditions, and telling the user how to view a copy of this 119 | License. (Exception: if the Program itself is interactive but 120 | does not normally print such an announcement, your work based on 121 | the Program is not required to print an announcement.) 122 | 123 | These requirements apply to the modified work as a whole. If 124 | identifiable sections of that work are not derived from the Program, 125 | and can be reasonably considered independent and separate works in 126 | themselves, then this License, and its terms, do not apply to those 127 | sections when you distribute them as separate works. But when you 128 | distribute the same sections as part of a whole which is a work based 129 | on the Program, the distribution of the whole must be on the terms of 130 | this License, whose permissions for other licensees extend to the 131 | entire whole, and thus to each and every part regardless of who wrote it. 132 | 133 | Thus, it is not the intent of this section to claim rights or contest 134 | your rights to work written entirely by you; rather, the intent is to 135 | exercise the right to control the distribution of derivative or 136 | collective works based on the Program. 137 | 138 | In addition, mere aggregation of another work not based on the Program 139 | with the Program (or with a work based on the Program) on a volume of 140 | a storage or distribution medium does not bring the other work under 141 | the scope of this License. 142 | 143 | 3. You may copy and distribute the Program (or a work based on it, 144 | under Section 2) in object code or executable form under the terms of 145 | Sections 1 and 2 above provided that you also do one of the following: 146 | 147 | a) Accompany it with the complete corresponding machine-readable 148 | source code, which must be distributed under the terms of Sections 149 | 1 and 2 above on a medium customarily used for software interchange; or, 150 | 151 | b) Accompany it with a written offer, valid for at least three 152 | years, to give any third party, for a charge no more than your 153 | cost of physically performing source distribution, a complete 154 | machine-readable copy of the corresponding source code, to be 155 | distributed under the terms of Sections 1 and 2 above on a medium 156 | customarily used for software interchange; or, 157 | 158 | c) Accompany it with the information you received as to the offer 159 | to distribute corresponding source code. (This alternative is 160 | allowed only for noncommercial distribution and only if you 161 | received the program in object code or executable form with such 162 | an offer, in accord with Subsection b above.) 163 | 164 | The source code for a work means the preferred form of the work for 165 | making modifications to it. For an executable work, complete source 166 | code means all the source code for all modules it contains, plus any 167 | associated interface definition files, plus the scripts used to 168 | control compilation and installation of the executable. However, as a 169 | special exception, the source code distributed need not include 170 | anything that is normally distributed (in either source or binary 171 | form) with the major components (compiler, kernel, and so on) of the 172 | operating system on which the executable runs, unless that component 173 | itself accompanies the executable. 174 | 175 | If distribution of executable or object code is made by offering 176 | access to copy from a designated place, then offering equivalent 177 | access to copy the source code from the same place counts as 178 | distribution of the source code, even though third parties are not 179 | compelled to copy the source along with the object code. 180 | 181 | 4. You may not copy, modify, sublicense, or distribute the Program 182 | except as expressly provided under this License. Any attempt 183 | otherwise to copy, modify, sublicense or distribute the Program is 184 | void, and will automatically terminate your rights under this License. 185 | However, parties who have received copies, or rights, from you under 186 | this License will not have their licenses terminated so long as such 187 | parties remain in full compliance. 188 | 189 | 5. You are not required to accept this License, since you have not 190 | signed it. However, nothing else grants you permission to modify or 191 | distribute the Program or its derivative works. These actions are 192 | prohibited by law if you do not accept this License. Therefore, by 193 | modifying or distributing the Program (or any work based on the 194 | Program), you indicate your acceptance of this License to do so, and 195 | all its terms and conditions for copying, distributing or modifying 196 | the Program or works based on it. 197 | 198 | 6. Each time you redistribute the Program (or any work based on the 199 | Program), the recipient automatically receives a license from the 200 | original licensor to copy, distribute or modify the Program subject to 201 | these terms and conditions. You may not impose any further 202 | restrictions on the recipients' exercise of the rights granted herein. 203 | You are not responsible for enforcing compliance by third parties to 204 | this License. 205 | 206 | 7. If, as a consequence of a court judgment or allegation of patent 207 | infringement or for any other reason (not limited to patent issues), 208 | conditions are imposed on you (whether by court order, agreement or 209 | otherwise) that contradict the conditions of this License, they do not 210 | excuse you from the conditions of this License. If you cannot 211 | distribute so as to satisfy simultaneously your obligations under this 212 | License and any other pertinent obligations, then as a consequence you 213 | may not distribute the Program at all. For example, if a patent 214 | license would not permit royalty-free redistribution of the Program by 215 | all those who receive copies directly or indirectly through you, then 216 | the only way you could satisfy both it and this License would be to 217 | refrain entirely from distribution of the Program. 218 | 219 | If any portion of this section is held invalid or unenforceable under 220 | any particular circumstance, the balance of the section is intended to 221 | apply and the section as a whole is intended to apply in other 222 | circumstances. 223 | 224 | It is not the purpose of this section to induce you to infringe any 225 | patents or other property right claims or to contest validity of any 226 | such claims; this section has the sole purpose of protecting the 227 | integrity of the free software distribution system, which is 228 | implemented by public license practices. Many people have made 229 | generous contributions to the wide range of software distributed 230 | through that system in reliance on consistent application of that 231 | system; it is up to the author/donor to decide if he or she is willing 232 | to distribute software through any other system and a licensee cannot 233 | impose that choice. 234 | 235 | This section is intended to make thoroughly clear what is believed to 236 | be a consequence of the rest of this License. 237 | 238 | 8. If the distribution and/or use of the Program is restricted in 239 | certain countries either by patents or by copyrighted interfaces, the 240 | original copyright holder who places the Program under this License 241 | may add an explicit geographical distribution limitation excluding 242 | those countries, so that distribution is permitted only in or among 243 | countries not thus excluded. In such case, this License incorporates 244 | the limitation as if written in the body of this License. 245 | 246 | 9. The Free Software Foundation may publish revised and/or new versions 247 | of the General Public License from time to time. Such new versions will 248 | be similar in spirit to the present version, but may differ in detail to 249 | address new problems or concerns. 250 | 251 | Each version is given a distinguishing version number. If the Program 252 | specifies a version number of this License which applies to it and "any 253 | later version", you have the option of following the terms and conditions 254 | either of that version or of any later version published by the Free 255 | Software Foundation. If the Program does not specify a version number of 256 | this License, you may choose any version ever published by the Free Software 257 | Foundation. 258 | 259 | 10. If you wish to incorporate parts of the Program into other free 260 | programs whose distribution conditions are different, write to the author 261 | to ask for permission. For software which is copyrighted by the Free 262 | Software Foundation, write to the Free Software Foundation; we sometimes 263 | make exceptions for this. Our decision will be guided by the two goals 264 | of preserving the free status of all derivatives of our free software and 265 | of promoting the sharing and reuse of software generally. 266 | 267 | NO WARRANTY 268 | 269 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 270 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 271 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 272 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 273 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 274 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 275 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 276 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 277 | REPAIR OR CORRECTION. 278 | 279 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 280 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 281 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 282 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 283 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 284 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 285 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 286 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 287 | POSSIBILITY OF SUCH DAMAGES. 288 | 289 | END OF TERMS AND CONDITIONS 290 | 291 | How to Apply These Terms to Your New Programs 292 | 293 | If you develop a new program, and you want it to be of the greatest 294 | possible use to the public, the best way to achieve this is to make it 295 | free software which everyone can redistribute and change under these terms. 296 | 297 | To do so, attach the following notices to the program. It is safest 298 | to attach them to the start of each source file to most effectively 299 | convey the exclusion of warranty; and each file should have at least 300 | the "copyright" line and a pointer to where the full notice is found. 301 | 302 | 303 | Copyright (C) 304 | 305 | This program is free software; you can redistribute it and/or modify 306 | it under the terms of the GNU General Public License as published by 307 | the Free Software Foundation; either version 2 of the License, or 308 | (at your option) any later version. 309 | 310 | This program is distributed in the hope that it will be useful, 311 | but WITHOUT ANY WARRANTY; without even the implied warranty of 312 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 313 | GNU General Public License for more details. 314 | 315 | You should have received a copy of the GNU General Public License along 316 | with this program; if not, write to the Free Software Foundation, Inc., 317 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 318 | 319 | Also add information on how to contact you by electronic and paper mail. 320 | 321 | If the program is interactive, make it output a short notice like this 322 | when it starts in an interactive mode: 323 | 324 | Gnomovision version 69, Copyright (C) year name of author 325 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 326 | This is free software, and you are welcome to redistribute it 327 | under certain conditions; type `show c' for details. 328 | 329 | The hypothetical commands `show w' and `show c' should show the appropriate 330 | parts of the General Public License. Of course, the commands you use may 331 | be called something other than `show w' and `show c'; they could even be 332 | mouse-clicks or menu items--whatever suits your program. 333 | 334 | You should also get your employer (if you work as a programmer) or your 335 | school, if any, to sign a "copyright disclaimer" for the program, if 336 | necessary. Here is a sample; alter the names: 337 | 338 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 339 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 340 | 341 | , 1 April 1989 342 | Ty Coon, President of Vice 343 | 344 | This General Public License does not permit incorporating your program into 345 | proprietary programs. If your program is a subroutine library, you may 346 | consider it more useful to permit linking proprietary applications with the 347 | library. If this is what you want to do, use the GNU Lesser General 348 | Public License instead of this License. -------------------------------------------------------------------------------- /Logos Tweak.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/Logos Tweak.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /Logos Tweak.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.logosTweak 9 | Concrete 10 | 11 | Description 12 | This template builds a Logos-based Substrate Tweak. 13 | Ancestors 14 | 15 | com.kokoabim.iosopendev.base 16 | com.kokoabim.iosopendev.unitTests 17 | 18 | Targets 19 | 20 | 21 | ProductType 22 | com.apple.product-type.library.dynamic 23 | SharedSettings 24 | 25 | INSTALL_PATH 26 | /Library/MobileSubstrate/DynamicLibraries 27 | DYLIB_CURRENT_VERSION 28 | 1 29 | DYLIB_COMPATIBILITY_VERSION 30 | 1 31 | GCC_PREFIX_HEADER 32 | ___PACKAGENAME___/___PACKAGENAME___-Prefix.pch 33 | GCC_PRECOMPILE_PREFIX_HEADER 34 | YES 35 | 36 | BuildPhases 37 | 38 | 39 | ShellScript 40 | /opt/iOSOpenDev/bin/iosod --xcbp-logos 41 | ShellPath 42 | /bin/sh 43 | RunOnlyForDeploymentPostprocessing 44 | 45 | Class 46 | ShellScript 47 | 48 | 49 | Class 50 | Sources 51 | 52 | 53 | Class 54 | Frameworks 55 | 56 | 57 | Class 58 | Headers 59 | 60 | 61 | ShellScript 62 | /opt/iOSOpenDev/bin/iosod --xcbp 63 | ShellPath 64 | /bin/sh 65 | RunOnlyForDeploymentPostprocessing 66 | 67 | Class 68 | ShellScript 69 | 70 | 71 | Frameworks 72 | 73 | Foundation 74 | 75 | 76 | 77 | Nodes 78 | 79 | ___PACKAGENAME___-Prefix.pch:objC:importFoundation 80 | ___PACKAGENAMEASIDENTIFIER___.xm 81 | ___PACKAGENAMEASIDENTIFIER___.mm 82 | Package/DEBIAN/control:debianControl:section 83 | Package/DEBIAN/control:debianControl:depends 84 | Package/Library/MobileSubstrate/DynamicLibraries/___PACKAGENAMEASIDENTIFIER___.plist 85 | 86 | Definitions 87 | 88 | ___PACKAGENAMEASIDENTIFIER___.xm 89 | 90 | Path 91 | ___PACKAGENAMEASIDENTIFIER___.xm 92 | 93 | ___PACKAGENAMEASIDENTIFIER___.mm 94 | 95 | Path 96 | ___PACKAGENAMEASIDENTIFIER___.mm 97 | 98 | Package/Library/MobileSubstrate/DynamicLibraries/___PACKAGENAMEASIDENTIFIER___.plist 99 | 100 | Group 101 | 102 | Package 103 | Library 104 | MobileSubstrate 105 | DynamicLibraries 106 | 107 | Beginning 108 | <?xml version="1.0" encoding="UTF-8"?> 109 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 110 | <plist version="1.0"> 111 | <dict> 112 | <key>Filter</key> 113 | <dict> 114 | <key>Bundles</key> 115 | <array> 116 | <string>com.apple.springboard</string> 117 | </array> 118 | </dict> 119 | </dict> 120 | </plist> 121 | 122 | *:debianControl:section 123 | Section: System 124 | *:debianControl:depends 125 | Depends: firmware (>= 5.0), mobilesubstrate 126 | 127 | 128 | 129 | -------------------------------------------------------------------------------- /Logos Tweak.xctemplate/___PACKAGENAMEASIDENTIFIER___.mm: -------------------------------------------------------------------------------- 1 | 2 | // *** DO NOT EDIT THIS FILE! *** 3 | // This file is generated by Logos processing using ___PACKAGENAMEASIDENTIFIER___.xm during each build. 4 | 5 | // Logos by Dustin Howett 6 | // See http://iphonedevwiki.net/index.php/Logos 7 | -------------------------------------------------------------------------------- /Logos Tweak.xctemplate/___PACKAGENAMEASIDENTIFIER___.xm: -------------------------------------------------------------------------------- 1 | 2 | // Logos by Dustin Howett 3 | // See http://iphonedevwiki.net/index.php/Logos 4 | 5 | #error iOSOpenDev post-project creation from template requirements (remove these lines after completed) -- \ 6 | Link to libsubstrate.dylib: \ 7 | (1) go to TARGETS > Build Phases > Link Binary With Libraries and add /opt/iOSOpenDev/lib/libsubstrate.dylib \ 8 | (2) remove these lines from *.xm files (not *.mm files as they're automatically generated from *.xm files) 9 | 10 | %hook ClassName 11 | 12 | + (id)sharedInstance 13 | { 14 | %log; 15 | 16 | return %orig; 17 | } 18 | 19 | - (void)messageWithNoReturnAndOneArgument:(id)originalArgument 20 | { 21 | %log; 22 | 23 | %orig(originalArgument); 24 | 25 | // or, for exmaple, you could use a custom value instead of the original argument: %orig(customValue); 26 | } 27 | 28 | - (id)messageWithReturnAndNoArguments 29 | { 30 | %log; 31 | 32 | id originalReturnOfMessage = %orig; 33 | 34 | // for example, you could modify the original return value before returning it: [SomeOtherClass doSomethingToThisObject:originalReturnOfMessage]; 35 | 36 | return originalReturnOfMessage; 37 | } 38 | 39 | %end 40 | -------------------------------------------------------------------------------- /ManPage.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/ManPage.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /ManPage.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.manPage 9 | Options 10 | 11 | 12 | SortOrder 13 | 2 14 | Default 15 | false 16 | NotPersisted 17 | 18 | Identifier 19 | includeManPage 20 | Name 21 | Include Man Page 22 | Description 23 | Indicates whether a man page should be included. 24 | Type 25 | checkbox 26 | Units 27 | 28 | true 29 | 30 | 31 | Nodes 32 | 33 | ___PACKAGENAMEASIDENTIFIER___.1 34 | 35 | Targets 36 | 37 | 38 | BuildPhases 39 | 40 | 41 | Class 42 | CopyFiles 43 | DstPath 44 | /usr/share/man/man1/ 45 | DstSubfolderSpec 46 | 0 47 | RunOnlyForDeploymentPostprocessing 48 | YES 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Definitions 59 | 60 | ___PACKAGENAMEASIDENTIFIER___.1 61 | 62 | Path 63 | ___PACKAGENAMEASIDENTIFIER___.1 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /ManPage.xctemplate/___PACKAGENAMEASIDENTIFIER___.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 ___DATE___ \" DATE 7 | .Dt ___PACKAGENAME___ 1 \" Program name and manual section number 8 | .Os Darwin 9 | .Sh NAME \" Section Header - required - don't modify 10 | .Nm ___PACKAGENAME___, 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 -------------------------------------------------------------------------------- /NotificationCenter Widget.xctemplate/BBWeeAppController.h: -------------------------------------------------------------------------------- 1 | @protocol BBWeeAppControllerHost; 2 | 3 | @protocol BBWeeAppController 4 | @optional 5 | @property(assign, nonatomic) id host; 6 | @required 7 | -(id)view; 8 | @optional 9 | -(void)viewWillDisappear; 10 | -(void)viewDidAppear; 11 | -(void)setPresentationView:(id)view; 12 | -(float)presentationHeight; 13 | -(void)unloadPresentationController; 14 | -(id)presentationControllerForMode:(int)mode; 15 | -(id)launchURLForTapLocation:(CGPoint)tapLocation; 16 | -(id)launchURL; 17 | -(void)loadView; 18 | -(void)clearShapshotImage; 19 | -(void)unloadView; 20 | -(void)loadFullView; 21 | -(void)loadPlaceholderView; 22 | -(void)didRotateFromInterfaceOrientation:(int)interfaceOrientation; 23 | -(void)willAnimateRotationToInterfaceOrientation:(int)interfaceOrientation; 24 | -(void)willRotateToInterfaceOrientation:(int)interfaceOrientation; 25 | -(void)viewDidDisappear; 26 | -(void)viewWillAppear; 27 | -(float)viewHeight; 28 | @end -------------------------------------------------------------------------------- /NotificationCenter Widget.xctemplate/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleName 6 | ___PACKAGENAME___ Wee App 7 | CFBundleDisplayName 8 | ___PACKAGENAME____Widget 9 | CFBundleExecutable 10 | ___PACKAGENAME___ 11 | CFBundleIdentifier 12 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 13 | AppBundleID 14 | com.apple.preferences 15 | CFBundleDevelopmentRegion 16 | English 17 | CFBundleInfoDictionaryVersion 18 | 6.0 19 | CFBundlePackageType 20 | BNDL 21 | CFBundleShortVersionString 22 | 1.0 23 | CFBundleSignature 24 | ???? 25 | CFBundleSupportedPlatforms 26 | 27 | iPhoneOS 28 | 29 | CFBundleVersion 30 | 1 31 | MinimumOSVersion 32 | 5.0 33 | UIDeviceFamily 34 | 35 | 1 36 | 2 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /NotificationCenter Widget.xctemplate/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | "___PACKAGENAME____Widget" = "___PACKAGENAME___ Widget"; -------------------------------------------------------------------------------- /NotificationCenter Widget.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/NotificationCenter Widget.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /NotificationCenter Widget.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.notificationCenterWidget 9 | Concrete 10 | 11 | Description 12 | This template builds a Notification Center Widget (WeeApp). 13 | Ancestors 14 | 15 | com.kokoabim.iosopendev.base 16 | com.kokoabim.iosopendev.unitTests 17 | 18 | Targets 19 | 20 | 21 | ProductType 22 | com.apple.product-type.library.dynamic 23 | SharedSettings 24 | 25 | DYLIB_COMPATIBILITY_VERSION 26 | 1 27 | DYLIB_CURRENT_VERSION 28 | 1 29 | EXECUTABLE_NAME 30 | ___PACKAGENAMEASIDENTIFIER___ 31 | EXECUTABLE_EXTENSION 32 | 33 | INSTALL_PATH 34 | /System/Library/WeeAppPlugins/___PACKAGENAME___.bundle 35 | GCC_PREFIX_HEADER 36 | ___PACKAGENAME___/___PACKAGENAME___-Prefix.pch 37 | GCC_PRECOMPILE_PREFIX_HEADER 38 | YES 39 | 40 | BuildPhases 41 | 42 | 43 | Class 44 | Sources 45 | 46 | 47 | Class 48 | Frameworks 49 | 50 | 51 | Class 52 | Headers 53 | 54 | 55 | ShellScript 56 | /opt/iOSOpenDev/bin/iosod --xcbp 57 | ShellPath 58 | /bin/sh 59 | RunOnlyForDeploymentPostprocessing 60 | 61 | Class 62 | ShellScript 63 | 64 | 65 | Frameworks 66 | 67 | Foundation 68 | UIKit 69 | 70 | 71 | 72 | Nodes 73 | 74 | ___PACKAGENAME___-Prefix.pch:objC:importFoundation 75 | ___PACKAGENAMEASIDENTIFIER___Controller.h 76 | ___PACKAGENAMEASIDENTIFIER___Controller.m 77 | Package/DEBIAN/control:debianControl:section 78 | Package/DEBIAN/control:debianControl:depends 79 | Package/System/Library/WeeAppPlugins/___PACKAGENAME___.bundle/Info.plist 80 | Package/System/Library/WeeAppPlugins/___PACKAGENAME___.bundle/InfoPlist.strings 81 | Package/System/Library/WeeAppPlugins/___PACKAGENAME___.bundle/WeeAppBackground@2x.png 82 | Package/System/Library/WeeAppPlugins/___PACKAGENAME___.bundle/WeeAppBackground.png 83 | BBWeeAppController.h 84 | 85 | Definitions 86 | 87 | Package/System/Library/WeeAppPlugins/___PACKAGENAME___.bundle/Info.plist 88 | 89 | Group 90 | 91 | Package 92 | System 93 | Library 94 | WeeAppPlugins 95 | ___PACKAGENAME___ 96 | 97 | Path 98 | Info.plist 99 | 100 | Package/System/Library/WeeAppPlugins/___PACKAGENAME___.bundle/InfoPlist.strings 101 | 102 | Group 103 | 104 | Package 105 | System 106 | Library 107 | WeeAppPlugins 108 | ___PACKAGENAME___ 109 | 110 | Path 111 | InfoPlist.strings 112 | 113 | Package/System/Library/WeeAppPlugins/___PACKAGENAME___.bundle/WeeAppBackground@2x.png 114 | 115 | Group 116 | 117 | Package 118 | System 119 | Library 120 | WeeAppPlugins 121 | ___PACKAGENAME___ 122 | 123 | Path 124 | WeeAppBackground@2x.png 125 | 126 | Package/System/Library/WeeAppPlugins/___PACKAGENAME___.bundle/WeeAppBackground.png 127 | 128 | Group 129 | 130 | Package 131 | System 132 | Library 133 | WeeAppPlugins 134 | ___PACKAGENAME___ 135 | 136 | Path 137 | WeeAppBackground.png 138 | 139 | ___PACKAGENAMEASIDENTIFIER___Controller.h 140 | 141 | Path 142 | ___PACKAGENAMEASIDENTIFIER___Controller.h 143 | 144 | ___PACKAGENAMEASIDENTIFIER___Controller.m 145 | 146 | Path 147 | ___PACKAGENAMEASIDENTIFIER___Controller.m 148 | 149 | BBWeeAppController.h 150 | 151 | Path 152 | BBWeeAppController.h 153 | 154 | *:debianControl:section 155 | Section: Addons (NotificationCenter) 156 | *:debianControl:depends 157 | Depends: firmware (>= 5.0) 158 | 159 | 160 | 161 | -------------------------------------------------------------------------------- /NotificationCenter Widget.xctemplate/WeeAppBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/NotificationCenter Widget.xctemplate/WeeAppBackground.png -------------------------------------------------------------------------------- /NotificationCenter Widget.xctemplate/WeeAppBackground@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/NotificationCenter Widget.xctemplate/WeeAppBackground@2x.png -------------------------------------------------------------------------------- /NotificationCenter Widget.xctemplate/___PACKAGENAMEASIDENTIFIER___Controller.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "BBWeeAppController.h" 12 | 13 | @interface ___FILEBASENAMEASIDENTIFIER___ : NSObject 14 | { 15 | UIView *_view; 16 | } 17 | 18 | - (UIView *)view; 19 | 20 | @end -------------------------------------------------------------------------------- /NotificationCenter Widget.xctemplate/___PACKAGENAMEASIDENTIFIER___Controller.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | #import "___FILEBASENAME___.h" 10 | 11 | @implementation ___FILEBASENAMEASIDENTIFIER___ 12 | 13 | - (UIView *)view 14 | { 15 | if (_view == nil) 16 | { 17 | _view = [[UIView alloc] initWithFrame:CGRectMake(2, 0, 316, 71)]; 18 | 19 | UIImage *bg = [[UIImage imageWithContentsOfFile:@"/System/Library/WeeAppPlugins/___PACKAGENAME___.bundle/WeeAppBackground.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:71]; 20 | UIImageView *bgView = [[UIImageView alloc] initWithImage:bg]; 21 | bgView.frame = CGRectMake(0, 0, 316, 71); 22 | [_view addSubview:bgView]; 23 | 24 | UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 316, 71)]; 25 | lbl.backgroundColor = [UIColor clearColor]; 26 | lbl.textColor = [UIColor whiteColor]; 27 | lbl.text = @"Hello, World!"; 28 | [_view addSubview:lbl]; 29 | } 30 | 31 | return _view; 32 | } 33 | 34 | - (float)viewHeight 35 | { 36 | return 71.0f; 37 | } 38 | 39 | @end -------------------------------------------------------------------------------- /PreferenceLoader Bundle.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/PreferenceLoader Bundle.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /PreferenceLoader Bundle.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.preferenceLoaderBundle 9 | Targets 10 | 11 | 12 | ProductType 13 | com.apple.product-type.bundle 14 | SharedSettings 15 | 16 | GCC_PREFIX_HEADER 17 | ___PACKAGENAME___/___PACKAGENAME___-Prefix.pch 18 | GCC_PRECOMPILE_PREFIX_HEADER 19 | YES 20 | INFOPLIST_FILE 21 | ___PACKAGENAME___/___PACKAGENAME___-Info.plist 22 | WRAPPER_EXTENSION 23 | bundle 24 | INSTALL_PATH 25 | /Library/PreferenceBundles 26 | 27 | BuildPhases 28 | 29 | 30 | Class 31 | Sources 32 | 33 | 34 | Class 35 | Frameworks 36 | 37 | 38 | Class 39 | Headers 40 | 41 | 42 | ShellScript 43 | /opt/iOSOpenDev/bin/iosod --xcbp 44 | ShellPath 45 | /bin/sh 46 | RunOnlyForDeploymentPostprocessing 47 | 48 | Class 49 | ShellScript 50 | 51 | 52 | Frameworks 53 | 54 | Foundation 55 | UIKit 56 | Preferences 57 | 58 | 59 | 60 | Ancestors 61 | 62 | com.kokoabim.iosopendev.base 63 | 64 | Nodes 65 | 66 | ___PACKAGENAMEASIDENTIFIER___-Info.plist 67 | ___PACKAGENAMEASIDENTIFIER___Controller.h 68 | ___PACKAGENAMEASIDENTIFIER___Controller.m 69 | Package/Library/PreferenceLoader/Preferences/___PACKAGENAMEASIDENTIFIER___.plist 70 | Package/Library/PreferenceBundles/___PACKAGENAME___.bundle/___PACKAGENAMEASIDENTIFIER___.plist 71 | Package/Library/PreferenceBundles/___PACKAGENAME___.bundle/___PACKAGENAMEASIDENTIFIER___Icon.png 72 | Package/Library/PreferenceBundles/___PACKAGENAME___.bundle/___PACKAGENAMEASIDENTIFIER___Icon@2x.png 73 | Package/var/mobile/Library/Preferences/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASIDENTIFIER___.plist 74 | ___PACKAGENAME___-Prefix.pch:objC:importFoundation 75 | ___PACKAGENAME___-Prefix.pch:objC:importCocoa 76 | Package/DEBIAN/control:debianControl:section 77 | Package/DEBIAN/control:debianControl:depends 78 | 79 | Definitions 80 | 81 | ___PACKAGENAMEASIDENTIFIER___Controller.h 82 | 83 | Path 84 | ___PACKAGENAMEASIDENTIFIER___Controller.h 85 | 86 | ___PACKAGENAMEASIDENTIFIER___Controller.m 87 | 88 | Path 89 | ___PACKAGENAMEASIDENTIFIER___Controller.m 90 | 91 | Package/Library/PreferenceLoader/Preferences/___PACKAGENAMEASIDENTIFIER___.plist 92 | 93 | Group 94 | 95 | Package 96 | Library 97 | PreferenceLoader 98 | Preferences 99 | 100 | Path 101 | ___PACKAGENAMEASIDENTIFIER___-PreferenceLoader.plist 102 | 103 | Package/Library/PreferenceBundles/___PACKAGENAME___.bundle/___PACKAGENAMEASIDENTIFIER___.plist 104 | 105 | Group 106 | 107 | Package 108 | Library 109 | PreferenceBundles 110 | ___PACKAGENAME___.bundle 111 | 112 | Path 113 | ___PACKAGENAMEASIDENTIFIER___-PreferenceBundles.plist 114 | 115 | Package/Library/PreferenceBundles/___PACKAGENAME___.bundle/___PACKAGENAMEASIDENTIFIER___Icon.png 116 | 117 | Group 118 | 119 | Package 120 | Library 121 | PreferenceBundles 122 | ___PACKAGENAME___.bundle 123 | 124 | Path 125 | ___PACKAGENAMEASIDENTIFIER___Icon.png 126 | 127 | Package/Library/PreferenceBundles/___PACKAGENAME___.bundle/___PACKAGENAMEASIDENTIFIER___Icon@2x.png 128 | 129 | Group 130 | 131 | Package 132 | Library 133 | PreferenceBundles 134 | ___PACKAGENAME___.bundle 135 | 136 | Path 137 | ___PACKAGENAMEASIDENTIFIER___Icon@2x.png 138 | 139 | Package/var/mobile/Library/Preferences/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASIDENTIFIER___.plist 140 | 141 | Group 142 | 143 | Package 144 | var 145 | mobile 146 | Library 147 | Preferences 148 | 149 | Path 150 | ___PACKAGENAMEASIDENTIFIER___-Preferences.plist 151 | 152 | ___PACKAGENAMEASIDENTIFIER___-Info.plist 153 | 154 | Group 155 | Supporting Files 156 | Path 157 | ___PACKAGENAMEASIDENTIFIER___-Info.plist 158 | 159 | *:debianControl:section 160 | Section: PreferenceBundles 161 | *:debianControl:depends 162 | Depends: firmware (>= 5.0), mobilesubstrate, preferenceloader 163 | 164 | Concrete 165 | 166 | 167 | 168 | -------------------------------------------------------------------------------- /PreferenceLoader Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1.0 21 | NSPrincipalClass 22 | ___PACKAGENAMEASIDENTIFIER___Controller 23 | 24 | 25 | -------------------------------------------------------------------------------- /PreferenceLoader Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___-PreferenceBundles.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | title 6 | ___PACKAGENAMEASIDENTIFIER___ 7 | items 8 | 9 | 10 | cell 11 | PSGroupCell 12 | isStaticText 13 | 14 | label 15 | Use Preferences File To Get/Set Value 16 | footerText 17 | Example of how to get/set values directly from/to the preferences (plist) file by not calling any code (just how non-bundles do so). 18 | 19 | 20 | cell 21 | PSSwitchCell 22 | default 23 | 24 | key 25 | SwitchExample 26 | label 27 | Switch 28 | PostNotification 29 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASIDENTIFIER___.settingsChanged 30 | defaults 31 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASIDENTIFIER___ 32 | 33 | 34 | cell 35 | PSGroupCell 36 | isStaticText 37 | 38 | label 39 | Use Code To Get Value 40 | footerText 41 | Example of how to get values from code by sending messages to the bundle's principal class. 42 | 43 | 44 | key 45 | TemplateVersionExample 46 | cell 47 | PSTitleValueCell 48 | get 49 | getValueForSpecifier: 50 | label 51 | Template Version 52 | 53 | 54 | defaults 55 | /System/Library/CoreServices/SystemVersion 56 | key 57 | ProductVersion 58 | cell 59 | PSTitleValueCell 60 | get 61 | getValueForSpecifier: 62 | label 63 | OS Version 64 | 65 | 66 | footerText 67 | Example of how to get/set/use values from/to/in code by sending messages to the bundle's principal class. 68 | cell 69 | PSGroupCell 70 | isStaticText 71 | 72 | label 73 | Use Code To Get/Set/Use Value 74 | 75 | 76 | set 77 | setValue:forSpecifier: 78 | get 79 | getValueForSpecifier: 80 | label 81 | Text 82 | PostNotification 83 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASIDENTIFIER___.settingsChanged 84 | defaults 85 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___PACKAGENAMEASIDENTIFIER___ 86 | key 87 | TextExample 88 | cell 89 | PSEditTextCell 90 | 91 | 92 | footerText 93 | Perform an action by sending messages to the bundle's principal class. 94 | cell 95 | PSGroupCell 96 | isStaticText 97 | 98 | label 99 | Perform Action 100 | 101 | 102 | action 103 | followOnTwitter: 104 | cell 105 | PSButtonCell 106 | label 107 | Follow Kokoabim 108 | 109 | 110 | action 111 | visitWebSite: 112 | cell 113 | PSButtonCell 114 | label 115 | Visit iOSOpenDev.com 116 | 117 | 118 | action 119 | makeDonation: 120 | cell 121 | PSButtonCell 122 | label 123 | Donate to iOSOpenDev 124 | 125 | 126 | footerText 127 | © ___YEAR___ ___ORGANIZATIONNAME___ 128 | cell 129 | PSGroupCell 130 | isStaticText 131 | 132 | label 133 | 134 | 135 | 136 | 137 | 138 | -------------------------------------------------------------------------------- /PreferenceLoader Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___-PreferenceLoader.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | entry 6 | 7 | bundle 8 | ___PACKAGENAMEASIDENTIFIER___ 9 | cell 10 | PSLinkCell 11 | icon 12 | ___PACKAGENAMEASIDENTIFIER___Icon.png 13 | label 14 | ___PACKAGENAMEASIDENTIFIER___ 15 | isController 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /PreferenceLoader Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___-Preferences.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /PreferenceLoader Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___Controller.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | @interface ___FILEBASENAMEASIDENTIFIER___ : PSListController 14 | { 15 | } 16 | 17 | - (id)getValueForSpecifier:(PSSpecifier*)specifier; 18 | - (void)setValue:(id)value forSpecifier:(PSSpecifier*)specifier; 19 | - (void)followOnTwitter:(PSSpecifier*)specifier; 20 | - (void)visitWebSite:(PSSpecifier*)specifier; 21 | - (void)makeDonation:(PSSpecifier*)specifier; 22 | 23 | @end -------------------------------------------------------------------------------- /PreferenceLoader Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___Controller.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | #import "___FILEBASENAME___.h" 10 | #import 11 | 12 | #define kSetting_Example_Name @"NameOfAnExampleSetting" 13 | #define kSetting_Example_Value @"ValueOfAnExampleSetting" 14 | 15 | #define kSetting_TemplateVersion_Name @"TemplateVersionExample" 16 | #define kSetting_TemplateVersion_Value @"1.0" 17 | 18 | #define kSetting_Text_Name @"TextExample" 19 | #define kSetting_Text_Value @"Go Red Sox!" 20 | 21 | #define kUrl_FollowOnTwitter @"https://twitter.com/kokoabim" 22 | #define kUrl_VisitWebSite @"http://iosopendev.com" 23 | #define kUrl_MakeDonation @"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=56KLKJLXKM9FS" 24 | 25 | #define kPrefs_Path @"/var/mobile/Library/Preferences" 26 | #define kPrefs_KeyName_Key @"key" 27 | #define kPrefs_KeyName_Defaults @"defaults" 28 | 29 | @implementation ___FILEBASENAMEASIDENTIFIER___ 30 | 31 | - (id)getValueForSpecifier:(PSSpecifier*)specifier 32 | { 33 | id value = nil; 34 | 35 | NSDictionary *specifierProperties = [specifier properties]; 36 | NSString *specifierKey = [specifierProperties objectForKey:kPrefs_KeyName_Key]; 37 | 38 | // get 'value' with code only 39 | if ([specifierKey isEqual:kSetting_TemplateVersion_Name]) 40 | { 41 | value = kSetting_TemplateVersion_Value; 42 | } 43 | else if ([specifierKey isEqual:kSetting_Example_Name]) 44 | { 45 | value = kSetting_Example_Value; 46 | } 47 | // ...or get 'value' from 'defaults' plist or (optionally as a default value) with code 48 | else 49 | { 50 | // get 'value' from 'defaults' plist (if 'defaults' key and file exists) 51 | NSMutableString *plistPath = [[NSMutableString alloc] initWithString:[specifierProperties objectForKey:kPrefs_KeyName_Defaults]]; 52 | #if ! __has_feature(objc_arc) 53 | plistPath = [plistPath autorelease]; 54 | #endif 55 | if (plistPath) 56 | { 57 | NSDictionary *dict = (NSDictionary*)[self initDictionaryWithFile:&plistPath asMutable:NO]; 58 | 59 | id objectValue = [dict objectForKey:specifierKey]; 60 | 61 | if (objectValue) 62 | { 63 | value = [NSString stringWithFormat:@"%@", objectValue]; 64 | NSLog(@"read key '%@' with value '%@' from plist '%@'", specifierKey, value, plistPath); 65 | } 66 | else 67 | { 68 | NSLog(@"key '%@' not found in plist '%@'", specifierKey, plistPath); 69 | } 70 | 71 | #if ! __has_feature(objc_arc) 72 | [dict release]; 73 | #endif 74 | } 75 | 76 | // get default 'value' from code 77 | if (!value) 78 | { 79 | if ([specifierKey isEqual:kSetting_Text_Name]) 80 | { 81 | value = kSetting_Text_Value; 82 | } 83 | else if ([specifierKey isEqual:kSetting_Example_Name]) 84 | { 85 | value = kSetting_Example_Value; 86 | } 87 | } 88 | } 89 | 90 | return value; 91 | } 92 | 93 | - (void)setValue:(id)value forSpecifier:(PSSpecifier*)specifier; 94 | { 95 | NSDictionary *specifierProperties = [specifier properties]; 96 | NSString *specifierKey = [specifierProperties objectForKey:kPrefs_KeyName_Key]; 97 | 98 | // use 'value' with code only 99 | if ([specifierKey isEqual:kSetting_Example_Name]) 100 | { 101 | // do something here with 'value'... 102 | } 103 | // ...or save 'value' to 'defaults' plist and (optionally) with code 104 | else 105 | { 106 | // save 'value' to 'defaults' plist (if 'defaults' key exists) 107 | NSMutableString *plistPath = [[NSMutableString alloc] initWithString:[specifierProperties objectForKey:kPrefs_KeyName_Defaults]]; 108 | #if ! __has_feature(objc_arc) 109 | plistPath = [plistPath autorelease]; 110 | #endif 111 | if (plistPath) 112 | { 113 | NSMutableDictionary *dict = (NSMutableDictionary*)[self initDictionaryWithFile:&plistPath asMutable:YES]; 114 | [dict setObject:value forKey:specifierKey]; 115 | [dict writeToFile:plistPath atomically:YES]; 116 | #if ! __has_feature(objc_arc) 117 | [dict release]; 118 | #endif 119 | 120 | NSLog(@"saved key '%@' with value '%@' to plist '%@'", specifierKey, value, plistPath); 121 | } 122 | 123 | // use 'value' with code 124 | if ([specifierKey isEqual:kSetting_Example_Name]) 125 | { 126 | // do something here with 'value'... 127 | } 128 | } 129 | } 130 | 131 | - (id)initDictionaryWithFile:(NSMutableString**)plistPath asMutable:(BOOL)asMutable 132 | { 133 | if ([*plistPath hasPrefix:@"/"]) 134 | *plistPath = [NSString stringWithFormat:@"%@.plist", *plistPath]; 135 | else 136 | *plistPath = [NSString stringWithFormat:@"%@/%@.plist", kPrefs_Path, *plistPath]; 137 | 138 | Class class; 139 | if (asMutable) 140 | class = [NSMutableDictionary class]; 141 | else 142 | class = [NSDictionary class]; 143 | 144 | id dict; 145 | if ([[NSFileManager defaultManager] fileExistsAtPath:*plistPath]) 146 | dict = [[class alloc] initWithContentsOfFile:*plistPath]; 147 | else 148 | dict = [[class alloc] init]; 149 | 150 | return dict; 151 | } 152 | 153 | - (void)followOnTwitter:(PSSpecifier*)specifier 154 | { 155 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:kUrl_FollowOnTwitter]]; 156 | } 157 | 158 | - (void)visitWebSite:(PSSpecifier*)specifier 159 | { 160 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:kUrl_VisitWebSite]]; 161 | } 162 | 163 | - (void)makeDonation:(PSSpecifier *)specifier 164 | { 165 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:kUrl_MakeDonation]]; 166 | } 167 | 168 | - (id)specifiers 169 | { 170 | if (_specifiers == nil) { 171 | _specifiers = [self loadSpecifiersFromPlistName:@"___PACKAGENAMEASIDENTIFIER___" target:self]; 172 | #if ! __has_feature(objc_arc) 173 | [_specifiers retain]; 174 | #endif 175 | } 176 | 177 | return _specifiers; 178 | } 179 | 180 | - (id)init 181 | { 182 | if ((self = [super init])) 183 | { 184 | } 185 | 186 | return self; 187 | } 188 | 189 | #if ! __has_feature(objc_arc) 190 | - (void)dealloc 191 | { 192 | [super dealloc]; 193 | } 194 | #endif 195 | 196 | @end -------------------------------------------------------------------------------- /PreferenceLoader Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/PreferenceLoader Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___Icon.png -------------------------------------------------------------------------------- /PreferenceLoader Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___Icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/PreferenceLoader Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___Icon@2x.png -------------------------------------------------------------------------------- /PreferenceLoader.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/PreferenceLoader.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /PreferenceLoader.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.preferenceLoader 9 | Options 10 | 11 | 12 | SortOrder 13 | 2 14 | Default 15 | false 16 | NotPersisted 17 | 18 | Identifier 19 | includePreferenceLoaderSimple 20 | Name 21 | Include Simple PreferenceLoader 22 | Description 23 | Indicates whether a Simple PreferenceLoader (non-bundle) is included. 24 | Type 25 | checkbox 26 | Units 27 | 28 | true 29 | 30 | 31 | Definitions 32 | 33 | Package/Library/PreferenceLoader/Preferences/___PACKAGENAMEASIDENTIFIER___.plist 34 | 35 | Group 36 | 37 | Package 38 | Library 39 | PreferenceLoader 40 | Preferences 41 | 42 | Path 43 | ___PACKAGENAMEASIDENTIFIER___.plist 44 | 45 | Package/Library/PreferenceLoader/Preferences/___PACKAGENAMEASIDENTIFIER___Icon.png 46 | 47 | Group 48 | 49 | Package 50 | Library 51 | PreferenceLoader 52 | Preferences 53 | 54 | Path 55 | ___PACKAGENAMEASIDENTIFIER___Icon.png 56 | 57 | Package/Library/PreferenceLoader/Preferences/___PACKAGENAMEASIDENTIFIER___Icon@2x.png 58 | 59 | Group 60 | 61 | Package 62 | Library 63 | PreferenceLoader 64 | Preferences 65 | 66 | Path 67 | ___PACKAGENAMEASIDENTIFIER___Icon@2x.png 68 | 69 | 70 | Nodes 71 | 72 | Package/Library/PreferenceLoader/Preferences/___PACKAGENAMEASIDENTIFIER___.plist 73 | Package/Library/PreferenceLoader/Preferences/___PACKAGENAMEASIDENTIFIER___Icon.png 74 | Package/Library/PreferenceLoader/Preferences/___PACKAGENAMEASIDENTIFIER___Icon@2x.png 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /PreferenceLoader.xctemplate/___PACKAGENAMEASIDENTIFIER___.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | entry 6 | 7 | cell 8 | PSLinkCell 9 | icon 10 | ___PACKAGENAMEASIDENTIFIER___Icon.png 11 | label 12 | ___PACKAGENAMEASIDENTIFIER___ 13 | 14 | items 15 | 16 | 17 | cell 18 | PSGroupCell 19 | isStaticText 20 | 21 | label 22 | Text and Secure Cells 23 | 24 | 25 | cell 26 | PSEditTextCell 27 | default 28 | 29 | defaults 30 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 31 | key 32 | EditTextCell1 33 | label 34 | Text 35 | placeholder 36 | Any Text Here 37 | PostNotification 38 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___-preferencesChanged 39 | 40 | 41 | cell 42 | PSSecureEditTextCell 43 | default 44 | 45 | defaults 46 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 47 | key 48 | SecureEditTextCell2 49 | label 50 | Secure 51 | PostNotification 52 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___-preferencesChanged 53 | 54 | 55 | cell 56 | PSGroupCell 57 | footerText 58 | Place text here to provide additional information about the cells above. 59 | 60 | 61 | cell 62 | PSGroupCell 63 | isStaticText 64 | 65 | label 66 | Numeric Cells 67 | 68 | 69 | cell 70 | PSEditTextCell 71 | default 72 | 73 | defaults 74 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 75 | key 76 | EditTextCell3 77 | keyboard 78 | phone 79 | label 80 | Phone 81 | placeholder 82 | Phone Number 83 | PostNotification 84 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___-preferencesChanged 85 | 86 | 87 | cell 88 | PSEditTextCell 89 | default 90 | 91 | defaults 92 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 93 | key 94 | EditTextCel4 95 | keyboard 96 | numbers 97 | label 98 | Numeric 99 | placeholder 100 | Numbers 101 | PostNotification 102 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___-preferencesChanged 103 | 104 | 105 | cell 106 | PSGroupCell 107 | footerText 108 | Place text here to provide additional information about the cells above. 109 | 110 | 111 | cell 112 | PSGroupCell 113 | isStaticText 114 | 115 | label 116 | Switch and Slider Cells 117 | 118 | 119 | cell 120 | PSSwitchCell 121 | default 122 | 123 | defaults 124 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 125 | key 126 | SwitchCell5 127 | label 128 | Switch 129 | PostNotification 130 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___-preferencesChanged 131 | 132 | 133 | cell 134 | PSSliderCell 135 | default 136 | 50 137 | defaults 138 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 139 | key 140 | SliderCell6 141 | min 142 | 1 143 | max 144 | 100 145 | showValue 146 | 147 | PostNotification 148 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___-preferencesChanged 149 | 150 | 151 | cell 152 | PSGroupCell 153 | footerText 154 | Place text here to provide additional information about the cells above. 155 | 156 | 157 | cell 158 | PSGroupCell 159 | isStaticText 160 | 161 | label 162 | List Cell 163 | 164 | 165 | cell 166 | PSLinkListCell 167 | defaults 168 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___ 169 | key 170 | LinkListCell7 171 | label 172 | List 173 | detail 174 | PSListItemsController 175 | validTitles 176 | 177 | Item 1 178 | Item 2 179 | Item 3 180 | 181 | validValues 182 | 183 | 1 184 | 2 185 | 3 186 | 187 | default 188 | 1 189 | PostNotification 190 | ___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___-preferencesChanged 191 | 192 | 193 | 194 | cell 195 | PSGroupCell 196 | isStaticText 197 | 198 | 199 | 200 | cell 201 | PSGroupCell 202 | footerText 203 | © ___YEAR___ ___ORGANIZATIONNAME___ 204 | 205 | 206 | title 207 | ___PACKAGENAME___ 208 | 209 | 210 | -------------------------------------------------------------------------------- /PreferenceLoader.xctemplate/___PACKAGENAMEASIDENTIFIER___Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/PreferenceLoader.xctemplate/___PACKAGENAMEASIDENTIFIER___Icon.png -------------------------------------------------------------------------------- /PreferenceLoader.xctemplate/___PACKAGENAMEASIDENTIFIER___Icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/PreferenceLoader.xctemplate/___PACKAGENAMEASIDENTIFIER___Icon@2x.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### iOSOpenDev—iOS Open Development 2 | Copyright (c) 2012-2013 Spencer W.S. James (Kokoabim). 3 | 4 | * Follow [@kokoabim](https://twitter.com/kokoabim) 5 | * Download [http://iOSOpenDev.com](http://iOSOpenDev.com) 6 | * Wiki [https://github.com/kokoabim/iOSOpenDev/wiki](https://github.com/kokoabim/iOSOpenDev/wiki/_pages) 7 | * IRC channel #iOSOpenDev on irc.saurik.com 8 | -------------------------------------------------------------------------------- /SBSettings Toggle.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/SBSettings Toggle.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /SBSettings Toggle.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.sbSettingsToggle 9 | Concrete 10 | 11 | Description 12 | This template builds a SBSettings Toggle. 13 | Ancestors 14 | 15 | com.kokoabim.iosopendev.base 16 | com.kokoabim.iosopendev.unitTests 17 | 18 | Targets 19 | 20 | 21 | ProductType 22 | com.apple.product-type.library.dynamic 23 | SharedSettings 24 | 25 | EXECUTABLE_NAME 26 | Toggle.$(EXECUTABLE_EXTENSION) 27 | INSTALL_PATH 28 | /var/mobile/Library/SBSettings/Toggles/___PACKAGENAMEASIDENTIFIER___ 29 | DYLIB_CURRENT_VERSION 30 | 1 31 | DYLIB_COMPATIBILITY_VERSION 32 | 1 33 | GCC_WARN_ABOUT_MISSING_PROTOTYPES 34 | NO 35 | 36 | BuildPhases 37 | 38 | 39 | Class 40 | Sources 41 | 42 | 43 | Class 44 | Frameworks 45 | 46 | 47 | Class 48 | Headers 49 | 50 | 51 | ShellScript 52 | /opt/iOSOpenDev/bin/iosod --xcbp 53 | ShellPath 54 | /bin/sh 55 | RunOnlyForDeploymentPostprocessing 56 | 57 | Class 58 | ShellScript 59 | 60 | 61 | Frameworks 62 | 63 | Foundation 64 | UIKit 65 | 66 | 67 | 68 | Nodes 69 | 70 | ___PACKAGENAMEASIDENTIFIER___.m 71 | Package/DEBIAN/control:debianControl:section 72 | Package/DEBIAN/control:debianControl:depends 73 | Package/var/mobile/Library/SBSettings/Toggles/0xdeadfa11 74 | Package/var/mobile/Library/SBSettings/Commands/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___-ExampleCommand 75 | 76 | Definitions 77 | 78 | Package/var/mobile/Library/SBSettings/Toggles/0xdeadfa11 79 | 80 | Group 81 | 82 | Package 83 | var 84 | mobile 85 | Library 86 | SBSettings 87 | Toggles 88 | 89 | Beginning 90 | 91 | This file was created only to help build the project's group structure, and it can now be deleted. 92 | 93 | Why 0xdeadfa11? See http://developer.apple.com/library/ios/#technotes/tn2151/_index.html. 94 | 95 | Package/var/mobile/Library/SBSettings/Commands/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___-ExampleCommand 96 | 97 | Group 98 | 99 | Package 100 | var 101 | mobile 102 | Library 103 | SBSettings 104 | Commands 105 | 106 | Beginning 107 | #!/bin/sh 108 | 109 | respring 110 | 111 | ___PACKAGENAMEASIDENTIFIER___.m 112 | 113 | Path 114 | ___PACKAGENAMEASIDENTIFIER___.m 115 | 116 | *:debianControl:section 117 | Section: Addons (SBSettings) 118 | *:debianControl:depends 119 | Depends: firmware (>= 5.0), sbsettings 120 | 121 | 122 | 123 | -------------------------------------------------------------------------------- /SBSettings Toggle.xctemplate/___PACKAGENAMEASIDENTIFIER___.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | // SBSettings by BigBoss 10 | // see http://thebigboss.org/guides-iphone-ipod-ipad/sbsettings-toggle-spec 11 | 12 | #import 13 | #import 14 | #include 15 | 16 | static UIAlertView *av; 17 | static BOOL isToggleEnabled; 18 | 19 | BOOL isCapable() // required; called when loaded; indicates if toggle supports current platform 20 | { 21 | return YES; 22 | } 23 | 24 | BOOL isEnabled() // required; called when refresh button is pressed; functionally determines and indicates if toggle is on 25 | { 26 | // perform something here to functionally determine if toggle is on and set isToggleEnabled accordingly 27 | // ... 28 | 29 | return isToggleEnabled; 30 | } 31 | 32 | BOOL getStateFast() // optional; called each time SBSettings window is shown; quickly indicates if toggle is on 33 | { 34 | // nothing is performed to functionally determine if toggle is on, only return last known state using isToggleEnabled (for performance reasons) 35 | return isToggleEnabled; 36 | } 37 | 38 | void setContainer(int container) // optional; called when loaded, before closeWindow and before setState 39 | { 40 | if (container == 0) // SBSettings window 41 | { 42 | 43 | } 44 | else if (container == 1) // Notification Center 45 | { 46 | 47 | } 48 | } 49 | 50 | void setState(BOOL enable) // required; called when user presses toggle button 51 | { 52 | if (enable) // toggle is disabled, so enable it 53 | { 54 | av = [[UIAlertView alloc] initWithTitle:@"___PACKAGENAME___" message:@"Toggle Enabled" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 55 | } 56 | else // toggle is enabled, so disable it 57 | { 58 | av = [[UIAlertView alloc] initWithTitle:@"___PACKAGENAME___" message:@"Toggle Disabled" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 59 | } 60 | 61 | [av show]; 62 | 63 | isToggleEnabled = enable; // for getStateFast() use 64 | } 65 | 66 | float getDelayTime() // required; time in seconds spinner will show on toggle button after setState() returns (to allow background work to perform) 67 | { 68 | return 0.0f; 69 | } 70 | 71 | BOOL allowInCall() // optional, if not implemented, assumed to return YES; indicates if toggle can be used during a call 72 | { 73 | return YES; 74 | } 75 | 76 | void invokeHoldAction() // optional; called when user holds toggle button down (allowing handling of such event) 77 | { 78 | // since toggle runs as the mobile user, to run an executable or script as root user, use notify_post() to notify sbsettingsd. the notification message must be the executable or script name that will be located in /var/mobile/Library/SBSettings/Commands. see link above for more information. 79 | //notify_post("___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___-ExampleCommand"); 80 | } 81 | 82 | void closeWindow() // optional; called before SBSettings window closes 83 | { 84 | if (av) 85 | { 86 | [av dismissWithClickedButtonIndex:[av cancelButtonIndex] animated:YES]; 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /Unit Tests.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/Unit Tests.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /Unit Tests.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.unitTests 9 | Options 10 | 11 | 12 | SortOrder 13 | 3 14 | NotPersisted 15 | 16 | Identifier 17 | includeUnitTests 18 | Name 19 | Include Unit Tests 20 | Description 21 | Indicates whether a unit test bundle should be included. 22 | Type 23 | checkbox 24 | Units 25 | 26 | true 27 | 28 | 29 | Components 30 | 31 | 32 | Identifier 33 | com.apple.dt.unit.cocoaTouchFrameworkUnitTestBundle 34 | Name 35 | ___PACKAGENAME___Tests 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /XPC Service.xctemplate/TemplateIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kokoabim/iOSOpenDev-Xcode-Templates/e8d6141f2b504bd6663beaecc9d00ce5f01ac4c1/XPC Service.xctemplate/TemplateIcon.icns -------------------------------------------------------------------------------- /XPC Service.xctemplate/TemplateInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Kind 6 | Xcode.Xcode3.ProjectTemplateUnitKind 7 | Identifier 8 | com.kokoabim.iosopendev.xpcService 9 | Concrete 10 | 11 | Description 12 | This template builds an XPC service that runs via a launch daemon. 13 | Ancestors 14 | 15 | com.kokoabim.iosopendev.base 16 | com.kokoabim.iosopendev.unitTests 17 | 18 | Targets 19 | 20 | 21 | ProductType 22 | com.apple.product-type.tool 23 | SharedSettings 24 | 25 | GCC_PRECOMPILE_PREFIX_HEADER 26 | YES 27 | GCC_PREFIX_HEADER 28 | ___PACKAGENAME___/___PACKAGENAME___-Prefix.pch 29 | INSTALL_PATH 30 | /usr/bin 31 | 32 | BuildPhases 33 | 34 | 35 | Class 36 | Sources 37 | 38 | 39 | Class 40 | Frameworks 41 | 42 | 43 | Class 44 | Headers 45 | 46 | 47 | ShellScript 48 | /opt/iOSOpenDev/bin/iosod --xcbp 49 | ShellPath 50 | /bin/sh 51 | RunOnlyForDeploymentPostprocessing 52 | 53 | Class 54 | ShellScript 55 | 56 | 57 | Frameworks 58 | 59 | Foundation 60 | 61 | 62 | 63 | Nodes 64 | 65 | ___PACKAGENAME___-Prefix.pch:objC:importFoundation 66 | main.m 67 | Package/DEBIAN/control:debianControl:section 68 | Package/DEBIAN/control:debianControl:depends 69 | Package/Library/LaunchDaemons/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.plist 70 | Package/Library/LaunchDaemons/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.plist:XPC 71 | Package/DEBIAN/postinst 72 | Package/DEBIAN/prerm 73 | 74 | Definitions 75 | 76 | main.m 77 | 78 | Path 79 | main.m 80 | 81 | Package/Library/LaunchDaemons/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.plist 82 | 83 | Beginning 84 | <?xml version="1.0" encoding="UTF-8"?> 85 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 86 | <plist version="1.0"> 87 | <dict> 88 | 89 | End 90 | </dict> 91 | </plist> 92 | Indent 93 | 1 94 | Group 95 | 96 | Package 97 | Library 98 | LaunchDaemons 99 | 100 | TargetIndices 101 | 102 | SubstituteMacros 103 | 104 | 105 | Package/Library/LaunchDaemons/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.plist:XPC 106 | <key>Label</key> 107 | <string>___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___</string> 108 | <key>MachServices</key> 109 | <dict> 110 | <key>___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___</key> 111 | <true/> 112 | </dict> 113 | <key>ProgramArguments</key> 114 | <array> 115 | <string>/usr/bin/___PACKAGENAME___</string> 116 | </array> 117 | <key>UserName</key> 118 | <string>mobile</string> 119 | 120 | *:debianControl:section 121 | Section: System 122 | *:debianControl:depends 123 | Depends: firmware (>= 5.0) 124 | Package/DEBIAN/prerm 125 | 126 | Group 127 | 128 | Package 129 | DEBIAN 130 | 131 | Path 132 | prerm 133 | 134 | Package/DEBIAN/postinst 135 | 136 | Group 137 | 138 | Package 139 | DEBIAN 140 | 141 | Path 142 | postinst 143 | 144 | 145 | 146 | 147 | -------------------------------------------------------------------------------- /XPC Service.xctemplate/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PACKAGENAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | // Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | // XPC Service: Lightweight helper tool that performs work on behalf of an application. 10 | // see http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingXPCServices.html 11 | 12 | #include // Create a symlink to OSX's SDK. For example, in Terminal run: ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/xpc /opt/iOSOpenDev/include/xpc 13 | #include 14 | 15 | static void ___PACKAGENAMEASIDENTIFIER____peer_event_handler(xpc_connection_t peer, xpc_object_t event) 16 | { 17 | xpc_type_t type = xpc_get_type(event); 18 | if (type == XPC_TYPE_ERROR) { 19 | if (event == XPC_ERROR_CONNECTION_INVALID) { 20 | // The client process on the other end of the connection has either 21 | // crashed or cancelled the connection. After receiving this error, 22 | // the connection is in an invalid state, and you do not need to 23 | // call xpc_connection_cancel(). Just tear down any associated state 24 | // here. 25 | } else if (event == XPC_ERROR_TERMINATION_IMMINENT) { 26 | // Handle per-connection termination cleanup. 27 | } 28 | } else { 29 | assert(type == XPC_TYPE_DICTIONARY); 30 | // Handle the message. 31 | } 32 | } 33 | 34 | static void ___PACKAGENAMEASIDENTIFIER____event_handler(xpc_connection_t peer) 35 | { 36 | // By defaults, new connections will target the default dispatch concurrent queue. 37 | xpc_connection_set_event_handler(peer, ^(xpc_object_t event) { 38 | ___PACKAGENAMEASIDENTIFIER____peer_event_handler(peer, event); 39 | }); 40 | 41 | // This will tell the connection to begin listening for events. If you 42 | // have some other initialization that must be done asynchronously, then 43 | // you can defer this call until after that initialization is done. 44 | xpc_connection_resume(peer); 45 | } 46 | 47 | int main(int argc, const char *argv[]) 48 | { 49 | xpc_connection_t service = xpc_connection_create_mach_service("___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___", 50 | dispatch_get_main_queue(), 51 | XPC_CONNECTION_MACH_SERVICE_LISTENER); 52 | 53 | if (!service) { 54 | NSLog(@"Failed to create service."); 55 | exit(EXIT_FAILURE); 56 | } 57 | 58 | xpc_connection_set_event_handler(service, ^(xpc_object_t connection) { 59 | ___PACKAGENAMEASIDENTIFIER____event_handler(connection); 60 | }); 61 | 62 | xpc_connection_resume(service); 63 | 64 | dispatch_main(); 65 | 66 | // xpc_release(service); 67 | 68 | return EXIT_SUCCESS; 69 | } 70 | -------------------------------------------------------------------------------- /XPC Service.xctemplate/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [[ $1 == upgrade ]]; then 4 | /bin/launchctl unload /Library/LaunchDaemons/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.plist 5 | fi 6 | 7 | chown root:wheel /usr/bin/__PACKAGENAME__ 8 | chmod 755 /usr/bin/__PACKAGENAME__ 9 | chown root:wheel /Library/LaunchDaemons/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.plist 10 | chmod 644 /Library/LaunchDaemons/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.plist 11 | 12 | /bin/launchctl load /Library/LaunchDaemons/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.plist 13 | 14 | exit 0 15 | -------------------------------------------------------------------------------- /XPC Service.xctemplate/prerm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | /bin/launchctl unload /Library/LaunchDaemons/___VARIABLE_bundleIdentifierPrefix:bundleIdentifier___.___VARIABLE_productName:RFC1034Identifier___.plist 4 | 5 | exit 0 6 | --------------------------------------------------------------------------------