NativeScript / NativeScript/nativescript-cli

Intermittent build issues: "ld: can't open file, errno=13 file TNSWidgets" for architecture

Open
#5,464 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
1.1k
Forks
204
Avg merge
1d 9h
Merged PRs (30d)
8

Description

Environment
Using VueJS

  • CLI: 7.0.12
  • Cross-platform modules:
  • Android Runtime: X - not installed we do not have to worry about this
  • iOS Runtime: 7.0.6
  • XCode Version: 12.2 (Was on 12.3 but downgraded and still saw issues)
  • Plugin(s): nativescript-custom-entitlements and a custom internal one that doesn't add any npm dependencies it's just a company managed CocoaPod.

Describe the bug
Build/Rebuild timeframe (Xcode experiences the same issue when executing a build). It happens when we are debugging it against the device and the app recompiles. I have seen this error for architecture arm64 or x86_64.

I keep getting variations of the following (with different architecture)

ld: can't open file, errno=13 file '<path_to_project>/node_modules/@nativescript/core/platforms/ios/TNSWidgets.framework/TNSWidgets' for architecture <architecture>
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I see this when it's working (if that helps):

ld: warning: dylib (<path_to_project>/node_modules/@nativescript/core/platforms/ios/TNSWidgets.framework/TNSWidgets) was built for newer iOS version (9.2) than being linked (9.0)

Here is the verbose output when running build.
build_log.txt

Sometimes cleaning and rebuilding causes it to go away but it will then randomly show up again when the app re-builds during an ns run ios --device <DEVICE_ID>.

To Reproduce

  • ns build ios

It also appears intermittently when running:

  • ns run ios --device <DEVICE_ID>

Expected behavior

Shouldn't crash/fail intermittently. This seemed to have randomly started up mid last week.

Sample project
Just a base VueJS project that is taking advantage of the WebView. The only downside is I'm using an internal CocoaPod that is managed by another team at my company. Though this shouldn't be the primary issue.

Additional context
I've followed some of the bug tickets and most conclude to use Xcode 12.2 (I was on 12.3 and downgraded but still experienced the issue).

I also added VALIDATE_WORKSPACE = YES; to my build.xcconfig

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the attached build_log.txt and reproduce using ns build ios or ns run ios --device <DEVICE_ID>. Compare failing and successful linker output around the TNSWidgets.framework path and review the added VALIDATE_WORKSPACE = YES; setting in build.xcconfig. Done means identifying and preventing the intermittent linker failure across the reported architectures.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, javascript
Domain
build-system, cli, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.