Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions www/_data/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
96 changes: 96 additions & 0 deletions www/_posts/2026-10-20-xcode-4.0.0.md
Original file line number Diff line number Diff line change
@@ -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.

* [cordova-node-xcode@4.0.0](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)]
Loading