Adding iOS

cordova platform add ios and What It Generates

Adding the platform is pure file generation, so it works on any operating system. The CLI only warns that the result cannot be built there. In a copy of BookNest on the Linux build machine:

Adding the iOS platform to a copy of BookNest on LinuxShell
cordova platform add ios
Output
WARNING: Applications for platform ios can not be built on this OS - linux.
Using cordova-fetch for cordova-ios
Adding ios project...
Creating Cordova project for the iOS platform:
   Path: platforms/ios
   Package: com.example.booknest
   Name: BookNest
iOS project created with cordova-ios@8.1.1

The CLI recorded "cordova-ios": "^8.1.1" in package.json and wrote a 1.1 MB Xcode 10 project. In cordova-ios 8 the project is always called App: you open App.xcworkspace in Xcode, the startup code is Swift (AppDelegate.swift), App/PrivacyInfo.xcprivacy is the privacy manifest App Store Connect 10 reads, and packages/ holds CordovaLib and your plugins as Swift packages. config.xml has already been translated into Xcode build settings, and reading them needs no Mac:

Build settings that config.xml produced in the Xcode projectXML
grep -E "BUNDLE_IDENTIFIER|PRODUCT_NAME|_VERSION =|DEPLOYMENT_TARGET|CODE_SIGN_STYLE" \
  platforms/ios/App.xcodeproj/project.pbxproj | tr -d '\t' | sort -u
Output
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1.0.0;
INFOPLIST_KEY_CFBundleDisplayName = "$(PRODUCT_NAME)";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MARKETING_VERSION = 1.0.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.example.booknest";
PRODUCT_NAME = "BookNest";
SWIFT_VERSION = 5.0;

The widget id became the bundle identifier, iOS's equivalent of the Android package name, and version="1.0.0" became both the marketing version users see and the build number. iOS 13 is the lowest version the app installs on. As on Android, platforms/ios is build output: change config.xml and run cordova prepare ios rather than editing the Xcode project, or your edits vanish at the next platform rm.