http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/f061b980/www/docs/en/edge/guide/platforms/ios/index.md ---------------------------------------------------------------------- diff --git a/www/docs/en/edge/guide/platforms/ios/index.md b/www/docs/en/edge/guide/platforms/ios/index.md deleted file mode 100644 index 4aff843..0000000 --- a/www/docs/en/edge/guide/platforms/ios/index.md +++ /dev/null @@ -1,263 +0,0 @@ ---- -license: > - 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. - -title: iOS Platform Guide ---- - -# iOS Platform Guide - -This guide shows how to set up your SDK development environment to -deploy Cordova apps for iOS devices such as iPhone and iPad. See the -following for more detailed platform-specific information: - -* [iOS Configuration](config.html) -* [Upgrading iOS](upgrade.html) -* [iOS WebViews](webview.html) -* [iOS Plugins](plugin.html) -* [iOS Shell Tool Guide](tools.html) - -The command-line tools above refer to versions prior to Cordova 3.0. -See [The Command-Line Interface](../../cli/index.html) for information about the -current interface. - -## Requirements and Support - -Apple® tools required to build iOS applications run only on the OS X -operating system on Intel-based Macs. Xcode® 6.0 (the minimum required -version) runs only on OS X version 10.9 (Mavericks) or greater, and -includes the iOS 8 SDK (Software Development Kit). To submit apps to -the Apple App Storeâ requires the latest versions of the Apple tools. - -You can test many of the Cordova features using the iOS emulator -installed with the iOS SDK and Xcode, but you need an actual device to -fully test all of the app's device features before submitting to the -App Store. The device must have at least iOS 6.x installed, the -minimum iOS version supported as of Cordova 3.0. Supporting devices -include all iPad® models, iPhone® 3GS and above, and iPod® Touch 3rd -Generation or later. To install apps onto a device, you must also be a -member of Apple's -[iOS Developer Program](https://developer.apple.com/programs/ios/), -which costs $99 per year. This guide shows how to deploy apps to the -iOS emulator, for which you don't need to register with the developer -program. - -The [ios-sim](https://www.npmjs.org/package/ios-sim) and -[ios-deploy](https://www.npmjs.org/package/ios-deploy) tools - allows you -to launch iOS apps into the iOS Simulator and iOS Device from the command-line. - -## Install the SDK - -There are two ways to download Xcode: - -* from the [App Store](https://itunes.apple.com/us/app/xcode/id497799835?mt=12), - available by searching for "Xcode" in the __App Store__ application. - -* from [Apple Developer Downloads](https://developer.apple.com/downloads/index.action), - which requires registration as an Apple Developer. - -Once Xcode is installed, several command-line tools need to be enabled -for Cordova to run. From the __Xcode__ menu, select __Preferences__, -then the __Downloads__ tab. From the __Components__ panel, press the -__Install__ button next to the __Command Line Tools__ listing. - -## Install Deploy Tools - -Run from comman-line terminal: - - $ npm install -g ios-sim - $ npm install -g ios-deploy - -## Create a New Project - -Use the `cordova` utility to set up a new project, as described in The -Cordova [The Command-Line Interface](../../cli/index.html). For example, in a source-code directory: - - $ cordova create hello com.example.hello "HelloWorld" - $ cd hello - $ cordova platform add ios - $ cordova prepare # or "cordova build" - -## Deploy the app - -To deploy the app on a connected iOS device: - - $ cordova run ios --device -To deploy the app on a default iOS emulator: - - $ cordova emulate ios - -You can use __cordova run ios --list__ to see all available targets and -__cordova run ios --target=target_name__ to run application on a specific -device or emulator (for example, `cordova run ios --target="iPhone-6"`). - -You can also use __cordova run --help__ to see additional build and run -options. - -## Open a Project in the SDK - -Once ios platform is added to your project, you can open it from -within Xcode. Double-click to open the `hello/platforms/ios/hello.xcodeproj` -file. The screen should look like this: - - - -## Deploy to Emulator - -To preview the app in the iOS emulator: - -1. Make sure the _.xcodeproj_ file is selected in the left panel. - -2. Select the __hello__ app in the panel immediately to the right. - -3. Select the intended device from the toolbar's __Scheme__ menu, such - as the iPhone 6.0 Simulator as highlighted here: - -  - -4. Press the __Run__ button that appears in the same toolbar to the - left of the __Scheme__. That builds, deploys and runs the - application in the emulator. A separate emulator application opens - to display the app: - -  - - Only one emulator may run at a time, so if you want to test the app - in a different emulator, you need to quit the emulator application - and run a different target within Xcode. - -Xcode comes bundled with emulators for the latest versions of iPhone -and iPad. Older versions may be available from the __Xcode → -Preferences → Downloads → Components__ panel. - -## Deploy to Device - -For details about various requirements to deploy to a device, refer -to the _Launch Your App On Devices_ section of -Apple's -[About App Distribution Workflows](https://developer.apple.com/library/prerelease/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Introduction/Introduction.html). -Briefly, you need to do the following before deploying: - -1. Join the Apple iOS Developer Program. - -2. Create a _Provisioning Profile_ within the - [iOS Provisioning Portal](https://developer.apple.com/ios/manage/overview/index.action). - You can use its _Development Provisioning Assistant_ to create and - install the profile and certificate Xcode requires. - -3. Verify that the _Code Signing_ section's _Code Signing Identity_ - within the project settings is set to your provisioning profile - name. - -To deploy to the device: - -1. Use the USB cable to plug the device into your Mac. - -2. Select the name of the project in the Xcode window's __Scheme__ - drop-down list. - -3. Select your device from the __Device__ drop-down list. If it is - plugged in via USB but still does not appear, press the - __Organizer__ button to resolve any errors. - -4. Press the __Run__ button to build, deploy and run the application - on your device. - -## Common Problems - -__Deprecation Warnings__: When an application programming interface -(API) is changed or replaced by another API, it is marked as -_deprecated_. The API still works in the near term, but is eventually -removed. Some of these deprecated interfaces are reflected in Apache -Cordova, and Xcode issues warnings about them when you build and -deploy an application. - -Xcode's warning about the `invokeString` method concerns functionality -that launches an app from a custom URL. While the mechanism to load -from a custom URL has changed, this code is still present to provide -backwards functionality for apps created with older versions of -Cordova. The sample app does not use this functionality, so these -warnings can be ignored. To prevent these warnings from appearing, -remove the code that references the deprecated invokeString API: - -* Edit the _Classes/MainViewController.m_ file, surround the following - block of code with `/*` and `*/` comments as shown below, then type - __Command-s__ to save the file: - - (void)webViewDidFinishLoad:(UIWebView*)theWebView - { - // only valid if ___PROJECTNAME__-Info.plist specifies a protocol to handle - /* - if (self.invokeString) { - // this is passed before the deviceready event is fired, so you can access it in js when you receive deviceready - NSLog(@"DEPRECATED: window.invokeString - use the window.handleOpenURL(url) function instead, which is always called when the app is launched through a custom scheme url."); - NSString* jsString = [NSString stringWithFormat:@"var invokeString = \"%@\";", self.invokeString]; - [theWebView stringByEvaluatingJavaScriptFromString:jsString]; - } - */ - // Black base color for background matches the native apps - theWebView.backgroundColor = [UIColor blackColor]; - - return [super webViewDidFinishLoad:theWebView]; - } - -* Edit the _Classes/AppViewDelegate.m_ file, comment out the following - line by inserting a double slash as shown below, then type - __Command-s__ to save the file: - - //self.viewController.invokeString = invokeString; - -* Press __Command-b__ to rebuild the project and eliminate the warnings. - -<!-- Does this fix only last until the next "cordova prepare"? --> - -__Missing Headers__: Compilation errors relating to missing headers -result from problems with the build location, and can be fixed -via Xcode preferences: - -1. Select __Xcode → Preferences → Locations__. - -2. In the __Derived Data__ section, press the __Advanced__ button and - select __Unique__ as the __Build Location__ as shown here: - -  - -This is the default setting for a new Xcode install, but it may be set -differently following an upgrade from an older version of Xcode. - -For further information, consult Apple's documentation: - -* [Start Developing iOS Apps Today](http://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/index.html#//apple_ref/doc/uid/TP40011343) provides a quick overview of steps for developing iOS Apps. - -* [Member Center home page](https://developer.apple.com/membercenter/index.action) - provides links to several iOS technical resources including - technical resources, the provisioning portal, distribution guides - and community forums. - -* [Tools Workflow Guide for iOS](http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/00-About_the_iOS_Application_Development_Workflow/introduction.html#//apple_ref/doc/uid/TP40007959) - -* [Xcode User Guide](http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/000-About_Xcode/about.html#//apple_ref/doc/uid/TP40010215) - -* [Session Videos](https://developer.apple.com/videos/wwdc/2012/) from - the Apple World Wide Developer Conference 2012 (WWDC2012) - -* The [xcode-select command](http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/xcode-select.1.html), - which helps specify the correct version of Xcode if more than one is installed. - -(Mac®, OS X®, Apple®, Xcode®, App Storeâ , iPad®, iPhone®, iPod® and Finder® are Trademarks of Apple Inc.) -
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/f061b980/www/docs/en/edge/guide/platforms/ios/plugin.md ---------------------------------------------------------------------- diff --git a/www/docs/en/edge/guide/platforms/ios/plugin.md b/www/docs/en/edge/guide/platforms/ios/plugin.md deleted file mode 100644 index 63d3900..0000000 --- a/www/docs/en/edge/guide/platforms/ios/plugin.md +++ /dev/null @@ -1,249 +0,0 @@ ---- -license: > - 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. - -title: iOS Plugins ---- - -# iOS Plugins - -This section provides details for how to implement native plugin code -on the iOS platform. Before reading this, see Application Plugins for -an overview of the plugin's structure and its common JavaScript -interface. This section continues to demonstrate the sample _echo_ -plugin that communicates from the Cordova webview to the native -platform and back. - -An iOS plugin is implemented as an Objective-C class that extends the -`CDVPlugin` class. For JavaScript's `exec` method's `service` -parameter to map to an Objective-C class, each plugin class must be -registered as a `<feature>` tag in the named application directory's -`config.xml` file. - -## Plugin Class Mapping - -The JavaScript portion of a plugin uses the `cordova.exec` method as -follows: - - exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]); - -This marshals a request from the `UIWebView` to the iOS native side, -effectively calling the `action` method on the `service` class, with -the arguments passed in the `args` array. - -Specify the plugin as a `<feature>` tag in your Cordova-iOS -application's project's `config.xml` file, using the `plugin.xml` file -to inject this markup automatically, as described in Application -Plugins: - - <feature name="LocalStorage"> - <param name="ios-package" value="CDVLocalStorage" /> - </feature> - -The feature's `name` attribute should match what you specify as the -JavaScript `exec` call's `service` parameter. The `value` attribute -should match the name of the plugin's Objective-C class. The `<param>` -element's `name` should always be `ios-package`. If you do not follow -these guidelines, the plugin may compile, but Cordova may still not be -able to access it. - -## Plugin Initialization and Lifetime - -One instance of a plugin object is created for the life of each -`UIWebView`. Plugins are ordinarily instantiated when first referenced -by a call from JavaScript. Otherwise they can be instantiated by -setting a `param` named `onload` to `true` in the `config.xml` file: - - <feature name="Echo"> - <param name="ios-package" value="Echo" /> - <param name="onload" value="true" /> - </feature> - -There is _no_ designated initializer for plugins. Instead, plugins -should use the `pluginInitialize` method for their startup logic. - -Plugins with long-running requests, background activity such as media -playback, listeners, or that maintain internal state should implement -the `onReset` method to clean up those activities. The method runs -when the `UIWebView` navigates to a new page or refreshes, which -reloads the JavaScript. - -## Writing an iOS Cordova Plugin - -A JavaScript call fires off a plugin request to the native side, and -the corresponding iOS Objective-C plugin is mapped properly in the -`config.xml` file, but what does the final iOS Objective-C plugin -class look like? Whatever is dispatched to the plugin with -JavaScript's `exec` function is passed into the corresponding plugin -class's `action` method. A plugin method has this signature: - - - (void)myMethod:(CDVInvokedUrlCommand*)command - { - CDVPluginResult* pluginResult = nil; - NSString* myarg = [command.arguments objectAtIndex:0]; - - if (myarg != nil) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - } else { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Arg was null"]; - } - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - } - -For more details, see - `[CDVInvokedUrlCommand.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVInvokedUrlCommand.h)`, - `[CDVPluginResult.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPluginResult.h)`, -and - `[CDVCommandDelegate.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVCommandDelegate.h)`. - -## iOS CDVPluginResult Message Types - -You can use `CDVPluginResult` to return a variety of result types back to -the JavaScript callbacks, using class methods that follow this pattern: - - + (CDVPluginResult*)resultWithStatus:(CDVCommandStatus)statusOrdinal messageAs... - -You can create `String`, `Int`, `Double`, `Bool`, `Array`, -`Dictionary`, `ArrayBuffer`, and `Multipart` types. You can also leave -out any arguments to send a status, or return an error, or even choose -not to send any plugin result, in which case neither callback fires. - -Note the following for complex return values: - -- `messageAsArrayBuffer` expects `NSData*` and converts to an - `ArrayBuffer` in the JavaScript callback. Likewise, any - `ArrayBuffer` the JavaScript sends to a plugin are converted to - `NSData*`. - -- `messageAsMultipart` expects an `NSArray*` containing any of the - other supported types, and sends the entire array as the `arguments` - to your JavaScript callback. This way, all of the arguments are - serialized or deserialized as necessary, so it is safe to return - `NSData*` as multipart, but not as `Array`/`Dictionary`. - -## Echo iOS Plugin Example - -To match the JavaScript interface's _echo_ feature described in -Application Plugins, use the `plugin.xml` to inject a `feature` -specification to the local platform's `config.xml` file: - - <platform name="ios"> - <config-file target="config.xml" parent="/*"> - <feature name="Echo"> - <param name="ios-package" value="Echo" /> - </feature> - </config-file> - </platform> - - -Then we would add the following `Echo.h` and `Echo.m` files to the -`Plugins` folder within the Cordova-iOS application directory: - - /********* Echo.h Cordova Plugin Header *******/ - - #import <Cordova/CDV.h> - - @interface Echo : CDVPlugin - - - (void)echo:(CDVInvokedUrlCommand*)command; - - @end - - /********* Echo.m Cordova Plugin Implementation *******/ - - #import "Echo.h" - #import <Cordova/CDV.h> - - @implementation Echo - - - (void)echo:(CDVInvokedUrlCommand*)command - { - CDVPluginResult* pluginResult = nil; - NSString* echo = [command.arguments objectAtIndex:0]; - - if (echo != nil && [echo length] > 0) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo]; - } else { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR]; - } - - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - } - - @end - -The necessary imports at the top of the file extends the class from -`CDVPlugin`. In this case, the plugin only supports a single `echo` -action. It obtains the echo string by calling the `objectAtIndex` -method get the first parameter of the `arguments` array, which -corresponds to the arguments passed in by the JavaScript `exec()` -function. - -It checks the parameter to make sure it is not `nil` or an empty -string, returning a `PluginResult` with an `ERROR` status if so. If -the parameter passes the check, it returns a `PluginResult` with an -`OK` status, passing in the original `echo` string. Finally, it sends -the result to `self.commandDelegate`, which executes the `exec` -method's success or failure callbacks on the JavaScript side. If the -success callback is called, it passes in the `echo` parameter. - -## iOS Integration - -The `CDVPlugin` class features other methods that your plugin can -override. For example, you can capture the `[pause](../../../cordova/events/events.pause.html)`, `[resume](../../../cordova/events/events.resume.html)`, app -terminate and `handleOpenURL` events. See the -[CDVPlugin.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.h) -and -[CDVPlugin.m](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.m) -class for guidance. - -## Threading - -Plugin methods ordinarily execute in the same thread as the main -interface. If your plugin requires a great deal of processing or -requires a blocking call, you should use a background thread. For -example: - - - (void)myPluginMethod:(CDVInvokedUrlCommand*)command - { - // Check command.arguments here. - [self.commandDelegate runInBackground:^{ - NSString* payload = nil; - // Some blocking logic... - CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:payload]; - // The sendPluginResult method is thread-safe. - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; - } - -## Debugging iOS Plugins - -To debug on the Objective-C side, you need Xcode's built-in debugger. -For JavaScript, on iOS 5.0 or greater you can use [Weinre, an Apache Cordova -Project](https://github.com/apache/cordova-weinre) or [iWebInspector, -a third-party utility](http://www.iwebinspector.com/). For iOS 8, you -can attach Safari 8.0 to the app running within the iOS 8 Simulator. - -## Common Pitfalls - -- Don't forget to add your plugin's mapping to `config.xml`. If you - forget, an error is logged in the Xcode console. - -- Don't forget to add any hosts you connect to in the whitelist, as - described in Domain [Whitelist Guide](../../appdev/whitelist/index.html). If you forget, an error is - logged in the Xcode console. http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/f061b980/www/docs/en/edge/guide/platforms/ios/tools.md ---------------------------------------------------------------------- diff --git a/www/docs/en/edge/guide/platforms/ios/tools.md b/www/docs/en/edge/guide/platforms/ios/tools.md deleted file mode 100644 index bdefd58..0000000 --- a/www/docs/en/edge/guide/platforms/ios/tools.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -license: > - 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. - -title: iOS Shell Tool Guide ---- - -# iOS Shell Tool Guide - -This guide shows how to use Cordova's set of platform-centered shell -tools to develop iOS apps. This development path, discussed in the -[Overview](../../overview/index.html), may offer you a greater range of development options for iOS -than the cross-platform CLI tool described in The Command-Line -Interface. For example, you need to use shell tools when deploying a -custom Cordova WebView alongside native components. Before using -either development path, you must first configure the SDK environment -as described in the [iOS Platform Guide](index.html). These tools rely upon -Xcode's command-line tools such as `xcode-select` and `xcodebuild`. - -To enable shell tools for iOS, download Cordova from -[cordova.apache.org](http://cordova.apache.org). The download contains -separate archives for each platform. Expand each you wish to target, -`ios` in this case. The relevant tools are typically available in the -top-level `bin` directory, otherwise consult the __README__ file for -more detailed directions. - -These tools allow you to create, build, and run iOS apps. For -information on the additional command-line interface that enables -plugin features across all platforms, see Using Plugman to Manage -Plugins. See Application Plugins for details on how to develop -plugins. - -## Create a Project - -Run the `create` command, specifying the existing path to the project, -the reverse-domain-style package identifier, and the app's display -name. - - $ ./path/to/cordova-ios/bin/create /path/to/my_new_project com.example.project_name ProjectName - -## Build a Project - - $ /path/to/my_new_project/cordova/build - -## Run App on an Emulator - - $ /path/to/my_new_project/cordova/run --emulator - -## Run App on a Device - - $ /path/to/my_new_project/cordova/run --device - -## Signing the App - -You can learn more about signing, distributing iOS apps, creating a certificate and provisioning profile on the [iOS Developer Library](https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringYourApp/ConfiguringYourApp.html). - -To sign the app in Cordova you need the following: - -* Code signing identity (`--codeSignIdentity`): [Using XCode](https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP40012582-CH31-SW6) you can create a new iOS signing identity and add it to your keychain. The type of of the code signing identity - typically distribution or development, needs to be specified here. - -* Provisioning profile (`--provisioningProfile`): [Using the Apple Member Center](https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingProfiles/MaintainingProfiles.html#//apple_ref/doc/uid/TP40012582-CH30-SW61) you can create a provisioning profile. Download the provisioning profile onto your machine and launch it in XCode to register it. It is copied here on your Mac: ~/Library/MobileDevice/Provisioning\ Profiles/. Opening it in a text editor, you can find the UUID which needs to be specified here. - -* Code signing resource rules(`--codeSignResourceRules`) (Optional): Allows you to specify custom signing resource rules. - -These parameters can be specified using the command line arguments above to `build` or `run` scripts: - - $ /path/to/my_new_project/cordova/build --codeSignIdentitiy="iPhone Distribtion" --provisioningProfile="926c2bd6-8de9-4c2f-8407-1016d2d12954" - -Alternatively, you could specify them in a build configuration file (build.json) using (`--buildConfig`) argument. Here's a sample of a build configuration file: - - { - "ios": { - "debug": { - "codeSignIdentitiy": "iPhone Development", - "provisioningProfile": "926c2bd6-8de9-4c2f-8407-1016d2d12954", - }, - "release": { - "codeSignIdentitiy": "iPhone Distribution" - "provisioningProfile": "70f699ad-faf1-4adE-8fea-9d84738fb306", - } - } - } - -There is also support to mix and match command line arguments and parameters in build.json file. Values from the command line arguments will get precedence. - -## Logging - - $ /path/to/my_new_project/cordova/log - http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/f061b980/www/docs/en/edge/guide/platforms/ios/upgrade.md ---------------------------------------------------------------------- diff --git a/www/docs/en/edge/guide/platforms/ios/upgrade.md b/www/docs/en/edge/guide/platforms/ios/upgrade.md deleted file mode 100644 index 26026e0..0000000 --- a/www/docs/en/edge/guide/platforms/ios/upgrade.md +++ /dev/null @@ -1,806 +0,0 @@ ---- -license: > - 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. - -title: Upgrading iOS ---- - -# Upgrading iOS - -This guide shows how to modify iOS projects to upgrade from older -versions of Cordova. Most of these instructions apply to projects -created with an older set of command-line tools that precede the -`cordova` CLI utility. See [The Command-Line Interface](../../cli/index.html) for information -how to update the version of the CLI. - -__NOTE__: Xcode 6 is required. Currently, to submit to the -Apple App Store, you should use the latest shipped version of the iOS SDK, which is iOS 8 and this is included only with Xcode 6. - -## Upgrading 3.6.0 Projects to 4.0.0 - -For non-CLI projects, run: - - bin/update path/to/project - -For CLI projects: - -1. Update the `cordova` CLI version. See [The Command-Line Interface](../../cli/index.html). - -2. Run `cordova platform update ios` in your existing projects. - - -## Upgrading 3.3.0 Projects to 3.4.0 - -For non-CLI projects, run: - - bin/update path/to/project - -For CLI projects: - -1. Update the `cordova` CLI version. See [The Command-Line Interface](../../cli/index.html). - -2. Run `cordova platform update ios` - -## Upgrading 3.2.0 Projects to 3.3.0 - -For non-CLI projects, run: - - bin/update path/to/project - -For CLI projects: - -1. Update the `cordova` CLI version. See [The Command-Line Interface](../../cli/index.html). - -2. Run `cordova platform update ios` - -## Upgrading 3.1.0 Projects to 3.2.0 - -For non-CLI projects, run: - - bin/update path/to/project - -For CLI projects: - -1. Update the `cordova` CLI version. See [The Command-Line Interface](../../cli/index.html). - -2. Run `cordova platform update ios` - - -## Upgrading 3.0.0 Projects to 3.1.0 - -For non-CLI projects, run: - - bin/update path/to/project - -For CLI projects: - -1. Update the `cordova` CLI version. See [The Command-Line Interface](../../cli/index.html). - -2. Run `cordova platform update ios` - -iOS 7 Issues: - -1. Remove `width=device-width, height=device-height` from the - `index.html` file's `viewport` `meta` tag. (See [the relevant - bug](https://issues.apache.org/jira/browse/CB-4323).) - -2. Update your media, media-capture and splashscreen core plugins for - iOS 7 support. - -Xcode 5 Issues: - -1. Update your Project Settings if Xcode 5 prompts you to do so (in the Issues Navigator). - -2. Update your __Compiler for C/C++/Objective-C__ setting, under the - __Build Settings__ tab, __Build Options__ section. Choose __Default - compiler (Apple LLVM 5.0)__. - -## Upgrade to the CLI (3.0.0) from 2.9.0 - -1. Create a new Apache Cordova 3.0.0 project using the cordova CLI, as - described in [The Command-Line Interface](../../cli/index.html). - -2. Add your platforms to the cordova project, for example: `cordova - platform add ios`. - -3. Copy the contents of the project's `www` directory to the `www` directory - at the root of the cordova project you just created. - -4. Copy or overwrite any native assets from your original project - (`Resources`, etc.), making sure to add any - new files to the `.xcodeproj` project. The iOS project builds - inside the `platforms\ios` directory. - -5. Copy the `config.xml` into the `www` directory, and remove any plugin - definitions. Modify settings here instead of the platform directory. - -6. Use the cordova CLI tool to install any plugins you need. Note that - the CLI handles all core APIs as plugins, so they may need to be - added. Only 3.0.0 plugins are compatible with the CLI. - -7. Build and test. - -## Upgrading 2.9.0 Projects to 3.0.0 - -1. Download and extract the Cordova 3.0.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-3.0.0`. - -2. Quit Xcode if it is running. - -3. Using Terminal.app, navigate to the directory where you put the downloaded source above. - -4. Create a new project, as described in [iOS Shell Tool Guide](tools.html). You need the assets from this new project. - -5. Copy the `www/cordova.js` (note that it does not have a version suffix anymore, the version is in the file itself in the header) file from the new project into the `www` directory, and delete the `www/cordova.js` file. - -6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file. - -7. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory. - -__NOTE__: Starting with Cordova 3.0.0, plugins are not pre-installed, -and you need to use the `plugman` command-line utility to install them -yourself. See [Using Plugman to Manage Plugins](../../../plugin_ref/plugman.html). - -## Upgrading 2.8.0 Projects to 2.9.0 - -1. Download and extract the Cordova 2.9.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.9.0`. - -2. Quit Xcode if it is running. - -3. Using Terminal.app, navigate to the directory where you put the downloaded source above. - -4. Create a new project, as described in [iOS Shell Tool Guide](tools.html). You need the assets from this new project. - -5. Copy the `www/cordova.js` (note that it does not have a version suffix anymore, the version is in the file itself in the header) file from the new project into the `www` directory, and delete the `www/cordova.js` file. - -6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file. - -7. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory. - -## Upgrading 2.7.0 Projects to 2.8.0 - -1. Download and extract the Cordova 2.8.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.8.0`. - -2. Quit Xcode if it is running. - -3. Using Terminal.app, navigate to the directory where you put the downloaded source above. - -4. Create a new project, as described in [iOS Shell Tool Guide](tools.html). You need the assets from this new project. - -5. Copy the `www/cordova.js` (note that it does not have a version suffix anymore, the version is in the file itself in the header) file from the new project into the `www` directory, and delete the `www/cordova-2.7.0.js` file. - -6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova.js` file. - -7. Update any `<plugin>` tags in the `config.xml` file to `<feature>` - tags. Note that existing `<plugin>` tags still work, but are - deprecated. You can copy this information in the `config.xml` file - for a new project. For 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> - <!-- other <feature> tags --> - -8. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory. - -9. Add these two frameworks to your project: - - OpenAL - ImageIO - -10. Update your project's target __Build Settings__. Under __Linking → Other Linker Flags__, edit __"-Obj-C"__ to be __"-ObjC"__. - -11. Update your project's target __Build Settings__. Under __Linking → Other Linker Flags__, change __"-all\_load"__ to be `-force\_load ${BUILT\_PRODUCTS\_DIR}/libCordova.a`. You would only need to do this if you have the problem defined in [this issue.](https://issues.apache.org/jira/browse/CB-3458). - -## Upgrading 2.6.0 Projects to 2.7.0 - -1. Download and extract the Cordova 2.7.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.7.0`. - -2. Quit Xcode if it is running. - -3. Using Terminal.app, navigate to the directory where you put the downloaded source above. - -4. Create a new project, as described in [iOS Shell Tool Guide](tools.html). you need the assets from this new project. - -5. Copy the `www/cordova-2.7.0.js` file from the new project into the `www` directory, and delete the `www/cordova-2.6.0.js` file. - -6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.7.0.js` file. - -7. Update (or replace, if you never changed the file) the `AppDelegate.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/AppDelegate.m;h=5c05ac80e056753c0e8736f887ba9f28d5b0774c;hp=623ad8ec3c46f656ea18c6c3a190d650dd64e479;hb=c6e71147386d4ad94b07428952d1aae0a9cbf3f5;hpb=c017fda8af00375a453cf27cfc488647972e9a23)). - -8. In the `config.xml` file, [remove this line](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=537705d76a5ef6bc5e57a8ebfcab78c02bb4110b;hp=8889726d9a8f8c530fe1371c56d858c34552992a;hb=064239b7b5fa9a867144cf1ee8b2fb798ce1f988;hpb=c9f233250d4b800f3412eeded811daaafb17b2cc). - -9. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory. - -## Upgrading 2.5.0 Projects to 2.6.0 - -1. Download and extract the Cordova 2.6.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.6.0`. - -2. Quit Xcode if it is running. - -3. Using Terminal.app, navigate to the directory where you put the downloaded source above. - -4. Create a new project, as described in [iOS Shell Tool Guide](tools.html). You need the assets from this new project. - -5. Copy the project's `www/cordova-2.6.0.js` file into the `www` directory, and delete the `www/cordova-2.5.0.js` file. - -6. Update the Cordova script reference in the `www/index.html` file (along with any other files that reference the script) to refer to the new `cordova-2.6.0.js` file. - -7. Update (or replace, if you never changed the file) the `AppDelegate.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/AppDelegate.m;h=124a56bb4f361e95616f44d6d6f5a96ffa439b60;hp=318f79326176be8f16ebc93bad85dd745f4205b6;hb=a28c7712810a63396e9f32fa4eb94fe3f8b93985;hpb=36acdf55e4cab52802d73764c8a4b5b42cf18ef9)). - -8. In the `config.xml` file, [add this new line](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=1555b5e81de326a07efe0bccaa5f5e2326b07a9a;hp=0652d60f8d35ac13c825c572dca6ed01fea4a540;hb=95f16a6dc252db0299b8e2bb53797995b1e39aa1;hpb=a2de90b8f5f5f68bd9520bcbbb9afa3ac409b96d). - -9. In the `config.xml` file, [add this new line](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=d307827b7e67301171a913417fb10003d43ce39d;hp=04260aa9786d6d74ab20a07c86d7e8b34e31968c;hb=97b89edfae3527828c0ca6bb2f6d58d9ded95188;hpb=942d33c8e7174a5766029ea1232ba2e0df745c3f). - -10. In the `config.xml` file, [UIWebViewBounce has been changed to DisallowOverscroll, and default values are different](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=8889726d9a8f8c530fe1371c56d858c34552992a;hp=d307827b7e67301171a913417fb10003d43ce39d;hb=57982de638a4dce6ae130a26662591741b065f00;hpb=ec411f18309d577b4debefd9a2f085ba719701d5). - -10. In the `config.xml` file, the `EnableLocation` preference has been deprecated. - -11. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory. - -## Upgrading 2.4.0 Projects to 2.5.0 - -1. Download and extract the Cordova 2.5.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.5.0`. - -2. Quit Xcode if it is running. - -3. Using Terminal.app, navigate to the directory where you put the downloaded source above. - -4. Create a new project, as described in [iOS Shell Tool Guide](tools.html). You need the assets from this new project. - -5. Copy the `www/cordova-2.5.0.js` file from the new project into the `www` directory and delete the `www/cordova-2.4.0.js` file. - -6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.5.0.js` file. - -7. Update (or replace, if you never changed the file) the `AppDelegate.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/AppDelegate.m;h=318f79326176be8f16ebc93bad85dd745f4205b6;hp=6dc7bfc84f0ecede4cc43d2a3256ef7c5383b9fe;hb=4001ae13fcb1fcbe73168327630fbc0ce44703d0;hpb=299a324e8c30065fc4511c1fe59c6515d4842f09)). - -8. In the `config.xml` file, [add these new lines](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=903944c4b1e58575295c820e154be2f5f09e6314;hp=721c734120b13004a4a543ee25f4287e541f34be;hb=ae467249b4a256bd31ee89aea7a06f4f2316b8ac;hpb=9e39f7ef8096fb15b38121ab0e245a3a958d9cbb). - -9. In the `config.xml` file, [edit the root element, change it from cordova to widget](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=64e71636f5dd79fa0978a97b9ff5aa3860a493f5;hp=d8579352dfb21c14e5748e09b2cf3f4396450163;hb=0e711f8d09377a7ac10ff6be4ec17d22cdbee88d;hpb=57c3c082ed9be41c0588d0d63a1d2bfcd2ed878c). - -10. In the `config.xml` file, [remove the OpenAllWhitelistURLsInWebView preference](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=721c734120b13004a4a543ee25f4287e541f34be;hp=7d67508b70914aa921a16e79f79c00512502a8b6;hb=187bf21b308551bfb4b98b1a5e11edf04f699791;hpb=03b8854bdf039bcefbe0212db937abd81ac675e4). - -11. Delete the `cordova` directory, and copy the `cordova` directory from the new project into your project's root directory. In 2.5.0, this has updated scripts. - -12. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory. - -## Upgrading 2.3.0 Projects to 2.4.0 - -1. Download and extract the Cordova 2.4.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.4.0`. - -2. Quit Xcode if it is running. - -3. Using Terminal.app, navigate to the directory where you put the downloaded source above. - -4. Create a new project, as described in [iOS Shell Tool Guide](tools.html). You need the assets from this new project. - -5. Copy the `www/cordova-2.4.0.js` file from the new project into the `www` directory, and delete the `www/cordova-2.3.0.js` file. - -6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.4.0.js` file. - -7. Update (or replace, if you never changed the files) the `MainViewController.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/MainViewController.m;h=5f9eeac15c2437cd02a6eb5835b48374e9b94100;hp=89da1082d06ba5e5d0dffc5b2e75a3a06d5c2aa6;hb=b4a2e4ae0445ba7aec788090dce9b822d67edfd8;hpb=a484850f4610e73c7b20cd429a7794ba829ec997)). - -8. Update (or replace, if you never changed the file) the `AppDelegate.m` file according to the one from the new project (see [this diff](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/Classes/AppDelegate.m;h=6dc7bfc84f0ecede4cc43d2a3256ef7c5383b9fe;hp=1ca3dafeb354c4442b7e149da4f281675aa6b740;hb=6749c17640c5fed8a7d3a0b9cca204b89a855baa;hpb=deabeeb6fcb35bac9360b053c8bf902b45e6de4d)). - -9. In the `config.xml` file, [add this new line](https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=blobdiff;f=bin/templates/project/__TESTING__/config.xml;h=7d67508b70914aa921a16e79f79c00512502a8b6;hp=337d38da6f40c7432b0bce05aa3281d797eec40a;hb=6749c17640c5fed8a7d3a0b9cca204b89a855baa;hpb=deabeeb6fcb35bac9360b053c8bf902b45e6de4d). - -10. Delete the `cordova` directory, and copy the `cordova` directory from the new project into your project's root directory. In 2.4.0, this has fixed scripts. - -11. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory. - -12. Add AssetsLibrary.framework as a resource to your project. (See [Apple's documentation](https://developer.apple.com/library/ios/#recipes/xcode_help-project_editor/Articles/AddingaLibrarytoaTarget.html) for instructions on how to do so.). - -## Upgrading 2.2.0 Projects to 2.3.0 - -1. Download and extract the Cordova 2.3.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.3.0`. - -2. Quit Xcode if it is running. - -3. Using Terminal.app, navigate to the directory where you put the downloaded source above. - -4. Create a new project, as described in [iOS Shell Tool Guide](tools.html). You need the assets from this new project. - -5. Copy the `www/cordova-2.3.0.js` file from the new project into the `www` directory, and delete the `www/cordova-2.2.0.js` file. - -6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.3.0.js` file. - -7. Update (or replace, if you never changed the file) the `MainViewController.m` according to the one from the new project. - -8. Delete the `cordova` directory, and copy the `cordova` directory from the new project into your project's root directory. In 2.3.0, this has new scripts. - -9. Delete the `CordovaLib` directory, and copy the `CordovaLib` directory from the new project into your project's root directory. - -10. Convert the `Cordova.plist` file to `config.xml`, by running the script `bin/cordova\_plist\_to\_config\_xml` on your project file. - -11. Add the InAppBrowser plugin to the `config.xml`, by adding this tag under `<cordova><plugins>`: - - <plugin name="InAppBrowser" value="CDVInAppBrowser" /> - -12. Note that Objective-C plugins are _not_ whitelisted anymore. To whitelist your connections with the app whitelist, you need to set the `User-Agent` header of the connection to the same user-agent as the main Cordova WebView. -You can get this by accessing the `userAgent` property off the main view-controller. The main view-controller (`CDVViewController`) also has a `URLisAllowed` method for you to check whether a URL passes the whitelist. - -13. Device API changes: - - For iOS, device.platform used to return `iPhone`, `iPad` or `iPod Touch`; now it returns (correctly) `iOS`. - - For iOS, device.name (now deprecated for all platforms) used to return the name of the userâs device (e.g. âShazronâs iPhone 5â²); now it returns what device.platform used to return: `iPhone`, `iPad` or `iPod Touch`. - - For all platforms, there is a new property called device.model; this returns the specific device model, e.g. `iPad2,5` (for other platforms, this returns what device.name used to return). - -## Upgrading 2.1.0 Projects to 2.2.0 - -1. Download and extract the Cordova 2.2.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.2.0`. - -2. Quit Xcode if it is running. - -3. Using Terminal.app, navigate to the directory where you put the downloaded source above. - -4. Create a new project, as described in [iOS Shell Tool Guide](tools.html). You need the assets from this new project. - -5. Copy the `www/cordova-2.2.0.js` file from the new project into the `www` directory, and delete the `www/cordova-2.1.0.js` file. - -6. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.2.0.js` file. - -7. Update (or replace, if you never changed the file) the `MainViewController.m` according to the one from the new project: - - Updated → viewWillAppear - -8. Copy the `cordova` directory from the new project into your project's root directory. In 2.2.0, this has an updated 'emulate' script. - -9. Next, update the `CordovaLib` sub-project reference. 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. - 1. Launch Terminal.app - 2. Go to the location where you installed Cordova (see Step 1), in the `bin` subdirectory - 3. Run the script below where the first parameter is the path to your project's `.xcodeproj` file: - - `update_cordova_subproject path/to/your/project/xcodeproj` - -__NOTE__: In 2.2.0, the `bin/create` script copy in the `CordovaLib` sub-project into your project. To have the same kind of setup, just copy in the right `CordovaLib` into your project directory, and update the `CordovaLib` sub-project location (relative to the project) in the Xcode File Inspector. - -## Upgrading 2.0.0 Projects to 2.1.0 - -With Cordova 2.1.0, `CordovaLib` has been upgraded to use __Automatic Reference Counting (ARC)__. You don't need to upgrade to __ARC__ to use CordovaLib, but if you want to upgrade your project to use __ARC__, please use the Xcode migration wizard from the menu: __Edit → Refactor → Convert to Objective-C ARC...__, de-select libCordova.a, then run the wizard to completion. - -1. Download and extract the Cordova 2.1.0 source to a permanent directory location on your hard drive, for example to `~/Documents/Cordova-2.1.0`. - -2. Quit Xcode if it is running. - -3. Using Terminal.app, navigate to the directory where you put the downloaded source above. - -5. Create a new project, as described in [iOS Shell Tool Guide](tools.html). You need the assets from this new project. - -6. Copy the `www/cordova-2.1.0.js` file from the new project into the `www` directory, and delete the `www/cordova-2.0.0.js` file. - -7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.1.0.js` file. - -8. Update (or replace, if you never changed the file) the `AppDelegate.m` according to the one from the new project: - - Edited → application:didFinishLaunchingWithOptions: - - Added → application:supportedInterfaceOrientationsForWindow: - -9. Update (or replace, if you never changed the file) the `MainViewController.m` according to the one from the new project: - - Added → viewWillAppear - -10. Copy the `cordova` directory from the new project into your project's root directory. In 2.1.0, this has the updated scripts to support paths with spaces. - -11. Remove the `VERSION` file reference from your project (_not_ the one in `CordovaLib`). - -12. Next, update the `CordovaLib` sub-project reference. 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. - 1. Launch Terminal.app - 2. Go to the location where you installed Cordova (see Step 1), in the `bin` subdirectory - 3. Run the script below where the first parameter is the path to your project's `.xcodeproj` file: - - `update_cordova_subproject path/to/your/project/xcodeproj` - -## Upgrading 1.9.0 Projects to 2.0.0 - -1. Install Cordova 2.0.0. - -2. Create a new project, as described in [iOS Shell Tool Guide](tools.html). You need the assets from this new project. - -3. Copy the `www/cordova-2.0.0.js` file from the new project into the `www` directory, and delete the `www/cordova-1.9.0.js` file. - -4. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-2.0.0.js` file. - -5. Copy the `cordova` directory from the new project into your project's root directory (if you want the project command-line tools). - -6. Add a new entry under `Plugins` in the `Cordova.plist` file, under - the __Supporting Files__ group. The key is `Device` and the value - is `CDVDevice`. - -7. Remove `Cordova.framework`. - -8. Remove `verify.sh` from the __Supporting Files__ group. - -9. Select the project icon in the Project Navigator, select your project __Target__, then select the __Build Settings__ tab. - -10. Search for __Preprocessor Macros__, then remove all __CORDOVA_FRAMEWORK=1__ values. - -11. Locate the `CordovaLib` directory that was installed in your hard-drive under your home folder's `Documents` subdirectory. - -12. Locate the `CordovaLib.xcodeproj` file in the `CordovaLib` directory, then drag and drop the file into your project. It should appear as a sub-project. - -13. Build your project, you should get some errors relating to `#import` directives. - -14. For the `#import` errors, change any quote-based imports in this style: - - #import "CDV.h" - - to this brackets-based style: - - #import <Cordova/CDV.h> - - and remove any `#ifdef` wrappers around any Cordova imports, they are not needed anymore (the imports are now unified) - -15. Build your project again, and it should not have any `#import` errors. - -16. Select the __project icon__ in the Project Navigator, select your project __Target__, then select the __Build Phases__ tab. - -17. Expand the __Target Dependencies__ phase, then select the __+__ button. - -18. Select the `CordovaLib` target, then select the __Add__ button. - -19. Expand the first __Link Binary with Libraries__ phase (it should already contain a bunch of frameworks), then select the __+__ button. - -20. Select the `libCordova.a` static library, then select the __Add__ button. - -21. Delete the __Run Script__ phase. - -22. Select the __project icon__ in the Project Navigator, select your project __Target__, then select the __Build Settings__ tab. - -23. Search for __Other Linker Flags__, and add the values __-force_load__ and __-Obj-C__. - -24. Expand the `CordovaLib` sub-project. - -25. Locate the `VERSION` file, drag it into your main project (we want to create a link to it, not a copy). - -26. Select the __Create groups for any added folders__ radio button, then select the __Finish__ button. - -27. Select the `VERSION` file that you just dragged in a previous step. - -28. Type the __Option-Command-1__ key combination to show the __File Inspector__ (or menuitem __View → Utilities → Show File Inspector__). - -29. Choose __Relative to CORDOVALIB__ in the __File Inspector__ for the drop-down menu for __Location__. - -30. Set the Xcode preference __Xcode Preferences → Locations → Derived Data → Advanced...__ to __Unique__, so that the unified headers can be found. - -31. Select the __project icon__ in the Project Navigator, select your __Target__, then select the __Build Settings__ tab. - -32. Search for __Header Search Paths__. For that setting, append these three values, including quotes: - - "$(TARGET_BUILD_DIR)/usr/local/lib/include" - - "$(OBJROOT)/UninstalledProducts/include" - - "$(BUILT_PRODUCTS_DIR)" - -33. Search for __Other Linker Flags__. For that setting, append this value: - - -weak_framework CoreFoundation - -34. Build your project, it should compile and link with __no issues__. - -35. Select your project from the __Scheme__ drop-down, and then select __iPhone 5.1 Simulator__. - -36. Select the __Run__ button. - -__NOTE__: If your project is not working as expected in the Simulator, please take a note of any errors in the console log in Xcode for clues. - -## Upgrading 1.8.x Projects to 1.9.0 - -1. Install Cordova 1.9.0. - -2. Create a new project. You will need some of the assets from this new project. - -3. Copy the `www/cordova-1.9.0.js` file from the new project into the `www` directory, and delete the `www/cordova-1.8.x.js` file. - -4. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-1.9.0.js` file. - -__NOTE__: 1.9.0 supports the new `BackupWebStorage` boolean `Cordova.plist` setting. It's enabled by default, so set it to -`false` to disable it, especially on iOS 6. See [Release Notes: Safari and UIKit Section](https://developer.apple.com/library/prerelease/ios/#releasenotes/General/RN-iOSSDK-6_0/_index.html) - -## Upgrading 1.7.0 Projects to 1.8.x - -1. Install Cordova 1.8.0. - -2. Create a new project. You will need some of the assets from this new project. - -3. Copy the `www/cordova-1.8.0.js` file from the new project into the `www` directory, and delete the `www/cordova-1.7.x.js` file. - -4. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-1.8.0.js` file. - -If you intend on using the Capture API, you will need the new __iPad retina-display__ assets: - -1. Copy the `Resources/Capture.bundle` item from the new project into your project directory, over-writing your existing `Resources/Capture.bundle` item. - -2. In your project, select the `Capture.bundle` item into your Project Navigator in Xcode, type the __Delete__ key, then select __Remove Reference__ from the resulting dialog. - -3. Drag the new `Capture.bundle` from Step 1 above into your Project Navigator in Xcode, then select the __Create groups for any added folders__ radio button. - -## Upgrading 1.6.x Projects to 1.7.0 - -1. Install Cordova 1.7.0. - -2. Create a new project. You will need some of the assets from this new project. - -3. Copy the `www/cordova-1.7.0.js` file from the new project into the `www` directory, and delete the `www/cordova-1.6.0.js` file. - -4. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-1.7.0.js` file. - -## Upgrading 1.5.0 Projects to 1.6.x - -1. Install Cordova 1.6.1. - -2. Make a backup of `AppDelegate.m`, `AppDelegate.h`, `MainViewController.m`, `MainViewController.h`, and `Cordova.plist` in your project. - -3. Create a new project. You will need some of the assets from this new project. - -4. Copy these files from the new project into your 1.5.0-based project directory on disk, replacing any old files (backup your files first from step 2 above): - - AppDelegate.h - AppDelegate.m - MainViewController.h - MainViewController.m - Cordova.plist - -5. Add all the new `MainViewController` and `AppDelegate` files into your Xcode project. - -6. Copy the `www/cordova-1.6.1.js` file from the new project into the `www` directory, and delete the `www/cordova-1.5.0.js` file. - -7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `cordova-1.6.1.js` file. - -8. Add the new `Cordova.plist` file into your project. This is - necessary because the core plugin service names must change to - match the ones from Android and BlackBerry, for a unified Cordova - JavaScript file (`cordova-js`). - -9. Integrate any settings, __Plugins__ and __ExternalHosts__ entries that you had in your __backed-up Cordova.plist__ into the new `Cordova.plist`. - -10. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new `AppDelegate` files. Any `UIWebViewDelegate` or `CDVCommandDelegate` code in `AppDelegate.m` needs to go into `MainViewController.m` now (see commented-out sections in that file). - -11. Integrate any project-specific code that you have in your backed-up `MainViewController.h` and `MainViewController.m` into the new MainViewController files. - -12. Click on the project icon in the Project Navigator, select your __Project__, then select the __Build Settings__ tab. - -13. Enter __Compiler for C/C++/Objective-C__ in the search field. - -14. Select the __Apple LLVM Compiler 3.1__ value. - -## Upgrading 1.4.x Projects to 1.5.0 - -1. Install Cordova 1.5.0. - -2. Create a new project and run it once. You will need some of the assets from this new project. - -3. Copy the `www/cordova-1.5.0.js` file from the new project into the `www` directory, and delete the `www/phonegap-1.4.x.js` file. - -4. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new Cordova `cordova-1.5.0.js` file. - -5. Find `PhoneGap.framework` in your Project Navigator, select it. - -6. Type the __Delete__ key and delete the `PhoneGap.framework` reference in the Project Navigator. - -7. Type the __Option-Command-A__ key combination, which should drop down a sheet to add files to your project (the __Add Files...__ sheet). Make sure the __Created groups for any added folders__ radio button is selected. - -8. Type the __Shift-Command-G__ key combination, which should drop down another sheet for you to go to a folder (the __Go to the folder:__ sheet). - -9. Enter `/Users/Shared/Cordova/Frameworks/Cordova.framework` in the __Go to the folder:__ sheet and then press the __Go__ button. - -10. Press the __Add__ button in the __Add Files...__ sheet. - -11. Select `Cordova.framework` in the Project Navigator. - -12. Type the __Option-Command-1__ key combination to show the __File Inspector__. - -13. Choose __Absolute Path__ in the __File Inspector__ for the drop-down menu for __Location__. - -14. Type the __Option-Command-A__ key combination, which should drop down a sheet to add files to your project (the __Add Files...__ sheet). Make sure the __Created groups for any added folders__ radio button is selected. - -15. Type the __Shift-Command-G__ key combination, which should drop down another sheet for you to go to a folder (the __Go to the folder:__ sheet). - -16. Enter `~/Documents/CordovaLib/Classes/deprecated` in the __Go to the folder:__ sheet and then press the __Go__ button. - -17. Press the __Add__ button in the __Add Files...__ sheet. - -18. In the `AppDelegate.h`, `AppDelegate.m`, and `MainViewController.h` files, replace the whole `#ifdef PHONEGAP_FRAMEWORK` block with: - - #import "CDVDeprecated.h" - -19. Click on the __project icon__ in the Project Navigator, select your __Target__, then select the __Build Settings__ tab. - -20. Search for __Framework Search Paths__. - -21. Replace the existing value with `/Users/Shared/Cordova/Frameworks`. - -22. Search for __Preprocessor Macros__. - -23. For the first (combined) value, replace the value with __CORDOVA_FRAMEWORK=YES__. - -24. Select the __Build Phases__ tab. - -25. Expand __Run Script__. - -26. Replace any occurrences of __PhoneGap__ with __Cordova__. - -27. Find the `PhoneGap.plist` file in the Project Navigator, and click on the filename once to enter name edit mode. - -28. Rename `PhoneGap.plist` to `Cordova.plist`. - -29. Right-click on `Cordova.plist` and choose __Open As → Source Code__. - -30. Press __Option-Command-F__, choose __Replace__ from the drop-down on the top left of the Source window. - -31. Enter `com.phonegap` for the Find string, and `org.apache.cordova` - for the Replace string, then press the __Replace All__ button. - -32. Enter __PG__ for the Find string, and __CDV__ for the Replace - string, then press the __Replace All__ button. - -33. Press __Command-B__ to build. You still have deprecations - that you can get rid of in the future (see `CDVDeprecated.h`. For - example, replace classes in your code that use PG* to CDV*). - -## Upgrading 1.4.0 Projects to 1.4.1 - -1. Install Cordova 1.4.1. - -2. Make a backup of `MainViewController.m`. - -3. Create a new project. You will need some of the assets from this new project. - -4. Copy the `MainViewController.m` file from the new project into your 1.4.0-based project directory on disk, replacing the old file (backup your files first from step 2 above). - -5. Add the `MainViewController.m` file into your Xcode project. - -6. Integrate any project-specific code that you have in your backed-up `MainViewController.m` into the new file. - -7. Updating the `phonegap-1.4.0.js` file is optional, nothing has changed in the JavaScript between 1.4.0 and 1.4.1. - -## Upgrading 1.3.0 Projects to 1.4.0 - -1. Install Cordova 1.4.0. - -2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project. - -3. Create a new project. You will need some of the assets from this new project. - -4. Copy these files from the new project into your 1.3.0-based project directory on disk, replacing any old files (backup your files first from step 2 above): - - AppDelegate.h - AppDelegate.m - MainViewController.h - MainViewController.m - MainViewController.xib - -5. Add all the `MainViewController` files into your Xcode project. - -6. Copy the `www/phonegap-1.4.0.js` file from the new project into the `www` directory, and delete the `www/phonegap-1.3.0.js` file. - -7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.4.0.js` file. - -8. Add a new entry under `Plugins` in the `PhoneGap.plist` file. The - key is `com.phonegap.battery` and the value is `PGBattery`. - -9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files. - -## Upgrading 1.2.0 Projects to 1.3.0 - -1. Install Cordova 1.3.0. - -2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project. - -3. Create a new project. You will need some of the assets from this new project. - -4. Copy these files from the new project into your 1.2.0-based project directory on disk, replacing any old files (backup your files first from step 2 above): - - AppDelegate.h - AppDelegate.m - MainViewController.h - MainViewController.m - MainViewController.xib - -5. Add all the `MainViewController` files into your Xcode project. - -6. Copy the `www/phonegap-1.3.0.js` file from the new project into the `www` directory, and delete the `www/phonegap-1.2.0.js` file. - -7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.3.0.js` file. - -8. Add a new entry under `Plugins` in the `PhoneGap.plist` file. The - key is `com.phonegap.battery` and the value is `PGBattery`. - -9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files. - -## Upgrading 1.1.0 Projects to 1.2.0 - -1. Install Cordova 1.2.0. - -2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project. - -3. Create a new project. You will need some of the assets from this new project. - -4. Copy these files from the new project into your 1.1.0-based project directory on disk, replacing any old files (backup your files first from step 2 above): - - AppDelegate.h - AppDelegate.m - MainViewController.h - MainViewController.m - MainViewController.xib - -5. Add all the `MainViewController` files into your Xcode project. - -6. Copy the `www/phonegap-1.2.0.js` file from the new project into the `www` directory, and delete the `www/phonegap-1.1.0.js` file. - -7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.2.0.js` file. - -8. Add a new entry under `Plugins` in the `PhoneGap.plist` file. The - key is `com.phonegap.battery` and the value is `PGBattery`. - -9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files. - -## Upgrading 1.0.0 Projects to 1.1.0 - -1. Install Cordova 1.1.0. - -2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project. - -3. Create a new project. You will need some of the assets from this new project. - -4. Copy these files from the new project into your 1.0.0-based project directory on disk, replacing any old files (backup your files first from step 2 above): - - AppDelegate.h - AppDelegate.m - MainViewController.h - MainViewController.m - MainViewController.xib - -5. Add all the `MainViewController` files into your Xcode project. - -6. Copy the `www/phonegap-1.1.0.js` file from the new project into the `www` directory, and delete the `www/phonegap-1.0.0.js` file. - -7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.1.0.js` file. - -8. Add a new entry under `Plugins` in the `PhoneGap.plist` file. The - key is `com.phonegap.battery` and the value is `PGBattery`. - -9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files. - -## Upgrading 0.9.6 Projects to 1.0.0 - -1. Install Cordova 1.0.0. - -2. Make a backup of `AppDelegate.m` and `AppDelegate.h` in your project. - -3. Create a new project. You will need some of the assets from this new project. - -4. Copy these files from the new project into your 0.9.6-based project directory on disk, replacing any old files (backup your files first from step 2 above): - - AppDelegate.h - AppDelegate.m - MainViewController.h - MainViewController.m - MainViewController.xib - -5. Add all the `MainViewController` files into your Xcode project. - -6. Copy the `www/phonegap-1.0.0.js` file from the new project into the `www` directory, and delete the `www/phonegap-0.9.6.js` file. - -7. Update the Cordova script reference in the `www/index.html` file (and any other files that contain the script reference) to point to the new `phonegap-1.0.0.js` file. - -8. Add a new entry under `Plugins` in the `PhoneGap.plist` file. The - key is `com.phonegap.battery` and the value is `PGBattery`. - -9. Integrate any project-specific code that you have in your backed-up `AppDelegate.h` and `AppDelegate.m` into the new AppDelegate files. http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/f061b980/www/docs/en/edge/guide/platforms/ios/webview.md ---------------------------------------------------------------------- diff --git a/www/docs/en/edge/guide/platforms/ios/webview.md b/www/docs/en/edge/guide/platforms/ios/webview.md deleted file mode 100644 index 9e78208..0000000 --- a/www/docs/en/edge/guide/platforms/ios/webview.md +++ /dev/null @@ -1,183 +0,0 @@ ---- -license: > - 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. - -title: iOS WebViews ---- - -# iOS WebViews - -This guide shows how to embed a Cordova-enabled WebView component -within a larger iOS application. For details on how these components -can communicate with each other, see Application Plugins. - -Support for WebViews for iOS started with Cordova version 1.4, using a -`Cleaver` component for which the Xcode template serves as a reference -implementation. Cordova 2.0 and later versions only support the -subproject-based Cleaver implementation. - -These instructions require at least Cordova 3.x and Xcode 6.0, along -with a `config.xml` file from a newly created iOS project. You can use -the procedure in [The Command-Line Interface](../../cli/index.html) to create a new project, -then obtain the `config.xml` file from within the named application's -subdirectory within `platforms/ios`. - -To follow these instructions, make sure you have the latest Cordova -distribution. Download it from -[cordova.apache.org](http://cordova.apache.org) and unzip its iOS -package. - -## Adding Cleaver to the Xcode Project (CordovaLib Sub-Project) - -1. Quit Xcode if it is running. - -1. Open a terminal and navigate to the source directory for Cordova - iOS. - -1. Copy the `config.xml` file described above into the project - directory. - -1. Open Xcode and use the Finder to copy the `config.xml` file into - its __Project Navigator__ window. - -1. Choose __Create groups for any added folders__ and press - __Finish__. - -1. Use the Finder to copy the `CordovaLib/CordovaLib.xcodeproj` file - into Xcode's __Project Navigator__ - -1. Select `CordovaLib.xcodeproj` within the __Project Navigator__. - -1. Type the __Option-Command-1__ key combination to show the __File - Inspector__. - -1. Choose __Relative to Group__ in the __File Inspector__ for the - drop-down menu for __Location__. - -1. Select the __project icon__ in the __Project Navigator__, select - the __Target__, then select the __Build Settings__ tab. - -1. Add `-force_load` and `-Obj-C` for the __Other Linker Flags__ value. - -1. Click on the __project icon__ in the Project Navigator, select the - __Target__, then select the __Build Phases__ tab. - -1. Expand __Link Binaries with Libraries__. - -1. Select the __+__ button, and add the following __frameworks__. - Optionally within the __Project Navigator__, move them under the - __Frameworks__ group: - - AssetsLibrary.framework - CoreLocation.framework - CoreGraphics.framework - MobileCoreServices.framework - -1. Expand __Target Dependencies__, the top box with that label if - there's more than one box. - -1. Select the __+__ button, and add the `CordovaLib` build product. - -1. Expand __Link Binaries with Libraries__, the top box with that label - if there's more than one box. - -1. Select the __+__ button, and add `libCordova.a`. - -1. Set the __Xcode Preferences → Locations → Derived Data - → Advanced...__ to __Unique__. - -1. Select the __project icon__ in the Project Navigator, select your - __Target__, then select the __Build Settings__ tab. - -1. Search for __Header Search Paths__. For that setting, add these - three values below, including the quotes: - - "$(TARGET_BUILD_DIR)/usr/local/lib/include" - "$(OBJROOT)/UninstalledProducts/include" - "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" - "$(BUILT_PRODUCTS_DIR)" - - As of Cordova 2.1.0, `CordovaLib` has been upgraded to use - __Automatic Reference Counting (ARC)__. You don't need to upgrade - to __ARC__ to use `CordovaLib`, but if you want to upgrade your - project to use __ARC__, you should use the Xcode migration wizard - from the __Edit → Refactor → Convert to Objective-C - ARC...__ menu, __de-select libCordova.a__, then run the wizard to - completion. - -## Using CDVViewController - -1. Add the following header: - - #import <Cordova/CDVViewController.h> - -1. Instantiate a new `CDVViewController` and retain it somewhere, - e.g., to a class property: - - CDVViewController* viewController = [CDVViewController new]; - -1. Optionally, set the `wwwFolderName` property, which defaults to `www`: - - viewController.wwwFolderName = @"myfolder"; - -1. Optionally, set the start page in the `config.xml` file's - `<content>` tag, either a local file: - - <content src="index.html" /> - - ...or a remote site: - - <content src="http://apache.org" /> - -1. Optionally, set the `useSplashScreen` property, which defaults to - `NO`: - - viewController.useSplashScreen = YES; - -1. Set the __view frame__. Always set this as the last property: - - viewController.view.frame = CGRectMake(0, 0, 320, 480); - -1. Add Cleaver to the view: - - [myView addSubview:viewController.view]; - -## Adding HTML, CSS and JavaScript Assets - -1. Create a new directory within the project, `www` for example. - -1. Place HTML, CSS and JavaScript assets into this directory. - -1. Use the Finder to copy the directory into Xcode's __Project - Navigator__ window. - -1. Select __Create folder references for any added folders__. - -1. Set the appropriate `wwwFolderName` and `startPage` properties for - the directory you initially created, or use the defaults (specified - in the previous section) when instantiating the - `CDVViewController`. - - /* - if you created a folder called 'myfolder' and - you want the file 'mypage.html' in it to be - the startPage - */ - viewController.wwwFolderName = @"myfolder"; - viewController.startPage = @"mypage.html" - http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/f061b980/www/docs/en/edge/guide/platforms/ubuntu/index.md ---------------------------------------------------------------------- diff --git a/www/docs/en/edge/guide/platforms/ubuntu/index.md b/www/docs/en/edge/guide/platforms/ubuntu/index.md deleted file mode 100644 index daa2a79..0000000 --- a/www/docs/en/edge/guide/platforms/ubuntu/index.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -license: > - 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. - -title: Ubuntu Platform Guide ---- - -# Ubuntu Platform Guide - -## Initial Release - -Welcome to the initial release of Ubuntu platform support in -Cordova. With this release, the focus is developing on an Ubuntu -system and using the cross-platform workflow discussed in the -[Overview](../../overview/index.html). This includes adding the Ubuntu platform to your project, -adding standard Cordova plugins, and building and running apps for the -Ubuntu platform. - -### Ubuntu SDK - -You may also want to install the Ubuntu QtCreator development environment. See -[developer.ubuntu.com](http://developer.ubuntu.com) for more info. (The -QtCreator SDK is not required to add Ubuntu platform support to your Cordova -app.) - -### Ubuntu Runtime Platforms - -Ubuntu is well known for its Desktop environment (for laptops, PCs and such). -Ubuntu Touch extends the Ubuntu OS onto phones and tablets. Ubuntu runtime -platforms have varying CPU architectures (x86, armhf, etc.). App and plugin -code must be compiled appropriately. Support for this broad area is rapidly -evolving in Ubuntu. - -### Latest Information - -For the latest information on Cordova app support for Ubuntu runtime platforms, -see [wiki.ubuntu.com/Cordova](http://wiki.ubuntu.com/Cordova). - -## Development Platform Requirements - -For this initial release, the development platform should be an Ubuntu Desktop. -Ubuntu 13.10 (codename âsaucyâ) or later is required to enjoy the full set of -supported capabilities. - -You can install Cordova on non-Ubuntu systems (using npm), but important -capabilities are only provided through Ubuntu debian packages at this time. - -## Cordova Installation - -Add the Ubuntu Cordova -[Personal Package Archive](https://launchpad.net/~cordova-ubuntu/+archive/ppa) -to your Ubuntu system: - - $ sudo add-apt-repository ppa:cordova-ubuntu/ppa - $ sudo apt-get update - -Install cordova-cli package (and its dependencies): - - $ sudo apt-get install cordova-cli - -## Project Workflow - -### Create a project - -Creates an app in a `hello` directory whose display name is -`HelloWorld`: - - $ cordova create hello com.example.hello HelloWorld - -### Move into the Project Directory - - $ cd hello - -### Add the Ubuntu Platform - - $ cordova platform add ubuntu - -### Build for Ubuntu - - $ cordova build ubuntu - -### Run the App - - $ cordova run ubuntu - -### Add the Camera Plugin - - $ cordova plugin add cordova-plugin-camera - --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
