Closed paul-brenner closed 4 months ago
Hi, what version of Xcode is this? I'll look at modifying the "rpath" of the injection bundle to cater for this but in the meantime you should be able to add a Debug config "rpath" (Runpath Search Paths build setting) to your app of: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.5/iphoneos
.
Any chance you have a small example program that replicates this problem I can look at?
This is on Xcode 15.4. I can confirm that adding the Debug config rpath as you suggested fixes it.
So far I'm failing to create a small example program that replicates, when I strip my app down to the bare bones I seem to be also stripping out whatever is causing the problem. Happy to try to do whatever else might help if there is anything else?
Never mind about a replicator as this is a small change. I'll push a new release candidate if you could test if later today.
thanks! will do.
Sorry, I can't upload a release candidate today as @GitHub seems to be broken. Will try again later.
I've been able to upload the new pre-release using an old version of Safari 🤷♂️. When you get a chance can you try it out with your rpath override removed? https://github.com/johnno1962/InjectionIII/releases/tag/5.0.1RC1
wow! Tested and confirmed working. Thank you!
👍
Just a heads up that if I build on the simulator and just leave it sitting there I'll see the same errors filling up my logs:
💉 ⚠️ dlopen() error: dlopen(/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/F3B0C177-1985-4929-A02A-D6D3D01FA48D/tmp/eval101.dylib, 0x0002): Library not loaded: @rpath/libswift_Concurrency.dylib
Referenced from: <52B1B6AE-5ADD-3E33-A130-C2765181A296> /Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/F3B0C177-1985-4929-A02A-D6D3D01FA48D/tmp/eval101.dylib
Reason: tried: '/Users/paul/Library/Developer/Xcode/DerivedData/Siv-gcyyqfuiqnspnmeimxcssicloaab/Build/Products/Debug-iphonesimulator/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/introspection/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/F3B0C177-1985-4929-A02A-D6D3D01FA48D/tmp/libswift_Concurrency.dylib' (no such file), '/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/F3B0C177-1985-4929-A02A-D6D3D01FA48D/tmp/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/F3B0C177-1985-4929-A02A-D6D3D01FA48D/tmp/libswift_Concurrency.dylib' (no such file), '/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/F3B0C177-1985-4929-A02A-D6D3D01FA48D/tmp/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/Users/paul/Library/Developer/Xcode/DerivedData/Siv-gcyyqfuiqnspnmeimxcssicloaab/Build/Products/Debug-iphonesimulator/PackageFrameworks/libswift_Concurrency.dylib' (no such file), '/Users/paul/Library/Developer/Xcode/DerivedData/Siv-gcyyqfuiqnspnmeimxcssicloaab/Build/Products/Debug-iphonesimulator/PackageFrameworks/libswift_Concurrency.dylib' (no such file), '/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Bundle/Application/87409E6B-5F37-428F-A87D-0F972D7E095C/Siv.app/Frameworks/libswift_Concurrency.dylib' (no such file), '/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Bundle/Application/87409E6B-5F37-428F-A87D-0F972D7E095C/Siv.app/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/libswift_Concurrency.dylib' (no such file), '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libswift_Concurrency.dylib' (no such file)
But then as soon as I go into a file with @ObserveInjection var redraw and make changes it happily shows
💉 Compiling /Users/paul/Siv/siv-ios/Siv/Siv/Features/Main/CustomTabBar.swift
💉 Loading .dylib ...
💉 Interposed 20 function references.
💉 Injected type #1 'Siv.CustomTabBar'
💉 Injected type #2 'Siv.CustomTabItem'
then works as expected. So very much working for me, but I imagine if a new user setting up sees those messages they may not realize that everything will still work.
Yeah that's weird. Xcode autosaves files from time to time which would trigger an injection. Does it tell you what file it's recompiling? Does that make sense? I don't know what sort of file would cause the problem to come back though.
Ah I see that Inject just conveniently told me:
💉 Compiling /Users/paul/Siv/siv-ios/Siv/Siv/Data/SivRepository.swift
💉 Loading .dylib ...
💉 ⚠️ dlopen() error: dlopen(/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/C56500DC-6F79-477C-9786-752ED701A3C0/tmp/eval107.dylib, 0x0002): Library not loaded: @rpath/libswift_Concurrency.dylib
but that file is purely backend. I can put it up temporarily here if that is helpful at all.
Not sure how much this is a problem worth fixing for everyone or just a problem unique to me but it is broken again for reasons I can't figure out:
💉 ⚠️ dlopen() error: dlopen(/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/B9E97AC2-D606-43F9-9A92-7E46922738BD/tmp/eval101.dylib, 0x0002): Library not loaded: @rpath/libswift_Concurrency.dylib
Referenced from: <3A8C3243-90E6-3765-A159-C63D18E39C49> /Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/B9E97AC2-D606-43F9-9A92-7E46922738BD/tmp/eval101.dylib
Reason: tried: '/Users/paul/Library/Developer/Xcode/DerivedData/Siv-gcyyqfuiqnspnmeimxcssicloaab/Build/Products/Debug-iphonesimulator/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/introspection/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/B9E97AC2-D606-43F9-9A92-7E46922738BD/tmp/libswift_Concurrency.dylib' (no such file), '/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/B9E97AC2-D606-43F9-9A92-7E46922738BD/tmp/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/B9E97AC2-D606-43F9-9A92-7E46922738BD/tmp/libswift_Concurrency.dylib' (no such file), '/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Data/Application/B9E97AC2-D606-43F9-9A92-7E46922738BD/tmp/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/Users/paul/Library/Developer/Xcode/DerivedData/Siv-gcyyqfuiqnspnmeimxcssicloaab/Build/Products/Debug-iphonesimulator/PackageFrameworks/libswift_Concurrency.dylib' (no such file), '/Users/paul/Library/Developer/Xcode/DerivedData/Siv-gcyyqfuiqnspnmeimxcssicloaab/Build/Products/Debug-iphonesimulator/PackageFrameworks/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.5/iphoneos/libswift_Concurrency.dylib' (no such file), '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.5/iphoneos/libswift_Concurrency.dylib' (mach-o file (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.5/iphoneos/libswift_Concurrency.dylib), but incompatible platform (have 'iOS', need 'iOS-sim')), '/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Bundle/Application/3245320F-0413-4130-B738-5D23BAC93BCD/Siv.app/Frameworks/libswift_Concurrency.dylib' (no such file), '/Users/paul/Library/Developer/CoreSimulator/Devices/F16469C4-F7D9-4403-979C-390667F3863C/data/Containers/Bundle/Application/3245320F-0413-4130-B738-5D23BAC93BCD/Siv.app/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/libswift_Concurrency.dylib' (no such file), '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/libswift_Concurrency.dylib' (no such file), '/Library/Developer/CoreSimulator/Volumes/iOS_21E213/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.4.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libswift_Concurrency.dylib' (no such file)
💉 ⚠️ Clean build folder when switching platform
This is when I save a file that actually is a view and right after cleaning the build folder.
Hi Paul, not sure what's happening there. I assume you tried the "Runtime Search paths" fix? If you can hang tight for a bit there is something new in the pipeline that can be worked on more easily.
Sounds good! I'll keep working with it and see if I can figure anything out in the mean time. Now that I've tried InjectionIII, I can't imagine going back to the old way, even with the errors I'm hitting.
In terms of an ETA, I imagine I'll be releasing the next-gen version of Injection as soon as I know it works with Xcode 16.
Was just looking around and noticed that InjectionNext exists. Looks pretty cool! But I wasn't really sure of it's status. Is it ready for fools like me to give it a try and open issues when I inevitably do something wrong? Or is it not quite there yet? If so, is it XCode 16 only?
Hi Paul, InjectionNext is coming along nicely if you want to give it a try. I'm not pushing it just yet as I'm still getting useful feedback for some initial users.
Using Xcode 16.1 this issue still persists. I spent 3 hours cleaning derived data and trying everything...
I tried the new InjectionNext, but that doesn't work with the Inject package.
Please let me know how if there is a fix @johnno1962
Thanks, Perjan
I've been happy with InjectionNext for a few months now. I'm sure @johnno1962 will jump in with a more helpful answer, but if you think you are able to switch over, maybe open an issue on InjectionNext with what isn't working for you specifically? I assume you switched over to the InjectionNext package in you app when trying the InjectionNext?
I've been happy with InjectionNext for a few months now. I'm sure @johnno1962 will jump in with a more helpful answer, but if you think you are able to switch over, maybe open an issue on InjectionNext with what isn't working for you specifically? I assume you switched over to the InjectionNext package in you app when trying the InjectionNext?
I tried to use injectionNext in combination with Inject, but apparently Inject is trying to find the app bundle InjectionIII, which was not present on my Mac. And the InjectionNext icon stays yellow, thus not reloading the changes...
Ah, I've only been using InjectionNext with HotSwiftUI so maybe I'm unhelpful
InjectionNext should be equivalent to InjectionIII from an Inject(HotSwiftUI) point of view. What isn't working? What version of InjectionIII were you using? Versions 5.0.1+ have a fix for this. Do you have a /Applications/Xcode.app?
InjectionNext should be equivalent to InjectionIII from an Inject(HotSwiftUI) point of view. What isn't working? What version of InjectionIII were you using? Versions 5.0.1+ have a fix for this. Do you have a /Applications/Xcode.app?
Well there is not hot reloading and the InjectionNext icon remains yellow. And In the Xcode console I see that the Inject framework tries to find the InjectionIII bundle, but it doesn't. Xcode 16.1 is installed on my device.
I'm sure you could have written that first response without the word "well". Is this on a real device (which is considerably more difficult and for which there may not currently be a solution if your problem is the Swift concurrency library)? If the icon never gets to orange at some point you are not connecting. Have you been able to get things running in the simulator? If you have added the InjectionNext Swift package to the same target as Inject it should not be trying to load any bundles.
I'm sure you could have written that first response without the word "well". Is this on a real device (which is considerably more difficult and for which there may not currently be a solution if your problem is the Swift concurrency library)? If the icon never gets to orange at some point you are not connecting. Have you been able to get things running in the simulator? If you have added the InjectionNext Swift package to the same target as Inject it should not be trying to load any bundles.
Sorry about the "well", I didn't mean to offend you. I am running on the simulator. I am installing injectionNext on my other Mac now and I will let you know.
What precisely is the problem we're chasing at the moment? Try to reach the point where InjectionNext connects as it will be easier to iterate over. If you still get Library not loaded: @rpath/libswift_Concurrency.dylib
when you try to inject make sure you have a valid /Applications/Xcode.app. Otherwise, we can zoom it if you have the time.
What precisely is the problem we're chasing at the moment? Try to reach the point where InjectionNext connects as it will be easier to iterate over. If you still get
Library not loaded: @rpath/libswift_Concurrency.dylib
when you try to inject make sure you have a valid /Applications/Xcode.app. Otherwise, we can zoom it if you have the time.
I finally moved to InjectionNext. Thanks for this amazing framework @johnno1962. I love it how fast it is and the console logs are more descriptive allowing me to find what to change.
Unfortunately now it doesn't allow me to build on a real device. I added a new issues on the InjectionNext repo. https://github.com/johnno1962/InjectionNext/issues/27
We can zoom any time.
After a few hours of trying, I can't seem to figure out what I have configured incorrectly.
I'm using InjectIII 5.0 and HotSwiftUI installed via SPM and have for my ios target Other Linker Flag->Debug set to -Xlinker and -interposable (no quotes separate lines). But I always run into this error:
I can't think of anything in my project that uses libswift_Concurrency.dylib explicitly, though I suppose it could be related to one of the packages.