apache / cordova-ios

Apache Cordova iOS
https://cordova.apache.org/
Apache License 2.0
2.15k stars 987 forks source link

feat!: remove default build dir overrides #1310

Closed dpogue closed 1 year ago

dpogue commented 1 year ago

Platforms affected

iOS

Motivation and Context

Specifying CONFIGURATION_BUILD_DIR can cause issues with Cocoapods.

Closes #617 Closes #659 Closes #671

Description

Once upon a time, Xcode's default directory values had issues when there were spaces in project names, so we override the CONFIGURATION_BUILD_DIR and SHARED_PRECOMPS_DIR variables with our own paths.

However, this can interfere with Cocoapods, and Xcode should be able to handle things sensibly nowadays.

Unfortunately, that results in our build artifacts living somewhere in a randomly-named Xcode DerivedData directory, and then we can't do things like run the app in a simulator or on a device because we don't know the path to it. 🤦🏼‍♂️

Setting SYMROOT allows us to control the output directory of the built products, with the caveat that Xcode always creates a subdirectory named with the current configuration.

So instead of build/emulator, we'll have build/Debug-iphonesimulator and instead of build/device, we'll have build/Release-iphoneos.
Hypothetically this is better because now we are sure that debug and release files never get mixed up in the same output directory.

The downside is that this is a breaking change because it alters the path for the output .ipa files.

Testing

Checklist

codecov-commenter commented 1 year ago

Codecov Report

Merging #1310 (91dbae5) into master (3d6c71a) will increase coverage by 0.00%. The diff coverage is 64.70%.

@@           Coverage Diff           @@
##           master    #1310   +/-   ##
=======================================
  Coverage   78.48%   78.49%           
=======================================
  Files          15       15           
  Lines        1780     1790   +10     
=======================================
+ Hits         1397     1405    +8     
- Misses        383      385    +2     
Impacted Files Coverage Δ
lib/run.js 21.73% <0.00%> (-0.24%) :arrow_down:
lib/build.js 68.04% <84.61%> (+1.01%) :arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more