Skip to content

Upgrading to new PhoneGap versions

danieldkim edited this page May 30, 2012 · 11 revisions
  • First upgrade the iphone xcode project (Toura.xcodeproj)
    • Create a new project in /tmp called "Toura" using the Cordova template
      • do not use automatic reference counting
      • do not check option to create local git repo for project
    • Run the project in the simulator. This will generate a www directory which will contain the new cordova-x.x.x.js file.
    • cd <mulberry>/builder/project_templates/iOS
    • cp -R Toura/* /tmp/Toura/Toura/
    • Add CFNetwork framework to project
      • open /System/Library/Frameworks/CoreServices.framework/Versions/Current
      • in Xcode, Select the "Toura" folder and go to File -> Add Files to "Toura" ...
      • drag Frameworks directory from Finder into dialog.
      • select CFNetwork.framework, "Create groups for any added folders", and Add.
      • Change the Location to "Absolute Path" -- this can be done in "Identity" panel to the far right when the framework is selected. You may also need to correct the directory mapping.
    • Link against libsqlite3.0.dylib. This can be added on the "Toura" Target, in Summary -> Linked Frameworks and Libraries
    • Add plugins to project:
      • cntrl-click on the Plugins group and then Add Files to Toura...
      • navigate to <mulberry>/builder/project_templates/iOS/Toura/Plugins
      • select all files/directories
      • select "Create groups for any added folders"
      • click Add button
    • Rinse/repeat the above for the Classes group but delete the AppDelegate.{h,c} files first
    • Add the UrbanAirship.plist file to the Supporting Files group
    • cp -R www/* /tmp/Toura/www/
    • mv /tmp/Toura/www/cordova-x.x.x.js /tmp/Toura/www/cordova.js
    • cd ..
    • mv iOS iOS.bak
    • close the xcode project
    • mv /tmp/Toura iOS
    • open up the xcode project from the new location in <mulberry>/builder/project_templates/iOS
    • Drag the www directory from Finder into the project adding it to the root node. Be sure to select the "Create folder references for any added folders" option.
    • on the "Toura" Target change settings:
      • Summary -> iOS Application Target -> Devices - iPhone
      • Summary -> iOS Application Target -> Deployment Target - 4.0
      • Build Settings -> Build Options -> Compiler for C/C++/Objective-C -> Apple LLVM compiler - 3.0
      • Build Settings -> Search Paths -> Framework Search Paths - remove the "$(SYSTEM_LIBRARY_DIR)/Frameworks/CoreServices.framework/Versions/A/Frameworks" entry
    • remove icon-72.png (reference only) from the Toura/Resources/Icons folder
    • check the
  • now update the ipad xcode project (Toura-iPad.xcodeproj)
    • Create a new project in /tmp called "Toura-iPad" using the Cordova template
      • do not use automatic reference counting
      • do not check option to create local git repo for project
    • close project
    • rm -rf Toura-iPad.xcodeproj
    • mv /tmp/Toura-iPad/Toura-iPad.xcodeproj/ .
    • open Toura-iPad.xcodeproj from the new location in <mulberry>/builder/project_templates/iOS
    • rename the "Toura-iPad" group to "Toura"
    • Change the directory that this group is mapped to -- this can be done in "Identity" panel to the far right when the group is selected. Map it to the "Toura" directory under <mulberry>/builder/project_templates/iOS.
    • Add CFNetwork framework to project
      • open /System/Library/Frameworks/CoreServices.framework/Versions/Current
      • in Xcode, Select the "Toura" folder and go to File -> Add Files to "Toura-iPad" ...
      • drag Frameworks directory from Finder into dialog.
      • select CFNetwork.framework, "Create groups for any added folders", and Add.
      • Change the Location to "Absolute Path" -- this can be done in "Identity" panel to the far right when the framework is selected. You may also need to correct the directory mapping.
    • Link against libsqlite3.0.dylib. This can be added on the "Toura" Target, in Summary -> Linked Frameworks and Libraries
    • Add plugins to project:
      • cntrl-click on the Plugins group and then Add Files to Toura-iPad ...
      • navigate to <mulberry>/builder/project_templates/iOS/Toura/Plugins
      • select all files/directories
      • select "Create groups for any added folders"
      • click Add button
    • Rinse/repeat the above for the Classes group but delete the AppDelegate.{h,c} files first
    • Rename the Toura-iPad* files in the Supporting Files group to Toura-*
    • Add the UrbanAirship.plist file to the Supporting Files group
    • Drag the www directory from Finder into the project adding it to the root node. Be sure to select the "Create folder references for any added folders" option.
    • on the "Toura-iPad" Target change settings:
      • Summary -> iOS Application Target -> Devices - iPad
      • Summary -> iOS Application Target -> Deployment Target - 4.0
      • Build Settings -> Build Options -> Compiler for C/C++/Objective-C -> Apple LLVM compiler - 3.x
      • Build Settings -> Packaging -> Info.plist File - Toura/Toura-Info.plist
      • Build Settings -> Search Paths -> Framework Search Paths - remove the "$(SYSTEM_LIBRARY_DIR)/Frameworks/CoreServices.framework/Versions/A/Frameworks" entry
      • Build Settings -> Apple LLVM compiler 3.0 - Language -> Prefix Header - Toura/Toura-Prefix.pch
    • on the "Toura-iPad" Target -> Build Phases -> Run Script item change this:
      
      chmod 755 "$PROJECT_DIR/$PROJECT_NAME/verify.sh"
      "$PROJECT_DIR/$PROJECT_NAME/verify.s
      
      to this:
      
      chmod 755 "$PROJECT_DIR/Toura/verify.sh"
      "$PROJECT_DIR/Toura/verify.sh"
      
    • remove [email protected] (reference only) from the Toura/Resources/Icons folder
    • remove [email protected] (reference only) from the Toura/Resources/Splash folder
    • add the Default-Landscape.png and Default-Portrait.png files to the Toura/Resources/Splash folder