question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

ios build fails with Pods and CONFIGURATION_BUILD_DIR configured

See original GitHub issue

Bug Report

Running a cordova build on ios which uses pods with sub folders fails in PhaseScriptExecution [CP]\ Copy\ Pods\ Resources

Problem

Certain pods have an hierarchy which needs to be dynamically adjusted per pod via the CONFIGURATION_BUILD_DIR argument. If this argument is already set then its value can’t be overridden and the pods folder structure will no longer match the expected structure.

The following command is generated by cordova which causes the build to fail: (notice the “CONFIGURATION_BUILD_DIR” argument)

xcodebuild -workspace HelloCordova.xcworkspace -scheme HelloCordova -configuration Release -destination generic/platform=iOS -archivePath HelloCordova.xcarchive archive CONFIGURATION_BUILD_DIR=/Users/michael.shemesh/dev/mobtest/cordova-hello-world/platforms/ios/build/device SHARED_PRECOMPS_DIR=/Users/michael.shemesh/dev/mobtest/cordova-hello-world/platforms/ios/build/sharedpch

Running the same without the “CONFIGURATION_BUILD_DIR” argument will make the build pass:

xcodebuild -workspace HelloCordova.xcworkspace -scheme HelloCordova -configuration Release -destination generic/platform=iOS -archivePath HelloCordova.xcarchive archive SHARED_PRECOMPS_DIR=/Users/michael.shemesh/dev/mobtest/cordova-hello-world/platforms/ios/build/sharedpch

What is expected to happen?

Allow to provide a parameter to disable setting the CONFIGURATION_BUILD_DIR argument. (Setting it to empty also doesn’t work since it is still counted by xcode as having a value)

The following is the code section which I wish to disable: cordova/lib/build.js#L351

What does actually happen?

The ios build fails with the following error:

PhaseScriptExecution [CP]\ Copy\ Pods\ Resources /Users/<username>/Library/Developer/Xcode/DerivedData/Thryv-gfricshxsupkdfguznnnhnawnjkb/Build/Intermediates.noindex/ArchiveIntermediates/Thryv/IntermediateBuildFilesPath/Thryv.build/Release-iphoneos/Thryv.build/Script-201964EF33584F706397D9EB.sh
    cd /Users/<username>/dev/mobile-app-generator/build/platforms/ios
    /bin/sh -c /Users/<username>/Library/Developer/Xcode/DerivedData/Thryv-gfricshxsupkdfguznnnhnawnjkb/Build/Intermediates.noindex/ArchiveIntermediates/Thryv/IntermediateBuildFilesPath/Thryv.build/Release-iphoneos/Thryv.build/Script-201964EF33584F706397D9EB.sh
error: Resource "/Users/<username>/Library/Developer/Xcode/DerivedData/Thryv-gfricshxsupkdfguznnnhnawnjkb/Build/Intermediates.noindex/ArchiveIntermediates/Thryv/BuildProductsPath/Release-iphoneos/Braintree/Braintree-UI-Localization.bundle" not found. Run 'pod install' to update the copy resources script.

Information

Create a new cordova project, add the following to the config.xml file:

<plugin name="phonegap-plugin-push" spec="^2.2.3" />

Add the ios platform:

cordova platform add ios@5.0.1

Open the workspace in xcode and add code signing.

Build the project using cordova and see that it works:

cordova build ios --release --device

Add the following to your Podfile:

	pod 'Braintree', '~> 4.23.0'
	pod 'BraintreeDropIn'

Run pod install Now try to build the project again and the error will be shown:

cordova build ios --release --device

Environment, Platform, Device

~/dev/cordova-hello-world » cordova -v 9.0.0 (cordova-lib@9.0.1)

~/dev/cordova-hello-world » pod env

Stack

   CocoaPods : 1.7.5
        Ruby : ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin18.0]
    RubyGems : 3.0.4
        Host : Mac OS X 10.14.6 (18G87)
       Xcode : 10.3 (10G8)
         Git : git version 2.22.0
Ruby lib dir : /Users/michael.shemesh/.rvm/rubies/ruby-2.1.5/lib
Repositories : master - https://github.com/CocoaPods/Specs.git @ a4d0bc49a0346483284c63ecd0b9c31b2453ee14

Installation Source

Executable Path: /Users/michael.shemesh/.rvm/gems/ruby-2.1.5/bin/pod

Plugins

cocoapods-deintegrate : 1.0.4
cocoapods-plugins     : 1.0.0
cocoapods-search      : 1.0.0
cocoapods-stats       : 1.1.0
cocoapods-trunk       : 1.3.1
cocoapods-try         : 1.1.0

Checklist

  • I searched for existing GitHub issues
  • I updated all Cordova tooling to most recent version
  • I included all the necessary information above

Issue Analytics

  • State:open
  • Created 4 years ago
  • Reactions:17
  • Comments:10 (1 by maintainers)

github_iconTop GitHub Comments

6reactions
seamlink-aalvescommented, Nov 24, 2021

Any chance of having the #671 merged for the next big update? This is currently blocking us from building our apps throught command line interface and enabling build automation?

2reactions
EinfachHanscommented, Jan 25, 2021

any plans on this?

Read more comments on GitHub >

github_iconTop Results From Across the Web

CocoaPods did not set the base configuration of your project ...
CocoaPods did not set the base configuration of your project because because your project already has a custom config set. In order for...
Read more >
Resolving common configuration and build issues
A common cause of failing builds is that Xcode Cloud can't access the Package.resolved file that it needs to resolve your Swift Package...
Read more >
Your custom build configurations and Cocoapods - Dev Genius
The problem I am facing is, Cocoapods used :release configuration because I didn't specify it in the Podfile. Obviously, :release build ...
Read more >
iOS Build Troubleshooting - Visual Studio App Center
My iOS builds using CocoaPods on Xcode 9 keep failing, what should I do? ... It might be because the signing configuration in...
Read more >
[#CB-12212] Cordova iOS build fails with pods that use the ...
Cordova iOS build fails with pods that use the resource_bundle spec ... OF PROJECT Pods WITH CONFIGURATION Debug === Check dependencies ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found