Try the search, it's linked to some great forums

Thursday, December 27, 2012

iOS App Build process

Builds

Here is a list of the devices we want to target: Devices
Our Deployment Target should probably be iOS 3.1.3 if we want to be as open as possible, including 1st generation iPhone and iPod Touch.
Otherwise the next step up would be 4.2.1 which would get us 2nd gen iPod Touch and iPhone 3.
The only other real option is 5.1 which gets us iPad 1, iPhone 3GS, and iPod Touch 3rd Gen.

Build Process

  1. Prepare Code
    1. Get latest code from master branch on Github.
  2. Prepare Code Signing Identity
    1. Visit the iOS Provisioning Portal and make sure you have a Distribution Certificate with the appropriate UDIDs and Bundle ID.
    2. Download the Distribution Certificate and add import it into Keychain (double-click)
  3. Prepare Ad-Hoc Provisioning Profile (AHPP)
    1. Visit the iOS Provisioning Portal and generate an Ad Hoc Provisioning Profile (AHPP)
    2. Download the Ad Hoc Provisioning Profile and add it to XCode Organizer's Provisioning Profile section (double-click)
  4. Prepare Build Directory in Dropbox
    1. You should create a new directory under "Dropbox/xxxxApp/Builds/" with the date in the format YYYY-MM-DD
    2. In this directory, place a copy of the AHPP
  5. Sign, Clean, Build, and Archive In XCode 
    1. Project Settings, Code Signing section, set the Ad Hoc Distribution Code Signing Identity to the AHPP just created.
      1. Do this for both "Any SDK" and "Any iOS SDK" options.
      2. Do this in the settings for both the Project and the Target.
    2. From the Scheme Selection menu in the top left, select "xxxApp > iOS Device"
    3. Select menu Product / Clean.
    4. Select menu Product / Build For / Archiving.
    5. Select menu Product / Archive.
  6. In Organizer
    1. Select the Archive you just created and click the "Distribute..." button.
    2. Select the "Save for Enterprise or Ad-Hoc Development" radio button and click Next.
    3. In the pulldown menu which appears, select the Code Signing Identity you wish to use to sign this archive for Ad-Hoc Distribution.
      1. The bolded name will be the Distribution Certificate Identity, but the gray text underneath it should show the name of your AHPP.
    4. Click next and then choose a location to save the .ipa archive. 
      1. Save the .ipa in the build directory your created next to the .mobileprovision file (the AHPP) used to sign the Archive.
      2. For a filename, you should match the format of the AHPP but with the .ipa extension and the correct build number.
        1. For instance, if your AHPP was named "TTAlpha 0 8" then your AHPP file should be "TTAlpha_0_8.mobileprovision" when you download it, and you should save the Signed Archive as "TTAlpha_0_8.ipa"
        2. If another build is issued, 0.8.1, then TTAlpha_0_8.mobileprovision can still be used to sign TTAlpha_0_8_1.ipa
  7. Add an item to the list below, including a link to the Builds subdirectory you created in Dropbox with both the .ipa and .mobileprovision file.
    1. Shareable Dropbox links can be copied from the website or right-click menus.
  8. Notify partners and testers that a new build is available.

Wednesday, December 26, 2012

Critical knowledge resources

Let's identify & catalog useful technologies for our professional development.  Also this can act as a central access point for learning about them and gaining expertise.

ESRI ArcGIS - This is the premier GIS application in the market today.  It's the AutoCAD of Geographical Information System software suites.  Their online program ArcGIS Online is a great introduction.
 PHP - Personal Home Page is a scripting language used for creating website ..............
  • Tutorials - 
  • examples - 
  • Overview -

 Xcode - Development SDK for Apple's mobile and desktop platforms ..............
  • Tutorials - 
  • examples - 
  • Overview -
  SQL - Structured Query Language are widely used database for the web & mobiles computing.  Apple's version is called SQLite, and provides a very compact (single file) database ..............
  • Tutorials - 
  • examples - 
  • Overview -
 .NET - Microsoft's C# SDK   ..............
  • Tutorials - 
  • examples - 
  • Overview -

Tuesday, December 25, 2012

App Idea - TimeNPlace

Image if you could tag your photos, songs, documents with their Time and Place.  Then if you could join those items with friends, family or whoever to create a folder/placeInTime/Moment.
It would be a Moment in Time that has context from many directions and is ???

Monday, December 24, 2012

Copying Custom map icons

