├── .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 |
13 |
14 | IBProxyObject
15 | IBUIView
16 | IBUIWebView
17 |
18 |
19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
20 |
21 |
25 |
26 |
30 |
34 |
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 |
--------------------------------------------------------------------------------