Repository: cordova-ios Updated Branches: refs/heads/master 788491d99 -> e8382f608
CB-5943 - Update/remove obsolete items in cordova-ios repo Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/e8382f60 Tree: http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/e8382f60 Diff: http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/e8382f60 Branch: refs/heads/master Commit: e8382f608781a5631c6f97a2e457fecc3399ab5e Parents: 788491d Author: Shazron Abdullah <[email protected]> Authored: Fri Feb 14 16:18:24 2014 -0800 Committer: Shazron Abdullah <[email protected]> Committed: Fri Feb 14 16:18:24 2014 -0800 ---------------------------------------------------------------------- FirstRun.md | 64 ------ Makefile | 87 -------- README.md | 169 +--------------- Uninstall Cordova.applescript | 64 ------ guides/Cordova Plugin Upgrade Guide.md | 304 ---------------------------- guides/Cordova Settings File.webloc | 8 - guides/Create a New Project.webloc | 8 - 7 files changed, 9 insertions(+), 695 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/e8382f60/FirstRun.md ---------------------------------------------------------------------- diff --git a/FirstRun.md b/FirstRun.md deleted file mode 100644 index 58b79d7..0000000 --- a/FirstRun.md +++ /dev/null @@ -1,64 +0,0 @@ -<!-- -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---> -## Thanks for installing Cordova! - -## Plugins - -* Plugins **MUST** add their plugin mapping to under their app's **config.xml** <plugins> key, see your plugin's README e.g. - - <plugin name="MyPluginName" value="MyPluginClass" /> - -* Plugins **MUST** add any external hosts they connect to to the white-list in config.xml - see the [**Domain Whitelist Guide**](http://docs.cordova.io/en/edge/guide_whitelist_index.md.html#Domain%20Whitelist%20Guide), e.g. - - <access origin="www.apache.org" /> - -* A plugin's Objective-C code **MUST** be added to the project properly in a "group" (**YELLOW** folder), if you incorrectly added it as a folder reference it would be a blue folder (just delete the reference, and re-add) - -<br /> - -## Plugin Upgrades - -Please see the **Cordova Plugin Upgrade Guide.md** document included in the **guides** sub-folder in the source distribution - -<br /> - -## Project Upgrades - -1. Please see the [**Upgrading Cordova iOS**](http://docs.cordova.io/en/edge/guide_upgrading_index.md.html) document on [http://docs.cordova.io](http://docs.cordova.io) -2. See the **FAQ** in the README.md as well included in the source distribution - -<br /> - -## Creating a new Cordova-based project - -Follow the instructions in the [**Command-Line Usage** section](http://docs.cordova.io/en/edge/guide_command-line_index.md.html#Command-Line%20Usage) of [http://docs.cordova.io](http://docs.cordova.io) - -<br /> - -That's it! Modify the contents of the "www" directory to add your HTML, CSS and JavaScript. -<br /> - -## Links - -* [http://cordova.apache.org/](http://cordova.apache.org/) - - -<br /> http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/e8382f60/Makefile ---------------------------------------------------------------------- diff --git a/Makefile b/Makefile deleted file mode 100644 index b8f6a38..0000000 --- a/Makefile +++ /dev/null @@ -1,87 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -## You can set these environment variables: -## XC_APP (path to your Xcode.app) -## DEVELOPER (path to your Developer folder) -## - don't need to set this if you use 'xcode-select' -## - in Xcode 4.3+, this is within your app bundle: Xcode.app/Contents/Developer - -SHELL = /bin/bash -CP = cp -RM_F = rm -f -RM_RF = rm -rf -PWD = `pwd` -CORDOVA_LIB = $(PWD)/CordovaLib -DEVELOPER ?= '$(shell xcode-select -print-path)' -XC_APP ?= '$(shell mdfind "kMDItemFSName=='Xcode.app' && kMDItemKind=='Application'" | head -1)' -XC = $(DEVELOPER)/usr/bin/xcodebuild -XCODE4_TEMPLATE_FOLDER=$(HOME)/Library/Developer/Xcode/Templates/Project\ Templates/Application -EXISTING_XCODE4_TEMPLATE=$(XCODE4_TEMPLATE_FOLDER)/Cordova-based\ Application.xctemplate -RENAMED_XCODE4_TEMPLATE=$(XCODE4_TEMPLATE_FOLDER)/Cordova-based\ \(pre\ 2.0\)\ Application.xctemplate - -all :: install - -clean-cordova-lib: - @$(RM_RF) CordovaLib/build/ - @$(RM_F) CordovaLib/CordovaLib.xcodeproj/*.mode1v3 - @$(RM_F) CordovaLib/CordovaLib.xcodeproj/*.perspectivev3 - @$(RM_F) CordovaLib/CordovaLib.xcodeproj/*.pbxuser - -clean-bin: - @$(RM_RF) bin/templates/project/build/ - @$(RM_RF) bin/templates/project/__TESTING__.xcodeproj/*.xcworkspace - @$(RM_RF) bin/templates/project/__TESTING__.xcodeproj/xcuserdata - @$(RM_F) bin/templates/project/__TESTING__.xcodeproj/*.perspectivev3 - @$(RM_F) bin/templates/project/__TESTING__.xcodeproj/*.pbxuser - -clean: clean-cordova-lib clean-bin - -check-utils: - @if [[ ! -e $(XC_APP) ]]; then \ - echo -e '\033[31mError: Xcode.app at "$(XC_APP)" was not found. Please download from the Mac App Store.\033[m'; exit 1; \ - fi - @if [[ ! -d $(DEVELOPER) ]]; then \ - echo -e '\033[31mError: The Xcode folder at "$(DEVELOPER)" was not found. Please set it to the proper one using xcode-select. For Xcode >= 4.3.1, set it using "sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer".\033[m'; exit 1; \ - fi - @echo -e "Xcode.app: \t\t\033[33m$(XC_APP)\033[m"; - @echo -e "Using Developer folder: \033[33m$(DEVELOPER)\033[m"; - @if [ -n "$(shell ps aux | grep -i "Xcode.*.app/Contents/MacOS/Xcode" | grep -v grep)" ]; then \ - echo -e "\033[31mError: Xcode is running! Please close Xcode and try again.\033[m" ; exit 1; \ - fi - -install: check-utils clean - @# rename the existing Xcode 4 template - @if [ -d $(EXISTING_XCODE4_TEMPLATE) ]; then \ - mv $(EXISTING_XCODE4_TEMPLATE) $(RENAMED_XCODE4_TEMPLATE) ; \ - fi - @make clean - -uninstall: - @# uninstall previous Cordova versions < 2.0.0 - @$(RM_RF) ~/Library/Application\ Support/Developer/Shared/Xcode/Project\ Templates/Cordova - @$(RM_RF) ~/Library/Developer/Xcode/Templates/Project\ Templates/Application/Cordova-based\ Application.xctemplate - @read -p "Delete all files in ~/Documents/CordovaLib/?: " ; \ - if [ "$$REPLY" == "y" ]; then \ - $(RM_RF) ~/Documents/CordovaLib/ ; \ - fi - @read -p "Delete the Cordova framework /Users/Shared/Cordova/Frameworks/Cordova.framework?: " ; \ - if [ "$$REPLY" == "y" ]; then \ - $(RM_RF) /Users/Shared/Cordova/Frameworks/Cordova.framework/ ; $(RM_RF) ~/Library/Frameworks/Cordova.framework ; \ - fi http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/e8382f60/README.md ---------------------------------------------------------------------- diff --git a/README.md b/README.md index e831bd6..3b782a5 100644 --- a/README.md +++ b/README.md @@ -20,26 +20,15 @@ --> Cordova iOS ============================================================= -CordovaLib is a static library that enables users to include Cordova in their iOS application projects easily, and also create new Cordova based iOS application projects. -<br /> +Cordova iOS is an iOS application library that allows for Cordova-based projects to be built for the iOS Platform. Cordova based applications are, at the core, applications written with web technology: HTML, CSS and JavaScript. -Pre-requisites -------------------------------------------------------------- -Make sure you have installed the latest released iOS SDK which comes with Xcode 4. Download it at [http://developer.apple.com/downloads](http://developer.apple.com/downloads) or the [Mac App Store](http://itunes.apple.com/us/app/xcode/id497799835?mt=12). -<br /> - -Install CordovaLib -------------------------------------------------------------- +<a href="http://cordova.apache.org">Apache Cordova</a> is a project of <a href="http://apache.org">The Apache Software Foundation (ASF)</a>. -1. Download the source -2. Extract to their final location -3. There is no step 3 +Requires: +* Xcode 5.x or greater. Download it at [http://developer.apple.com/downloads](http://developer.apple.com/downloads) or the [Mac App Store](http://itunes.apple.com/us/app/xcode/id497799835?mt=12). <br /> -**NOTE:** For 2.x and greater, the use of Xcode Templates has been removed. If you don't plan on using older Cordova versions, you should run the uninstaller first - **"make uninstall"**. - -<br /> Create a Cordova project ------------------------------------------------------------- @@ -48,172 +37,32 @@ Create a Cordova project 2. Go to the location where you installed Cordova, in the **bin** sub-folder 3. Follow the instructions in the [**Command-Line Usage** section](http://cordova.apache.org/docs/en/edge/guide_cli_index.md.html#The%20Command-line%20Interface) of [http://docs.cordova.io](http://docs.cordova.io) -The docs should also have been included in the distribution. - -**Note** that in version 2.2.0, by default when you create a new project, the CordovaLib sub-project is copied into your project folder, it is not shared. - To use a **shared CordovaLib**, add as the first parameter "**--shared**" to the **bin/create** command. - <br /> Updating a CordovaLib subproject reference in your project ------------------------------------------------------------- -Beginning with Cordova 2.1.0, we are not using the CORDOVALIB Xcode variable anymore when referencing where CordovaLib resides, the reference is an absolute file reference now. - When you update to a new Cordova version, you may need to update the CordovaLib reference in an existing project. Cordova comes with a script that will help you to do this. 1. Launch **Terminal.app** 2. Go to the location where you installed Cordova, in the **bin** sub-folder 3. Run **"update_cordova_subproject [path/to/your/project/xcodeproj]"** where the first parameter is the path to your project's .xcodeproj file -**Note** that in version 2.2.0, by default when you create a new project, the CordovaLib sub-project is copied into your project folder, it is not shared. - -<br /> - - -Uninstalling CordovaLib, Cordova.framework and the Xcode Templates --------------------------------------------------------------------- - -**NOTE:** For 2.x, the use of Xcode Templates has been removed. If you don't plan on using older Cordova versions, you should run the uninstaller first. - -1. Launch "Terminal.app" -2. Navigate to the folder where Makefile is (this folder) -3. Type in "make uninstall" then press Enter - +By default when you create a new project, the CordovaLib sub-project is copied into your project folder, it is not shared. <br /> -**NOTE:** - -It will ask you to confirm whether you want to delete the installed CordovaLib directory (just in case you made changes there) as well as the Cordova framework. It will not ask for confirmation in deleting the installed Xcode templates. - Unit Tests -------------------------------------------------------------------- -1. **Create** a new Cordova-based Application project +1. **Create** a new Cordova project 2. **Download** the code from the **[mobile-spec](https://github.com/apache/cordova-mobile-spec)** and put all of it in the root of your **www** folder +3. Install all the <a href="http://cordova.apache.org/docs/en/edge/guide_cli_index.md.html#The%20Command-Line%20Interface_add_plugin_features">core plugins</a> 3. **Run** the project - <br /> -Installer Notes -------------------------------------------------------------- - -To uninstall: - -Delete the **CORDOVALIB** variable in **Xcode Preferences ->Source Trees**. - -FAQ ---- - -**1. In Xcode 4 (for Cordova versions lesser than 2.0.0) , I get an error that "The Start Page 'www/index.html' was not found."?** - -This is a known issue with the Xcode 4 Template - we can't specify a folder reference. You need to build the project at least once, then go to the folder where your project is in, and drag and drop in the __www__ folder, then add it as a __folder reference__ (will end up as a __blue__ folder, not yellow), then run the project again. Check your project warnings as well for clues. - -**2. When I run the Installer, the installation fails?** - -Usually it's a folder permissions issue with the templates folder, changed by other third-party installers. You can trouble-shoot using the [instructions here](https://issues.apache.org/jira/browse/CB-270). - -**3. When I add Plugins, they are not found or won't compile?** - -Check your Xcode Console Log for clues. - -This can be because of: - -1. You did not add the plugin mapping in __config.xml/<plugins>__ (contact the plugin creator for the proper mapping). Add a new child __<plugin>__ tag. The __name__ attribute is the service name used in the JavaScript interface and the __value__ attribute is the classname used in the Objective-C interface. Often the name and value are the same. -2. You did _not_ add the plugin code as a "group" (__yellow__ folder) but added it as a "folder reference" (blue folder) -3. You are having #import problems - see the [Upgrading Cordova iOS](http://docs.cordova.io/en/edge/guide_upgrading_index.md.html) document - -<br /> - -**4. I get this error in my Xcode Console Log - 'ERROR whitelist rejection: url='http://<MYHOSTNAME>/'** - -This error occurs because of the new white-list feature in version 1.1. - -You will have to add any hosts your app uses or connects to in __config.xml__ as an __<access>__ tag, and set the __origin___ attribute. Wildcards are supported. - -This includes external http/https/ftp/ftps links in: - -1. HTML anchor tags -2. connections in JavaScript (i.e through XMLHttpRequest) - -<br /> - -**5. How do I effectively upgrade my project?** - -Starting with Cordova 1.4, follow the instructions in the [**"Upgrading Cordova iOS"** document](http://docs.cordova.io/en/edge/guide_upgrading_index.md.html). - -<br /> - -**6. I've got 'symbol not found' errors during runtime? Usually it's because I'm deploying to an iOS 3.x device.** - -With version 0.9.6, we implemented the W3C Media Capture API, which requires use of some iOS 4 APIs and frameworks. If you are deploying to an iOS 3.x device, you will need to "weak/optional" link three frameworks: __UIKit__, __CoreMedia__, and __AVFoundation__. - -If you get a "Symbol not found: _NSConcreteGlobalBlock_", you will have to weak link libSystem through a command-line option. - -This is because the LLVM compiler strong links NSConcreteGlobalBlock, but gcc weak links (correctly). Add a linker flag in "Other Linker Flags" in your project target: _"-weak-lSystem"_ - -Starting with version 1.1, when creating a new project, the weak-linking is added through a linker flag so you will not need to do this manually. - -**7. How do I override the location of the start page www/index.html?** - -Starting with Cordova **1.4**, you can set this directly in the function **application:didFinishLaunchingWithOptions:** in your project's **AppDelegate.m** file. - -Modify these lines appropriately: - -1. self.viewController.wwwFolderName = @"www"; -2. self.viewController.startPage = @"index.html"; - -**8. What's the difference between the two templates?** - -Note that Xcode template support has been removed in 2.0.0. - -The CordovaLib static library is only used by the older subproject-based template. The Xcode 4 template uses Cordova.framework (a static framework) because of Xcode 4's template limitations. Both are based off the same code, just packaged differently. - -Staring with 2.0.0, you must create projects [using the command line](http://docs.cordova.io/en/edge/guide_command-line_index.md.html#Command-Line%20Usage): - -<br /> - -**9. In the sub-project based Cordova project, I want to have a project-specific copy of CordovaLib for my project, not a global one. How do I do this?** - -Select the CordovaLib subproject in your Project Navigator, and in the File Inspector, choose the new location of the subproject, or see the "**Updating a CordovaLib subproject reference in your project**" section above. - -**10. In a .framework based Cordova project (only supported in Cordova versions lesser than 2.0.0), I want to have a project-specific copy of Cordova.framework for my project, not a global one. How do I do this?** - -Remove the existing Cordova.framework from your project, and drag and drop your own Cordova.framework in, that's all there is to it. To compile your own version of Cordova.framework, go to _~/Documents/CordovaLib_ and run the Xcode project with the _UniversalFramework_ target. You might need to modify the _USER_FRAMEWORK_SEARCH_PATHS_ in your project as well. - -**11. I've got other Cordova-specific issues not covered here?** - -Do a search in the Apache JIRA Issue Tracker [Apache JIRA](https://issues.apache.org/jira/browse/CB) or the [Wiki](http://wiki.apache.org/cordova/). - -**12. On an iOS 3.2 iPad, and launching an iPhone only app, when I use the Media Capture API, the user interface shown is iPad sized, not iPhone sized?** - -You must delete the *~ipad.png images from **Capture.bundle** if they want to build an iPhone only app and have captureAudio() display properly on an iPad. This additional fix is just for iPad running iOS 3.2 - if the requested *~ipad.png is not available it returns the iPhone sized image. - -**13. I get this linker error: "ld: warning: ignoring file libCordova.a, file was built for archive which is not the architecture being linked (armv7)"** - -In your project's Build Settings, set **"Build for Active Architecture Only"** to **NO**. This has been fixed in Cordova 1.2 for newly created projects. This is usually because Xcode 4 will only build for armv7 by default, and not armv6. - -**14. I get this runtime error/crash: "dyld: Symbol not found: _NSURLIsExcludedFromBackupKey"** - - A. Older iOS versions than 5.1 do not have this symbol defined. You need to add the constant value and weak link the CoreFoundation framework: - - 1. Add this line to your AppDelegate.m: - - extern NSString * const NSURLIsExcludedFromBackupKey _attribute_((weak_import)); - - 2. Add a new value for "Other Linker Flags" in your project's Build Settings: - - -weak_framework CoreFoundation - - - -BUGS? +Futher reading ----- -File them at the [Cordova Issue Tracker](https://issues.apache.org/jira/browse/CB) -<br /> - -MORE INFO ----------- * [http://cordova.apache.org/](http://cordova.apache.org/) +* [http://wiki.apache.org/cordova/](http://wiki.apache.org/cordova/) <br /> http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/e8382f60/Uninstall Cordova.applescript ---------------------------------------------------------------------- diff --git a/Uninstall Cordova.applescript b/Uninstall Cordova.applescript deleted file mode 100644 index 712eac4..0000000 --- a/Uninstall Cordova.applescript +++ /dev/null @@ -1,64 +0,0 @@ --- Licensed to the Apache Software Foundation (ASF) under one --- or more contributor license agreements. See the NOTICE file --- distributed with this work for additional information --- regarding copyright ownership. The ASF licenses this file --- to you under the Apache License, Version 2.0 (the --- "License"); you may not use this file except in compliance --- with the License. You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, --- software distributed under the License is distributed on an --- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --- KIND, either express or implied. See the License for the --- specific language governing permissions and limitations --- under the License. - -set question to display dialog "Uninstall Cordova?" buttons {"Yes", "No"} default button 2 with icon caution -set answer to button returned of question - -if answer is equal to "Yes" then - tell application "Finder" to set home_path to home as text - tell application "Finder" to set startup_hd to startup disk as string - - -- delete Xcode 3 Template - set source to (home_path & "Library:Application Support:Developer:Shared:Xcode:Project Templates:Cordova") - tell application "Finder" - if exists folder source then - delete source - end if - end tell - -- delete Xcode 4 Template - set source to (home_path & "Library:Developer:Xcode:Templates:Project Templates:Application:Cordova-based Application.xctemplate") - tell application "Finder" - if exists folder source then - delete source - end if - end tell - -- delete CordovaLib (used by Xcode 3 Template, and generating Cordova.framework if need be) - set source to (home_path & "Documents:CordovaLib") - tell application "Finder" - if exists folder source then - delete source - end if - end tell - -- delete Cordova.framework (used by Xcode 4 Template) and its parent directories - set source to (startup_hd & "Users:Shared:Cordova") - tell application "Finder" - if exists folder source then - delete source - end if - end tell - -- delete symlink to Cordova.framework - set source to (home_path & "Library:Frameworks:Cordova.framework") - tell application "Finder" - if exists file source then - delete source - end if - end tell - -- end - display dialog "Cordova uninstalled." buttons {"Goodbye â¹"} with icon note -else - display dialog "Phew!" buttons {"That was close âº"} with icon note -end if http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/e8382f60/guides/Cordova Plugin Upgrade Guide.md ---------------------------------------------------------------------- diff --git a/guides/Cordova Plugin Upgrade Guide.md b/guides/Cordova Plugin Upgrade Guide.md deleted file mode 100644 index ba6bb7f..0000000 --- a/guides/Cordova Plugin Upgrade Guide.md +++ /dev/null @@ -1,304 +0,0 @@ -<!-- -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---> -# Cordova Plugin Upgrade Guide # - -This document is for developers who need to upgrade their Cordova plugins to a newer Cordova version. Starting with Cordova 1.5.0, some classes have been renamed, which will require the plugin to be upgraded. Make sure your project itself has been upgraded using the [Cordova iOS Upgrading Guide](http://cordova.apache.org/docs/en/edge/guide_upgrading_ios_index.md.html#Upgrading%20Cordova%20iOS) document. - - -## Upgrading older Cordova plugins to 2.9.x, 3.x ## - -There have been no plugin changes since 2.8.0 - -## Upgrading older Cordova plugins to 2.8.0 ## - -1. **Install** Cordova 2.8.0 -2. Follow the **"Upgrading older Cordova plugins to 2.7.0"** section, if necessary -3. The <plugin> tag in **config.xml** has been deprecated and support will be removed in 3.0.0. To upgrade to the <feature> tag, see this example: - - <plugins> - <plugin name="LocalStorage" value="CDVLocalStorage" /> - <!-- other plugins --> - </plugins> - - <!-- change to: (note that a <feature> tag is on the same level as <plugins> --> - <feature name="LocalStorage"> - <param name="ios-package" value="CDVLocalStorage" /> - </feature> - - -## Upgrading older Cordova plugins to 2.7.0 ## - -1. **Install** Cordova 2.7.0 -2. Follow the **"Upgrading older Cordova plugins to 2.6.0"** section, if necessary -3. The old cordova.exec signature has been deprecated since 2.1, and removed in 2.7.0. See upgrade steps below. - -When you use a method signature in JavaScript like this: - - cordova.exec('MyService.myMethod', myArg1, myArg2, myArg3); - - -The console log will ask you to upgrade it like this: - - The old format of this exec call has been removed (deprecated since 2.1). - Change to: cordova.exec(null, null, "MyService", "myMethod", [ myArg1, myArg2, myArg3 ]); - - -But, if your corresponding Objective-C method uses the old signature like so: - - - (void) myMethod:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options; - - -Update it to this new signature: - - - (void) myMethod:(CDVInvokedUrlCommand*)command; - -Also update any references to "arguments" in the method body with "command.arguments". - -So if your method looked like this: - - - (void) myMethod:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options - { - NSString* myArgs1 = [arguments objectAtIndex:0]; - NSString* myArgs2 = [arguments objectAtIndex:1]; - NSString* myArgs3 = [arguments objectAtIndex:2]; - } - -Change it to this: - - - (void) myMethod:(CDVInvokedUrlCommand*)command - { - NSString* myArgs1 = [command.arguments objectAtIndex:0]; - NSString* myArgs2 = [command.arguments objectAtIndex:1]; - NSString* myArgs3 = [command.arguments objectAtIndex:2]; - } - -This is the easiest upgrade path. If you want to further use the more powerful callback mechanisms provided, see the [Plugin Development Guide](http://docs.phonegap.com/en/2.7.0/guide_plugin-development_ios_index.md.html#Developing%20a%20Plugin%20on%20iOS) to upgrade your plugin. - -## Upgrading older Cordova plugins to 2.6.0 ## - -1. **Install** Cordova 2.6.0 -2. Follow the **"Upgrading older Cordova plugins to 2.5.0"** section, if necessary -3. The **registerPlugin** method of the **commandDelegate** property of plugin, which was deprecated, has been **removed**. Use the **registerPlugin** method directly from the **viewController** property of the plugin. - -## Upgrading older Cordova plugins to 2.5.0 ## - -1. **Install** Cordova 2.5.0 -2. Follow the **"Upgrading older Cordova plugins to 2.4.0"** section, if necessary -3. All plugins are able to be loaded at startup now, through the "onload" attribute of the **<plugin>** element, for example: - - <plugin name="MyPlugin" value="MyPluginClass" onload="true" /> - - All plugins should be able to be run at startup successfully even if they are not designed to (since config.xml allows it), and a plugin's startup should not take too much time to load in its initWithWebView and pluginInitialize functions since the loading of plugins at startup is a synchronous process. **Loading of numerous plugins at startup (especially if they cumulatively take too long) might affect your startup time detrimentally.** - -4. Note the changes in the **CDVPlugin** class in the section below - -### Changes in the CDVPlugin class ### - -**REMOVED:** - - - (CDVPlugin*)initWithWebView:(UIWebView*)theWebView settings:(NSDictionary*)classSettings; - -**ADDED:** - - - (void)pluginInitialize; - -Thus, a plugin will be initialized in a two-step process: - - - (CDVPlugin*)initWithWebView:(UIWebView*)theWebView; - - (void)pluginInitialize; - -**ADDED:** - -A plugin can listen for the **"CDVPageDidLoadNotification"** NSNotification, which is sent whenever a new web-page has finished loading in the CordovaWebView. The **"CDVPageDidLoadNotification""** NSNotification is passed the CordovaWebView, which is set as the **object** property of the NSNotification. - -**CHANGED:** - -The **"CDVPluginResetNotification""** NSNotification is now passed the CordovaWebView, which is set as the **object** property of the NSNotification. A plugin can receive this notification when it overrides the CDVPlugin **onReset** selector: - - - (void) onReset:(NSNotification*)notification; - -**ADDED:** - -The plugin's **commandDelegate** property has a new **settings** property that represents the application's settings (preferences from the config.xml file). e.g. - - NSString* mySetting = self.commandDelegate.settings[@"MySetting"]; - -## Upgrading older Cordova plugins to 2.4.0 ## - -1. **Install** Cordova 2.4.0 -2. Follow the **"Upgrading older Cordova plugins to 2.3.0"** section, if necessary - -JSONKit usage has been removed, and replaced by AppKit's NSJSONSerialization. If you are using CordovaLib's JSONKit, either use your own JSONKit or use NSJSONSerialization instead. - -Because of NSJSONSerialization use in Cordova 2.4.0, all the objects in a CDVInvokedUrlCommand.arguments NSArray are immutable. Here is a mutable example: e.g. - - // command is a CDVInvokedUrlCommand object. Here we create a mutable copy of the object - NSMutableDictionary* dict = [[command.arguments objectAtIndex:0] mutableCopy]; - - // do things with the dict object, then at the end release it if non-ARC - #if __has_feature(objc_arc) - // do nothing for ARC - #else - // release it if non-ARC - [dict release]; - #endif - - -## Upgrading older Cordova plugins to 2.3.0 ## - -1. **Install** Cordova 2.3.0 -2. Follow the **"Upgrading older Cordova plugins to 2.2.0"** section, if necessary -3. Network connections by plugins are **no longer checked** by the whitelist. To use the whitelist for your plugin network connections, you have to set the "User-Agent" header of your connection to the user-agent of the viewController. - - CDVViewController* vc = ((CDVViewController*)self.viewController); - NSString* userAgent = vc.userAgent; - // then set the User-Agent header of your network connection... - -4. After that, you can **query the whitelist** to see if your URL will pass it: - - CDVViewController* vc = ((CDVViewController*)self.viewController); - BOOL passesWhitelist = [vc URLisAllowed:[NSURL URLWithString:@"http://apache.org"]]; - -## Upgrading older Cordova plugins to 2.2.0 ## - -1. **Install** Cordova 2.2.0 -2. Follow the **"Upgrading older Cordova plugins to 2.1.0"** section, if necessary -3. You don't need to create and write the javascript anymore. At the end of your plugin method, just send the CDVPluginResult and callbackId to your commandDelegate: - - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - -## Upgrading older Cordova plugins to 2.1.0 ## - -1. **Install** Cordova 2.1.0 -2. Follow the **"Upgrading older Cordova plugins to 2.0.0"** section, if necessary -3. **Change** in the method signature of the **CordovaLib's JSONKit method categories**, they are prefixed with "cdvjk_" now: - - e.g. - - [myDict cdvjk_JSONString]; - - instead of: - - [myDict JSONString]; - -4. **Support** a new plugin method signature (old signature is deprecated): - - The **new** signature is: - - - (void) myMethod:(CDVInvokedUrlCommand*)command; - - The **old (deprecated**) signature is: - - - (void) myMethod:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options; - - Basically, the options dictionary has been removed for the new signature, and the callbackId is not the 0th index item for the arguments array, but it is now in a separate property. View [CDVInvokedUrlCommand.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVInvokedUrlCommand.h) - -## Upgrading older Cordova plugins to 2.0.0 ## - -1. **Install** Cordova 2.0.0 -2. Follow the **"Upgrading older Cordova plugins to 1.9.0"** section, if necessary -3. No changes in plugin structure from 1.9.x -4. Change in import header use: in 2.0.0, Cordova projects use the CordovaLib project as a subproject, it now uses the CORDOVA_FRAMEWORK styled import like this: - - #import <Cordova/CDV.h> - - instead of like this: - - #import "CDV.h" - - So now in 2.0.0, Cordova import headers are unified. - -**NOTE:** The deprecated for 2.0.0 CDVPlugin methods **verifyArguments** and **appViewController** have been removed. - -## Upgrading older Cordova plugins to 1.9.0 ## - -1. **Install** Cordova 1.9.0 -2. Follow the **"Upgrading older Cordova plugins to 1.8.0"** section, if necessary -3. No changes in plugin structure from 1.8.x - - -## Upgrading older Cordova plugins to 1.8.0 ## - -1. **Install** Cordova 1.8.0 -2. Follow the **"Upgrading older Cordova plugins to 1.7.0"** section, if necessary -3. No changes in plugin structure from 1.7.x - -## Upgrading older Cordova plugins to 1.7.0 ## - -1. **Install** Cordova 1.7.0 -2. Follow the **"Upgrading older Cordova plugins to 1.6.0"** section, if necessary -3. No changes in plugin structure from 1.6.x - - -## Upgrading older Cordova plugins to 1.6.x ## - -1. **Install** Cordova 1.6.x -2. Follow the **"Upgrading older Cordova plugins to 1.5.0"** section, if necessary -3. See the **1.6.0 Plugin Notes** section for new functionality available to plugins -4. The global **"Cordova"** (upper-case C) was renamed to **"cordova"** (lower-case c) to match the cordova-js Android implementation in 1.5.0 that is now common to Android, BlackBerry and iOS. Please rename your calls to reflect the new lower-case **c**, or you can add a shim (which will support older versions) like so: - - a. Wrap your plugin JavaScript in a temporary scope (self-executing function) - see ["Temporary Scope"](http://ejohn.org/apps/learn/#57) or [this](https://github.com/phonegap/phonegap-plugins/wiki/Wrapping-your-Plugin's-JavaScript) - - b. Inside your temporary scope, set a **local var** to the global PhoneGap/Cordova/cordova object, for the exec function - - var cordovaRef = window.PhoneGap || window.Cordova || window.cordova; // old to new fallbacks - - c. Replace any **PhoneGap** or **Cordova** or **cordova** in your plugin JavaScript (within the temporary scope), with **cordovaRef** above - - - -## Upgrading older Cordova plugins to 1.5.0 ## - -1. **Install** Cordova 1.5.0 -2. Replace macro occurrences of **"PHONEGAP\_FRAMEWORK"** with **"CORDOVA\_FRAMEWORK"** -3. Replace import occurrences of **"<PhoneGap/"** with **"<Cordova/"** -4. Replace class prefixes of **PG** with **CDV** (for example **PG**Plugin becomes **CDV**Plugin) -5. Replace occurrences of **[self appViewController]** with **self.viewController**. -6. See the **1.5.0 Plugin Notes** section for new functionality available to plugins - -## 1.6.0 Plugin Notes ## - -1. There is a new CDVCommandDelegate protocol method available: - - - (void) registerPlugin:(CDVPlugin*)plugin withClassName:(NSString*)className; - - You use this in your plugin to initialize another plugin that your plugin needs to be available and running (dependency), and all plugins can access the registered plugin from the **getCommandInstance** method of the CDVCommandDelegate. This is a substitute for listing a plugin your plugin depends on, in **Cordova.plist/Plugins**. -2. There is a new **IsAtLeastiOSVersion** macro available in **CDVAvailability.h**: - - // Returns YES if it is at least version specified as NSString(X) - if (IsAtLeastiOSVersion(@"5.1")) { - // do something for iOS 5.1 or greater - } -3. There are **Compatibility headers** available for versions 0.9.6 and 1.5.0, in **~/Documents/CordovaLib/Classes/compatibility** (where ~ signifies your Home folder). See the **"README.txt"** in that folder for instructions. - - Note that including these headers are all or nothing - you can't have a mix and match of plugin versions, if you include the 0.9.6 compatibility header - all your plugins must be of the same "version". It is highly recommended that you upgrade your plugins to the current version instead of using these stop-gap headers. - - The 1.5.0 header shouldn't be used - this is included for the [LocalStorage patch](https://issues.apache.org/jira/browse/CB-330) and is for using core plugins as general plugins that easily support multiple versions, and may be removed in the future. - - -## 1.5.0 Plugin Notes ## - -1. The UIViewController returned from the **viewController property** will be a CDVViewController subclass. -2. The **appDelegate method** basically returns an (id) now, and is the same as calling **[[UIApplication sharedApplication] delegate]**. In the past it returned a PhoneGapDelegate class. -3. There is a new **commandDelegate property** now, which gives access to the [CDVCommandDelegate protocol](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVCommandDelegate.h) used by the app -4. There is a new header file **CDVAvailability.h** that defines Cordova versions during compile time - to check for the current version during run-time, call **[CDVViewController cordovaVersion]** - - http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/e8382f60/guides/Cordova Settings File.webloc ---------------------------------------------------------------------- diff --git a/guides/Cordova Settings File.webloc b/guides/Cordova Settings File.webloc deleted file mode 100644 index b2dbb13..0000000 --- a/guides/Cordova Settings File.webloc +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>URL</key> - <string>http://cordova.apache.org/docs/en/edge/guide_platforms_ios_config.md.html#iOS%20Configuration</string> -</dict> -</plist> http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/e8382f60/guides/Create a New Project.webloc ---------------------------------------------------------------------- diff --git a/guides/Create a New Project.webloc b/guides/Create a New Project.webloc deleted file mode 100644 index 997c44d..0000000 --- a/guides/Create a New Project.webloc +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>URL</key> - <string>http://cordova.apache.org/docs/en/edge/guide_cli_index.md.html#The%20Command-Line%20Interface</string> -</dict> -</plist>
