This is an automated email from the ASF dual-hosted git repository.
erisu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-docs.git
The following commit(s) were added to refs/heads/master by this push:
new 6177f9a50e blog: xcode 4.0.0 release (#1540)
6177f9a50e is described below
commit 6177f9a50ebbd149214565ee373cb52b789dd6fc
Author: エリス <[email protected]>
AuthorDate: Wed Oct 21 11:31:43 2026 +0900
blog: xcode 4.0.0 release (#1540)
---
www/_data/releases.yml | 11 ++---
www/_posts/2026-10-20-xcode-4.0.0.md | 96 ++++++++++++++++++++++++++++++++++++
2 files changed, 101 insertions(+), 6 deletions(-)
diff --git a/www/_data/releases.yml b/www/_data/releases.yml
index 940bd7f2ee..509dde5f7b 100644
--- a/www/_data/releases.yml
+++ b/www/_data/releases.yml
@@ -125,16 +125,15 @@
customName: plugman
- package: cordova-node-xcode
- version: 3.0.1
+ version: 4.0.0
downloadDir: tools
tarballs:
- # - type: source
- # extension: tar.gz
- # - type: source
- # extension: zip
+ - type: source
+ extension: tar.gz
+ - type: source
+ extension: zip
- type: npm
extension: tgz
- customName: xcode
- package: cordova-app-hello-world
version: 7.0.0
diff --git a/www/_posts/2026-10-20-xcode-4.0.0.md
b/www/_posts/2026-10-20-xcode-4.0.0.md
new file mode 100644
index 0000000000..45f3ce070e
--- /dev/null
+++ b/www/_posts/2026-10-20-xcode-4.0.0.md
@@ -0,0 +1,96 @@
+---
+layout: post
+author:
+ name: Bryan Ellis
+title: "Cordova Node Xcode 4.0.0 Released!"
+categories: announcements
+tags: news releases tools
+---
+
+We are happy to announce that we have just released `Cordova Node Xcode 4.0.0`!
+
+This is one of the libraries used behind-the-scenes for parsing, editing, and
writing xcodeproj project files.
+
+* [[email protected]](https://www.npmjs.com/package/xcode)
+
+## Release Highlights
+
+In this major release, the `uuid` dependency has been replaced with Node.js's
built-in `crypto.randomUUID()` API. As a result, the minimum Node.js engine
requirement has been bumped to `>=14.17.0`.
+
+Support for the `PBXShellScriptBuildPhase` options `alwaysOutOfDate` and
`runOnlyForDeploymentPostprocessing` has been added.
+
+Additionally, the following fixes were applied:
+
+- Shallow-merging of section properties while preserving previously parsed
entries that have the same section name.
+- Allow adding a `PBXBuildFile` entry with the `name` property defined when
`path` is not defined.
+- Pathing issues on Windows.
+- Ensure that the `PBXGroup` object exists before attempting to read the
`path` property.
+
+Please report any issues you find to the [Cordova Node Xcode Issue
Tracker](https://github.com/apache/cordova-node-xcode/issues)!
+
+<!--more-->
+# Changes include:
+
+**Breaking Changes:**
+
+* chore!: bump minimum Node.js engine to >=14.17.0
([#154](https://github.com/apache/cordova-node-xcode/pull/154))
[[1edf705](https://github.com/apache/cordova-node-xcode/commit/1edf705)]
+* fix!: replace uuid dependency with crypto.randomUUID()
([#153](https://github.com/apache/cordova-node-xcode/pull/153))
+
+**Features:**
+
+* feat: support for 'alwaysOutOfDate' PBX Shell Script property
([#173](https://github.com/apache/cordova-node-xcode/pull/173))
[[04fc2dd](https://github.com/apache/cordova-node-xcode/commit/04fc2dd)]
+* feat: add support for runOnlyForDeploymentPostprocessing
([#172](https://github.com/apache/cordova-node-xcode/pull/172))
[[9d908c4](https://github.com/apache/cordova-node-xcode/commit/9d908c4)]
+* feat: add eslint w/ lint fixes
([#151](https://github.com/apache/cordova-node-xcode/pull/151))
[[8f43d12](https://github.com/apache/cordova-node-xcode/commit/8f43d12)]
+* feat(ci): replace nodeunit & nyc for node:test
([#150](https://github.com/apache/cordova-node-xcode/pull/150))
[[b27fbd4](https://github.com/apache/cordova-node-xcode/commit/b27fbd4)]
+
+**Fixes:**
+
+* fix: shallow-merging nested objects for split sections
([#167](https://github.com/apache/cordova-node-xcode/pull/167))
[[e7df64a](https://github.com/apache/cordova-node-xcode/commit/e7df64a)]
+* fix(addBuildPhase): adding of PBXBuildFile entries to lookup table
([#174](https://github.com/apache/cordova-node-xcode/pull/174))
[[81ddc4a](https://github.com/apache/cordova-node-xcode/commit/81ddc4a)]
+* fix(windows): Fix path issues on Windows
([#170](https://github.com/apache/cordova-node-xcode/pull/170))
[[2f89486](https://github.com/apache/cordova-node-xcode/commit/2f89486)]
+* fix: Need to check for object existence
([#112](https://github.com/apache/cordova-node-xcode/pull/112))
[[e81ecab](https://github.com/apache/cordova-node-xcode/commit/e81ecab)]
+
+**Others:**
+
+* chore: Bump @babel/traverse from 7.18.9 to 7.23.2
[[505a8d4](https://github.com/apache/cordova-node-xcode/commit/505a8d4)]
+* chore: Bump simple-plist from 1.1.0 to 1.3.1
([#127](https://github.com/apache/cordova-node-xcode/pull/127))
[[335874e](https://github.com/apache/cordova-node-xcode/commit/335874e)]
+* chore: update dependencies with npm update
([#191](https://github.com/apache/cordova-node-xcode/pull/191))
[[ec95ec8](https://github.com/apache/cordova-node-xcode/commit/ec95ec8)]
+* chore: action workflow updates & add dependabot
([#180](https://github.com/apache/cordova-node-xcode/pull/180))
[[3cdce4b](https://github.com/apache/cordova-node-xcode/commit/3cdce4b)]
+* chore: restrict writing to certain object keys
([#176](https://github.com/apache/cordova-node-xcode/pull/176))
[[4a9fd34](https://github.com/apache/cordova-node-xcode/commit/4a9fd34)]
+* chore: license header improvements
([#169](https://github.com/apache/cordova-node-xcode/pull/169))
[[7e647c3](https://github.com/apache/cordova-node-xcode/commit/7e647c3)]
+* chore: improve ci workflow, ensure built parser committed, cleanup
([#166](https://github.com/apache/cordova-node-xcode/pull/166))
[[ca3d1d2](https://github.com/apache/cordova-node-xcode/commit/ca3d1d2)]
+* chore: update .asf.yaml
([#160](https://github.com/apache/cordova-node-xcode/pull/160))
[[7451fc6](https://github.com/apache/cordova-node-xcode/commit/7451fc6)]
+* chore: bump 4.0.0-dev.0
([#159](https://github.com/apache/cordova-node-xcode/pull/159))
[[bc87c09](https://github.com/apache/cordova-node-xcode/commit/bc87c09)]
+* chore: update release audit workflow & license headers
([#146](https://github.com/apache/cordova-node-xcode/pull/146))
[[e6b981e](https://github.com/apache/cordova-node-xcode/commit/e6b981e)]
+* chore: update ci workflow
([#147](https://github.com/apache/cordova-node-xcode/pull/147))
[[9664ef8](https://github.com/apache/cordova-node-xcode/commit/9664ef8)]
+* chore: clean up package.json
([#115](https://github.com/apache/cordova-node-xcode/pull/115))
[[127a4df](https://github.com/apache/cordova-node-xcode/commit/127a4df)]
+* chore(addBuildPhase): remove unused variable buildPhaseSection
([#175](https://github.com/apache/cordova-node-xcode/pull/175))
[[780467c](https://github.com/apache/cordova-node-xcode/commit/780467c)]
+* chore(dep): update package json
([#165](https://github.com/apache/cordova-node-xcode/pull/165))
[[35da006](https://github.com/apache/cordova-node-xcode/commit/35da006)]
+* chore(deps-dev): bump brace-expansion from 1.1.18 to 1.1.21
([#190](https://github.com/apache/cordova-node-xcode/pull/190))
[[74935d6](https://github.com/apache/cordova-node-xcode/commit/74935d6)]
+* chore(deps-dev): bump js-yaml from 4.3.1 to 4.3.2
([#186](https://github.com/apache/cordova-node-xcode/pull/186))
[[6e31505](https://github.com/apache/cordova-node-xcode/commit/6e31505)]
+* chore(deps-dev): bump brace-expansion from 1.1.15 to 1.1.18
([#179](https://github.com/apache/cordova-node-xcode/pull/179))
[[c0b7624](https://github.com/apache/cordova-node-xcode/commit/c0b7624)]
+* chore(deps-dev): bump js-yaml from 4.2.0 to 4.3.1
([#178](https://github.com/apache/cordova-node-xcode/pull/178))
[[226c345](https://github.com/apache/cordova-node-xcode/commit/226c345)]
+* chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2
([#145](https://github.com/apache/cordova-node-xcode/pull/145))
[[5447827](https://github.com/apache/cordova-node-xcode/commit/5447827)]
+* chore(deps): bump the gh-actions-patch-minor group with 3 updates
([#192](https://github.com/apache/cordova-node-xcode/pull/192))
[[9df6e52](https://github.com/apache/cordova-node-xcode/commit/9df6e52)]
+* chore(deps): bump the gh-actions-patch-minor group with 2 updates
([#189](https://github.com/apache/cordova-node-xcode/pull/189))
[[ff0086e](https://github.com/apache/cordova-node-xcode/commit/ff0086e)]
+* chore(deps): bump codecov/codecov-action
([#188](https://github.com/apache/cordova-node-xcode/pull/188))
[[0ac3c65](https://github.com/apache/cordova-node-xcode/commit/0ac3c65)]
+* chore(deps): bump the gh-actions-patch-minor group with 2 updates
([#187](https://github.com/apache/cordova-node-xcode/pull/187))
[[c8e1116](https://github.com/apache/cordova-node-xcode/commit/c8e1116)]
+* chore(deps): bump the gh-actions-patch-minor group across 1 directory with 2
updates ([#183](https://github.com/apache/cordova-node-xcode/pull/183))
[[3033cd8](https://github.com/apache/cordova-node-xcode/commit/3033cd8)]
+* chore(deps): bump @xmldom/xmldom from 0.9.10 to 0.9.12
([#185](https://github.com/apache/cordova-node-xcode/pull/185))
[[ca2c32a](https://github.com/apache/cordova-node-xcode/commit/ca2c32a)]
+* chore(deps): bump codecov/codecov-action from 4.6.0 to 7.0.0
([#182](https://github.com/apache/cordova-node-xcode/pull/182))
[[0920ebc](https://github.com/apache/cordova-node-xcode/commit/0920ebc)]
+* chore(deps): bump the gh-actions-patch-minor group with 2 updates
([#181](https://github.com/apache/cordova-node-xcode/pull/181))
[[ba44143](https://github.com/apache/cordova-node-xcode/commit/ba44143)]
+* chore(deps): bump minimatch from 3.1.2 to 3.1.5
([#148](https://github.com/apache/cordova-node-xcode/pull/148))
[[5a20cef](https://github.com/apache/cordova-node-xcode/commit/5a20cef)]
+* chore(INFRA): Set up default protection ruleset for default and release
branches ([#155](https://github.com/apache/cordova-node-xcode/pull/155))
[[f9b58c4](https://github.com/apache/cordova-node-xcode/commit/f9b58c4)]
+* chore(npm): rebuilt package-lock to v2
([#133](https://github.com/apache/cordova-node-xcode/pull/133))
[[659a4e7](https://github.com/apache/cordova-node-xcode/commit/659a4e7)]
+* chore(readme): update badges
([#163](https://github.com/apache/cordova-node-xcode/pull/163))
[[304a309](https://github.com/apache/cordova-node-xcode/commit/304a309)]
+* chore(workflow): update upload-to-atr action
([#184](https://github.com/apache/cordova-node-xcode/pull/184))
[[31e32fc](https://github.com/apache/cordova-node-xcode/commit/31e32fc)]
+* chore(workflow): update CI & use macos-26
([#164](https://github.com/apache/cordova-node-xcode/pull/164))
[[fd7ccf1](https://github.com/apache/cordova-node-xcode/commit/fd7ccf1)]
+* chore(workflow): pin sha & update actions
[[cf3d318](https://github.com/apache/cordova-node-xcode/commit/cf3d318)]
+* chore(workflow): pin sha & update actions
[[680991e](https://github.com/apache/cordova-node-xcode/commit/680991e)]
+* chore(workflow) added release draft, updated release audit, & cleanup CI
([#161](https://github.com/apache/cordova-node-xcode/pull/161))
[[0f6e63f](https://github.com/apache/cordova-node-xcode/commit/0f6e63f)]
+* ci: Drop NodeJS 10, 12, 14. Added 18, 20, 22
([#144](https://github.com/apache/cordova-node-xcode/pull/144))
[[c491d3a](https://github.com/apache/cordova-node-xcode/commit/c491d3a)]
+* ci: update codecov@v4 w/ token
([#142](https://github.com/apache/cordova-node-xcode/pull/142))
[[5158ec5](https://github.com/apache/cordova-node-xcode/commit/5158ec5)]
+* ci: add node-14.x to workflow
([#117](https://github.com/apache/cordova-node-xcode/pull/117))
[[8b98cab](https://github.com/apache/cordova-node-xcode/commit/8b98cab)]
+* chore: Increment package version to 3.0.2-dev
[[56b8ffd](https://github.com/apache/cordova-node-xcode/commit/56b8ffd)]
+* Merge pull request #141 from
apache/dependabot/npm_and_yarn/babel/traverse-7.23.2
[[e594cd4](https://github.com/apache/cordova-node-xcode/commit/e594cd4)]
+* test: Ensure we wait for async project.parse
([#168](https://github.com/apache/cordova-node-xcode/pull/168))
[[9c89212](https://github.com/apache/cordova-node-xcode/commit/9c89212)]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]