You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by er...@apache.org on 2026/03/05 04:55:59 UTC
(cordova-ios) 01/01: chore: add DEVELOPMENT.md & cleanup README.md
This is an automated email from the ASF dual-hosted git repository.
erisu pushed a commit to branch chore/development-docs
in repository https://gitbox.apache.org/repos/asf/cordova-ios.git
commit 18daa72fa63db137e7b181094a67d0a606ced1d2
Author: Erisu <er...@apache.org>
AuthorDate: Thu Mar 5 13:51:46 2026 +0900
chore: add DEVELOPMENT.md & cleanup README.md
---
DEVELOPMENT.md | 126 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
README.md | 45 +++++----------------
package.json | 3 +-
3 files changed, 139 insertions(+), 35 deletions(-)
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
new file mode 100644
index 00000000..e5177cc0
--- /dev/null
+++ b/DEVELOPMENT.md
@@ -0,0 +1,126 @@
+<!--
+#
+# 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.
+#
+-->
+
+# Development
+
+## Setup
+
+1. Install the requirements defined in the [README.md](README.md#requirements)
+2. Install npm dependencies.
+
+ ```bash
+ npm install
+ ```
+
+## Using a Cloned Repo as a Shared Framework
+
+By default, when you add a platform to a Cordova project, the platform files are copied directly into your iOS project. However, during development, it can be easier to use a shared framework instead.
+
+Using the `--link` option creates symbolic links to your cloned repository instead of copying the files. This allows you to make changes to the core platform files in Xcode and have those changes automatically reflected in your cloned development repository (and vice versa).
+
+To add a linked platform, run:
+
+```bash
+cordova platform add --link /path/to/cordova-ios
+```
+
+## Unit Testing
+
+Our projects include unit tests, which can be run with:
+
+```bash
+npm test
+```
+
+## Linting
+
+During development, you should run the linter to ensure the code follows our coding standards:
+
+```bash
+npm run lint
+```
+
+> [!NOTE]
+> Running `npm test` will also execute the linter before running the tests.
+
+### Fixing Lint Issues
+
+In many cases, lint warnings can be fixed automatically with:
+
+```bash
+npm run lint:fix
+```
+
+If an issue cannot be resolved automatically, it will require manual review and correction.
+
+## Install Nightly Build
+
+> [!WARNING]
+> Nightly builds are generated daily from the `main` branch and are considered **unstable** and **untested**. They are **not for use in production applications** and are intended only for development and testing purposes.
+>
+> See [Apache Cordova - Nightly Builds](https://cordova.apache.org/contribute/nightly_builds.html) for more details.
+
+You can install the nightly build with:
+
+```bash
+cordova platform add ios@nightly
+```
+
+> [!NOTE]
+> Due to recent changes to npm authentication tokens, nightly builds may occasionally stop publishing.
+
+## Building from Source
+
+1. **Clone the repository** locally.
+
+2. **Change to the repository directory.**
+
+3. **Install dependencies:**
+
+ ```bash
+ npm install
+ ```
+
+ Installs all production and development dependencies required for using and developing the package.
+
+4. **Update sub-dependencies:**
+
+ ```bash
+ npm update
+ ```
+
+ Over time, `package-lock.json` can become stale and may trigger audit warnings. `npm update` refreshes dependencies within the pinned versions.
+
+ Under normal circumstances, users install the published package from the npm registry, which does **not** include its own `package-lock.json`. Instead, npm resolves and installs the latest compatible dependency versions at install time, which may result in no audit warnings.
+
+ Running `npm update` locally can provide a more accurate representation of current npm audit results for the project.
+
+5. **Generate a tarball:**
+
+ ```bash
+ npm pack
+ ```
+
+ Creates a `.tgz` tarball file in the `.asf-release` directory. This tarball file can be installed in a Cordova project via:
+
+ ```bash
+ cordova platform add /path/to/package.tgz
+ ```
diff --git a/README.md b/README.md
index 1ee4a15d..a82c7df3 100644
--- a/README.md
+++ b/README.md
@@ -7,9 +7,9 @@
# 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
@@ -35,19 +35,18 @@ Cordova iOS is an iOS application library that allows for Cordova-based projects
## Requirements
* iOS 13+
-* Xcode 15.x or greater. Download it at the [Apple Developer - Downloads](https://developer.apple.com/downloads) or the [Mac App Store](https://apps.apple.com/us/app/xcode/id497799835?mt=12).
-* [Node.js](https://nodejs.org) 20.5.0 or greater
+* [Xcode](https://apps.apple.com/us/app/xcode/id497799835?mt=12)
+* [Node.js](https://nodejs.org)
+
+> [!TIP]
+> Refer to the official Apache Cordova documentation for details on the requirements and prerequisites for building Cordova-iOS applications. These resources outline the necessary tools, supported versions, and platform requirements:
+>
+> * [System Requirements](https://cordova.apache.org/docs/en/latest/guide/platforms/ios/index.html#requirements-and-support)
## Create a Cordova project
Follow the instructions in the [**Create your first Cordova app**](https://cordova.apache.org/docs/en/latest/guide/cli/index.html) section of [Apache Cordova Docs](https://cordova.apache.org/docs/en/latest/)
-To use a **shared CordovaLib**, for example in development, link the appropriate cordova-ios platform folder path:
-
-```bash
-cordova platform add --link /path/to/cordova-ios
-```
-
## Updating a Cordova project
When you install a new version of the [`Cordova CLI`](https://www.npmjs.com/package/cordova) that pins a new version of the [`Cordova-iOS`](https://www.npmjs.com/package/cordova-ios) platform, you can follow these simple upgrade steps within your project:
@@ -61,30 +60,8 @@ cordova platform add ios
Import project in Xcode through _File > Open_ and targeting `/path/to/your-cdv-project/platforms/ios/App.xcworkspace`.
-## How to Test Repo Development
-
-```bash
-npm install
-npm test
-```
-
-## Install Nightly Build
-
-```bash
-cordova platform add ios@nightly
-```
-
-### Notes
-
-Nightly builds are **not recommended for production apps**. They are intended for testing purposes. This allows users either to check if recent changes in the main branch have fixed existing issues or to identify new bugs before an official release.
-
-Nightly builds are generated daily and may be **unstable**.
-
-
-See [Apache Cordova - Nightly Builds](https://cordova.apache.org/contribute/nightly_builds.html) for more details.
-
## Further reading
-* [Cordova iOS Platform Guide](https://cordova.apache.org/docs/en/dev/guide/platforms/ios/index.html)
-* [Cordova iOS API Documentation](https://apache.github.io/cordova-ios/)
* [Apache Cordova](https://cordova.apache.org/)
+* [Apache Cordova iOS Platform Guide](https://cordova.apache.org/docs/en/dev/guide/platforms/ios/index.html)
+* [Apache Cordova iOS API Documentation](https://apache.github.io/cordova-ios/)
diff --git a/package.json b/package.json
index 7b355cbc..a81efc5f 100644
--- a/package.json
+++ b/package.json
@@ -20,7 +20,8 @@
"test:unit": "jasmine --config=tests/spec/unit.json",
"test:xcode": "xcodebuild -quiet test -workspace tests/cordova-ios.xcworkspace -scheme CordovaTestApp -destination \"platform=iOS Simulator,name=${CDV_IOS_SIM:-iPhone 16e}\" -destination-timeout 300 -derivedDataPath \"`mktemp -d 2>/dev/null || mktemp -d -t 'cordova-ios'`\"",
"cover": "c8 npm run test:unit",
- "lint": "eslint ."
+ "lint": "eslint .",
+ "lint:fix": "npm run lint -- --fix"
},
"author": "Apache Software Foundation",
"license": "Apache-2.0",
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org