This is a quckstart guide to create Custom icons for Google maps. The Google Custom Icon site is mapiconsNicolasMollet.com.  The icons can be modified for any color, and then downloaded to the google drive as a ZIP file.  These individual icons are small (37x37) .png files.  Files larger than 64x64 are resized by Google Maps.
  1.  In our shared Google Drive there is a folder called ImagesEtc
  2. goto the ImagesEtc folder and select an icon to view as a .png file
  3. <cntrl>Click the object and select - View Selection Source (make sure that the popup is small and only has 4 items.  If not then double click alongside the png until it highlights light yellow.  <cntrl>click again)
  4. This an example of the source code you need to copy&Paste - <img class="texmex-thumb" src="https://lh4.googleusercontent.com/wHgJlPqWeRsOtmQ5jKcBe02O2hY1u2FlJrmo8SHESEZlHEkDg1hu6bmZckfOt4dVh_TFarGiTh8">
  5. Goto the placemark you want and edit it
  6. Click on the icon image and select - Add an Icon 
  7. Paste the new icon's URL, the string starting with https:// 
  8. Save the icon
 

Thursday, December 20, 2012

GitHub - What's it all about GitHub?

GitHub is a project version control software that's open source and in wide use today.  The following info is a series of tips and a quick start guide.

GitHub has a server repository (project directory & all files and folders) on the GitHub website and a local repository which sits in your computer.   The User works on the local repository, which is a complete set of files that allow local changes.  Changes to the project are committed at appropriate times to the local repository, and then can be pushed & pulled with the GitHub repository in order to insure version control.

Push - sends your committed changes in your local repository to the GitHub repository, where those changes are integrated into the project, and are now available to everyone else.
Pull - updates your local files with the latest version from the server
Commit - Takes changes that you have been making locally to the project and saves them to your local repository
Synch - provides first a push of committed changes, then a pull from the GitHub repository, and provides that both local & GitHub versions are identical.
Clone in Desktop - used to create a local repository and launches GitHub for Mac.  Help file.
Repository - a location for your project????
Download ZIP - provides a compressed file of the whole project.  This is simplest way to go if you just want to inspect & run the program without any need for synching & updating.  You can then unZIP the program on your local drive.

Quick Start
Open Github from your toolbar
Click on File-Add Local Repository
Navigate to the existing iOS project folder and Press Add
If a warning about no repository exists Press Create & Add
Add summary & description text and then Press Publish (in the upper right)
Add name & description for what is to appear on the server and Press Push Repository
 <<Or something like this>>
Goto  your account in Github on the web - https://github.com/CPLamb




Saturday, December 8, 2012

Creating a Singleton

Let's say you want a view that persists, such that you can see where you are in a data table or sumthin.  Good place for a singleton.  This can be done by creating a custom GETTER for that object, like this;
// Customer GETTER for creating a singleton of this object
WhatsOverThereViewController* whatsOverThereViewController = nil;
- (WhatsOverThereViewController*) whatsOverThereViewController {

    if(whatsOverThereViewController != nil)
    {
        NSLog(@"We already have one of these things, I'm NOT creating another one");
        return whatsOverThereViewController;
    }
    WhatsOverThereViewController *whatsOverThereViewController = [[WhatsOverThereViewController alloc] init];
    NSLog(@"ALLOC / INIT the WhatsOverThereVC");
    return whatsOverThereViewController;
}
Or something like this

reference tutorials/templates;
Provides code for cut & paste -  http://www.johnwordsworth.com/2010/04/iphone-code-snippet-the-singleton-pattern/


Thursday, December 6, 2012

Geoloqi - another mapping API

This here should be a simple map;
Follow my trip!

Friday, November 30, 2012

Great Xcode tutorials

Here's a running list of tutorials;

Passing Data Between Views - http://www.geekylemon.com/WEBPROTECT-xcodepassingdataviews.htm

Tuesday, November 27, 2012

Apple Mach-O Linker Error - ARRGH!

This famously difficult to figure out compile error;
Apple Mach-O Linker Error Undefined symbols for architecture armv7: "_OBJC_CLASS_$_CPLTableViewController", referenced from: objc-class-ref in CPLCompanyViewController.o ld: symbol(s) not found for architecture armv7 collect2: ld returned 1 exit status
comes up at unexpected times and is always difficult to fix, therefore I'm gonna dedicate some time to figuring out the details and publishing a post about it.

Fix #1 Close the project, Xcode, turn off your Mac & wait a few days.  After fiddling around with deleting and the reimporting a variety of suspect files (this was suggested online). I shut down my laptop & tryed it again the next day.  No Mach-O error, go figger!


Thursday, November 15, 2012

Simple Google Maps JavaScript API v2 example

This is Google Earth's (GE) hello world example.  It requires an API key that you register for from your Google account.  See this URL for the details.  Nice easy map!

Google Maps JavaScript API Example

Saturday, November 10, 2012

StarTrax - Google Earth 3D track animator

This is another track animation program that works within Google Earth.  It's tailored towards flying tracks, and has a bunch of cool features including;
  • realistic models (everything from a Cessna 172 to the Airbus 330 and even including a Cirrus sailplane)
  • various view modes (see below)
  • Multiple tracks (this I haven't been able to make work nicely)






external view w/Airbus






external view with Twin Otter model & instruments