Closed diogob003 closed 1 year ago
This must be accidentally being pulled via Sentry SDK... I'll investigate and see if there's a reasonably easy fix. If not, I'll just bump the minimum version to 10.14 — that it took 3 months since release for anybody to complain implies it's OK to do.
As you observed, this is new in Poedit 3.3, so the fix is to downgrade for now.
@diogob003 Can you please test if this build works? https://download.poedit.net/Poedit-3.3.2-high_sierra_test.zip
It's not working.
Sentry
is linking with libraries that is not present on the Poedit.app
bundle.
Running app:
➜ Poedit.app ./Contents/MacOS/Poedit
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /Applications/Poedit.app/Contents/Frameworks/Sentry.framework/Versions/A/Sentry
Reason: image not found
[1] 9421 abort ./Contents/MacOS/Poedit
Sentry
linked libs:
➜ Poedit.app otool -L Contents/Frameworks/Sentry.framework/Sentry
Contents/Frameworks/Sentry.framework/Sentry:
@rpath/Sentry.framework/Versions/A/Sentry (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1953.255.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.36.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2299.30.112)
/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData (compatibility version 1.0.0, current version 1244.6.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1953.255.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 1228.0.0)
/System/Library/Frameworks/MetricKit.framework/Versions/A/MetricKit (compatibility version 1.0.0, current version 1.0.0, weak)
/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration (compatibility version 1.0.0, current version 1241.60.3)
/usr/lib/swift/libswiftMetricKit.dylib (compatibility version 1.0.0, current version 6.0.0, weak)
@rpath/libswiftAppKit.dylib (compatibility version 1.0.0, current version 111.0.0, weak)
@rpath/libswiftCore.dylib (compatibility version 1.0.0, current version 5.7.1)
@rpath/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 120.100.0, weak)
@rpath/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 2.0.0, weak)
@rpath/libswiftDarwin.dylib (compatibility version 1.0.0, current version 0.0.0, weak)
@rpath/libswiftDispatch.dylib (compatibility version 1.0.0, current version 17.0.0, weak)
@rpath/libswiftIOKit.dylib (compatibility version 1.0.0, current version 1.0.0, weak)
@rpath/libswiftMetal.dylib (compatibility version 1.0.0, current version 306.3.4, weak)
@rpath/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 6.0.0, weak)
@rpath/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 3.0.0, weak)
@rpath/libswiftXPC.dylib (compatibility version 1.0.0, current version 6.0.0, weak)
@rpath/libswiftos.dylib (compatibility version 1.0.0, current version 1034.0.0, weak)
@rpath/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 120.100.0, weak)
@rpath/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1.0.0)
Searching for swift files in Poedit.app returns nothing
➜ Poedit.app find . -iname "*swift*" -print
Is it working on other macOS versions?
I don't know this Framework. Did you try one of the recommended package managers https://docs.sentry.io/platforms/apple/guides/macos/install/ to get Sentry
dependencies? Remember to set ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
to YES
on Xcode
as the docs request. See: getsentry/sentry-react-native#11
Thanks for testing!
Sentry
is linking with libraries that is not present on thePoedit.app
bundle.
I am aware, yes. But Sentry.framework
is weak-linked and its symbols are not used when running on 10.13. My expectation was that failure to load the framework by ld
would be equivalent to it missing completely. Apparently, it is not so.
Is it working on other macOS versions?
The Swift runtime is included as part of the OS since macOS 10.14.4. It is missing on 10.13 only.
I don't know this Framework. Did you try one of the recommended package managers https://docs.sentry.io/platforms/apple/guides/macos/install/ to get
Sentry
dependencies?
Yes, I can read too... That's the cause of the problem and what I was attempting in the test build was to avoid hard linking.
Remember to set
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
toYES
onXcode
as the docs request. See: getsentry/sentry-react-native#11
The documentation does not say that. You're repeating a 6 years old comment on some unrelated project...
Six years ago, it made sense to embed Swift runtime. But in 2023 I explicitly don't want to do that, because it would increase the already-large download size by another ~8 MB (and more for the on-disk unpacked app size), for the benefit of only 10.13 High Sierra. That's less than 0.4% of Poedit's Mac users these days...
So it seems that — as much as I don't like it — the time has come to bump the minimum required version to 10.14. In theory you should be able to run Poedit 3.3 after installing Swift 5 Runtime Support for Command Line Tools but that's not something that could be "officially" supported.
Main problem
Crash on startup
Causes
Probably missing Swift libraries
Crash log
Fix attempt
Copy Swift libs from Xcode.app to Poedit.app
Attempting to fix the problem did not work
Fix attempt crash log
Aditional info