Skip to content

Instantly share code, notes, and snippets.


Grant Davis gdavis

View GitHub Profile
gdavis / gist:2353296
Created Apr 10, 2012
XCode Project Build Number Auto Increment Script
View gist:2353296
# Auto Increment Version Script
# This script will increment the build number by 1
# when running a configuration other than Debug and Release
# while not on intel architecture
if [ "$conf" != "Debug" ] && [ "$conf" != "Release" ] && [ "$arch" != "i386" ]
buildVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $buildPlist)
gdavis / gist:2829437
Last active Aug 7, 2017
Xcode 4 Custom Key Commands - Add to IDETextKeyBindingsSet.plist
View gist:2829437
<key>GDI Commands</key>
<key>GDI Duplicate Current Line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewLine:, moveToBeginningOfLine:, paste:, moveToEndOfLine:</string>
<key>GDI Delete Current Line</key>
<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToEndOfLine:</string>
<key>GDI Move Current Line Up</key>
<string>selectLine:, cut:, moveUp:, moveToBeginningOfLine:, insertNewLine:, paste:, moveBackward:</string>
<key>GDI Move Current Line Down</key>
<string>selectLine:, cut:, moveDown:, moveToBeginningOfLine:, insertNewLine:, paste:, moveBackward:</string>
gdavis / gist:2837065
Created May 30, 2012
Turn off ARC for a specific file
View gist:2837065
In Xcode, go to the target for the app, Build Phases, and find the file you want to have ARC ignore in Compile Sources. Double-click the file, and in the popup add this compiler flag:
And when you compile Xcode will turn off ARC! Yay!
gdavis / gist:2845766
Created May 31, 2012
iOS Phone Number Field Formatting With User Entry
View gist:2845766
#pragma mark - Phone Number Field Formatting
// Adopted from:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
if (textField == self.mobileNumberField || textField == self.homeNumberField || textField == self.workNumberField) {
int length = [self getLength:textField.text];
if(length == 10) {
if(range.length == 0)
gdavis / gist:2918964
Created Jun 12, 2012
How to use Static Libraries under Xcode 4
View gist:2918964
Create a Workspace
Under Xcode 4, go to File, New, Workspace.
From Finder you can then drag in the .xcodeproj projects for both the static library you want to use, and the new app you are building that uses the library. See Apple Docs for more info on setting up Workspaces:
Static Library Project Settings
Make sure all the static library's headers are set to copy to "Public". This is done under the settings for the static library target > Build Phases. In the "Copy Headers" phase, make sure all your headers are within the "Public" section.
Next go to Build Settings, find "Public Headers Folder Path" and type in a path for your library. I choose to use this:
I've adopted this from use with RestKit and found it works best with all my static libraries. What this does is tells Xcode to copy all the headers we moved to the "Public" headers section in step 1 to the folder we specify here which resides
gdavis / gist:3056737
Created Jul 5, 2012
Edit crontab in nano
View gist:3056737
EDITOR=/usr/bin/nano crontab -e
gdavis / gist:3813665
Created Oct 1, 2012
Display popover for textfield
View gist:3813665
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
// prevent the start date from manually entering text.
// instead, we display a popover with a date picker
if (textField == self.startDateField && self.popover == nil) {
[self.view endEditing:NO];
[self presentDatePickerFromField:textField pickerID:nil];
return NO;
gdavis / gist:4204762
Created Dec 4, 2012
Precompile Rails assets:
View gist:4204762
bundle exec rake assets:precompile
gdavis / gist:4464349
Created Jan 5, 2013
Launch postgres db application
View gist:4464349
postgres -D /usr/local/var/postgres
View _form.html.erb
<%= semantic_form_for [ :manage, resource ], :html => {:class => 'default-manage-form' } do |f| %>
<%= f.inputs do %>
<% attributes.each do |attr| %>
<% puts attr %>
<% case attr %>
<% when "q" %>
<% puts resource[attr] %>
<%= f.input :q, :selected => resource[attr], :collection => Ability.all, :include_blank => false %>
<% when "w" %>
<% puts resource[attr] %>
You can’t perform that action at this time.