apache / apache/cordova-ios

check_reqs (`cordova requirements`) treats Xcode different than pod or ios-deploy

Open
#525 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
JavaScript
Stars
2.2k
Forks
1k
Avg merge
12h 11m
Merged PRs (30d)
18

Description

# Bug Report

## Problem

### What is expected to happen?

`cordova requirements` should treat all the software it checks for equally and show similar error message for similar problems.

### What does actually happen?

```
λ cordova requirements

Requirements check results for ios:
Apple macOS: installed darwin
Xcode: not installed

ios-deploy: not installed
Cordova needs ios-deploy version 1.9.2 or greater, you have version . Please download, build and install version 1.9.2 or greater from https://github.com/phonegap/ios-deploy into your path, or do 'npm install -g ios-deploy'
CocoaPods: installed 1.0.1
Some of requirements check failed
```

As you can see Xcode/`xcodebuild` only gets a "not installed", while `ios-deploy` also shows a nice error message: "Cordova needs ios-deploy version 1.9.2 or greater, you have version . Please download, build and install version 1.9.2 or greater from https://github.com/phonegap/ios-deploy into your path, or do 'npm install -g ios-deploy'"

When you have a (faked) Xcode installed, the "needs version" error message is correctly displayed:
```
...
Xcode: not installed
Cordova needs xcodebuild version 7.0.0 or greater, you have version 1. Please install version 7.0.0 or greater from App Store
...
```

## Information

This system does _not_ have Xcode/`xcodebuild` and `ios-deploy` installed.

### Command or Code

`cordova requirements`

### Version information

```
λ cordova -v
8.1.2 (cordova-lib@8.1.1)
```

## Checklist

- [x] I searched for existing GitHub issues
- [x] I updated all Cordova tooling to most recent version
- [x] I included all the necessary information above

Contributor guide

Open the contributing guide

Research direction

Start by running `cordova requirements` in an environment without Xcode/`xcodebuild` and `ios-deploy`, then trace the requirements checks that produce their output. Compare the missing-tool paths for Xcode and ios-deploy, and use the existing version-error wording as the expected behavior. Done means both missing tools receive similarly useful version or installation guidance.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
cli, mobile-dev, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.