Live-reload troubles: Compiling file system watcher for Mac

I got troubles with the live-reload for .ex files in a phoenix (1.3.4) app. I don’t use linters, nor vim.

I made a complete reinstall, removing every thing in the deps directory rm -rf *and all the compiled files rm -rf _build.
Then I mix deps.get the dependencies and compile the project and then:

$ mix compile

12:01:20.452 [info]  Compiling file system watcher for Mac...
==> file_system
ld: warning: text-based stub file /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbd and library file /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//CoreServices.framework/CoreServices.tbd and library file /System/Library/Frameworks//CoreServices.framework/CoreServices are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//CFNetwork.framework/Versions/A/CFNetwork.tbd and library file /System/Library/Frameworks//CFNetwork.framework/Versions/A/CFNetwork are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices.tbd and library file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices.tbd and library file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList.tbd and library file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList are out of sync. Falling back to library file for linking.

After reading some articles on the web I tried in different ways to get the proper command line tools (last version 10.0 via the app store and previous version via xcode-select --install) but it didn’t work.

then I created a new project with mix phx.new (v 1.3.4) and the live-reload didn’t work either.

I read some go programmers on mac also got these warnings.

Someone can help?
Is there a connection between those warnings and the failure of the phoenix live-reload?

Thanks.

This is a macOS issue while compiling the file_system package, so not directly related to Phoenix.

Have you tried this? http://sd.jtimothyking.com/2018/07/26/stub-file-and-library-file-out-of-sync/ – In short: forcibly remove Xcode command line tools and then reinstall them.

Have you tried this? http://sd.jtimothyking.com/2018/07/26/stub-file-and-library-file-out-of-sync/

Yes I had and unfortunately it didn’t help.

The issue is on air in the github of golang. Wait and see.

The workaround mentioned by Nicd and more information can be found here.

Even if the fix doesn’t work on my Mac, with Command Line Tools v.10.0 already installed (updated from the App Store the Sep 20, 2018) on macOS High Sierra 10.13.6

More information concerning this issue, if you are about to upgrade your OS to macOS Mojave, excerpt from the golang github.

Upgrading to macOS Mojave, which came out today, seems to fix the issue for me. I can no longer reproduce it on the following configuration:

OS: macOS Mojave, version 10.14 (18A391)
Go versions: current tip at 2018-09-25 01:17 (0ee8a55), tip at 2018-09-18 21:34 (d24ec86)
Xcode: version 10.0 (10A255) (installed, but haven’t done the “install additional required components” yet; version via xcodebuild -version )
Xcode CLI tools: seemingly no longer installed, getting No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'. , although git and others are available in CLI (via pkgutil --pkg-info=com.apple.pkg.CLTools_Executables )

However, it’s not conclusive if the issue is completely resolved, because it seems upgrading to Mojave caused the Xcode CLI tools to no longer be installed by default, and running Xcode 10 asks to “install additional required components” again. I haven’t done those steps yet.

Is there a connection between those warnings and the failure of the phoenix live-reload?

NO !!!
I have added this line ~r{lib/.*(ex)$} in the endpoint file, and everything’s working now.

config :my_app, MyAppWeb.Endpoint,
  live_reload: [
    patterns: [
      ~r{priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$},
      ~r{priv/gettext/.*(po)$},
      ~r{lib/.*(ex)$}
      # ~r{lib/my_app_web/views/.*(ex)$},
      # ~r{lib/my_app_web_web/templates/.*(eex)$}
    ]
  ]

isn’t Phoenix.CodeReloader watching the lib directory by default?

Nope, to prevent way too many unrelated updates from happening in non-umbrella/dep style projects.

2 Likes