dyld: Library not loaded; llbuild image not found - swift

I used swift package init --type executable.
I have already tried setting xcode command line tools on path.
Following error occurs:
dyld: Library not loaded: #rpath/llbuild.framework/Versions/A/llbuild
Referenced from:
/Library/Developer/CommandLineTools/usr/bin/swift-package Reason:
image not found

I had to go into the preference for xcode and under Locations, set Command Line Tools to the correct version. It was blank when I first opened it.

I have faced the similar issue.
Basically the framework or library is not properly linked in the project.
If you are doing drag and drop of framework in xcode project then you will have to link it in embed frameworks as well.
(Basically you will have to drag and drop the framework in embed frameworks section)
See the below image.

There was this bad config in bash_profile /Library/Developer/CommandLineTools/usr/bin for path. Just removed it. Fixed the problem. which swift should result in /usr/bin/swift.

I had the same problem. I wanted to do some simple command line coding but didn't want to install the full Xcode bloat. I installed only the Command Line Tools on Mojave 10.14.6.
I could call swiftc to compile a file from the command line which actually did everything I needed it to. (I can't remember where I found a reference to being able to do this but basically you just call 'swiftc filename.swift' and you're good.)
But it irritated me that coding the "proper" way (i.e. the way most of the tutorials on the Internet want you to) failed. The "swift package init..." stuff kept barfing with the error posted in the question above here. So I got obsessed with fixing it.
So the error says that swift-package can't find a tool called llbuild.
I found that the llbuild executable did actually exist on my machine at:
/Library/Developer/CommandLineTools/usr/lib/swift/pm/llbuild/llbuild.framework/
The error, then, is because swift-package isn't looking for the tool in that directory.
(As a side note, earlier in my quest to fix this error, I tried adding some paths to my .bash_profile. None of those attempts worked. I can't recall now if I ever tried adding that full path and I'm too lazy to try now.)
I did some more digging. Someone somewhere on the Internet pointed out that the #rpath (referenced in the error message) variable set in apps can be discovered with otools. I used otools on swift-package and found its #rpath seemed to be pointing to /usr/lib. I noticed there was a .../usr/lib/... structure in the location of llbuild mentioned above. I imagined that swift-package was looking in /usr/lib instead of the directory where the file actually was. So I linked the directory where llbuild really is into the /usr/lib directory and voila! It worked.
Most people who need to do this will likely know how to do a symlink of a directory, but just to be thorough, this is what solved the problem for me all as root or use sudo if you want:
cd /usr/lib
ln -s /Library/Developer/CommandLineTools/usr/lib/swift/pm/llbuild/llbuild.framework/ .
Note that trailing period there. That's necessary.
As a side note, I had System Integrity Protection turned on, which forbids making symlinks in /usr/lib, so I had to reboot and turn SIP off from the recovery login(reboot and hold down Command-R) before I could do this.
Also, note that none of this necessarily cured the underlying problem I had of being able to actually build swift packages from the command line--I could now use "swift package init" but I couldn't use "swift run" or do anything else useful. I posted this only to give others some clues when they go digging since I looked a lot of places and didn't have much luck.

Related

Xcode upgrade: PBXContainerItemProxy missing containerPortal key

I just upgraded my Xcode, now when I try to open my project, I get this error:
Project /Users/xxx/xxxx/xxxxx/xxxxxx/xxxxxxxx.xcodeproj cannot be opened: PBXContainerItemProxy (xxxxxxxxxxxxxxxxx) is missing a containerPortal key
I have searched the web and stackoverflow, but cannot get anything relevent to come up at all regarding this.
I do have Three20 as part of my project, I don't know if that matters. I just upgraded to xcode 4.4.1
Thanks for any insight.
-D
the project icon which we see i.e projectname.xcodeproj, is actually a directory, you do this
1. in terminal do cd yourproject.xcodeproj
2.ls
3.vi project.pbxproj
4. scroll down till /* Begin PBXContainerItemProxy section */
5.there you will see all sections check for the section which is missing a portal key edit it and save it :wq it will work
in image if you see the first section is missing container portal key.just pic it from other section and replace it..
it will work :D see this link
Now I should start with that I do not know the actual error, never seen it before, but I did find a reference to a "PBXContainerProxy"-error in this post (As soon as I add a project to XCode 4.0.2 it crashes) and thought you might try the solutions from there?
"Apparently this is due to the new version of XCodeProjects. I found a
work around by pre-compiling the library that was causing the issue
and then using the linker to link to the .a file. I also had to copy
the .a library into the DerivedData path.
The real solution was to remove the project and replace it with an
updated project for the new version of XCode."
Hope that helps somewhat :)
Never saw that error either, but if you're upgrading directly from XCode 3.X I'd suggest you to go to https://developer.apple.com/downloads/index.action?name=Xcode
and download/install a previous version of Xcode somewhere else. (You can have several different copies installed on your machine, just google it if you don't know how but just remember to use xcode-select to pick the one you want to use). Repeat with all the versions back to 4.0.1 until (hopefully) it works. I know it's tedious but it might help.
If it does, validate the project settings and try to open it with 4.4.1. That should work.
Good luck

iOS Devtools.Core Framework pbxcp missing in Xcode?

I downloaded the Doomclassic Source Code and wanted to have a look at it. First I wanted to compile it to see if it actually works. So I followed the instructions and copied the .wad files into the base folder, openend the project and hit compile. Aside from the over 300 warnings and the missing files (mostly Images, which I mostly fixed) I have a strange error during teh compile phase and google is no help at all.
It says:
/Users/tobias/Library/Developer/Xcode/DerivedData/Doom-egfadrxunamfwjdsdaylawcyppkc/Build/Intermediates/Doom.build/Debug-iphonesimulator/Doom.build/Script-435F41A90F532CA300887552.sh: line 3: /Applications/Xcode.app/Contents/Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp: No such file or directory
When I check my Xcode.app the only framework in the PrivateFrameworks folder is IDEBundleInjection.framework
I also had a look at the script:
!/bin/sh -x
PBXCP=${DEVELOPER_DIR}/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp
${PBXCP} -exclude .svn "${PROJECT_DIR}/../../base" "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/"
So it seems that I need this framework - but even with google I couldn't find it and I wouldn't know how to integrate it into the Xcode App? I have updated Xcode to 4.4 just now but it's still the same error.
Does anyone has any advice please?
The pbxcp command was removed from XCode 4.4, so you'll have to find a replacement for it. See this mailing list thread to alternatives to the command.

RestKit/RestKit.h file not found error - version 0.10.0

I am losing my hair in my attempts to get RestKit to build and work. I get the dreaded "Lexical or Preprocessor issue: RestKit/RestKit.h file not found" message. I use Xcode 4.2 & my project is for iOS.
Earlier, I had debug mode working perfectly with RestKit 0.9.0. Then I ran into issues while trying to archive. After reading this forum and attempting some solutions, I decided to upgrade to 0.10.0 with hopes that it will solve the issue.
Now, my project is not even building in debug mode and I get the same RestKit/RestKit.h file not found error.
I have this under Header search path: "$(BUILT_PRODUCTS_DIR)/../../Headers". Can you please suggest (for 0.10.0 version):
1) Where should the physical location of RestKit be? (It may not matter, but which one worked for you - with hopes that I can mirror your setting)
2) I tried to point my header search path to "/Developer/Library/RestKit-RestKit-69adee9/" and later to "/Developer/Library/RestKit-RestKit-69adee9/Build"
Throughly confused and frustrated..
EDIT1: After several hours, I gave up. Nuked my project. Created a fresh project. Re-created the files (copy paste from prev project). Now "RestKit not found" error is gone! But now, I am getting this other error:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_RKObjectMapping", referenced from:
objc-class-ref in myclassname1.o
"_OBJC_CLASS_$_RKObjectManager", referenced from:
objc-class-ref in myclassname2.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I checked & made sure that I did NOT add RestKit.framework... I've no idea why the clang error is happening now
EDIT2: The libRestKit.a was red. It is OK according to https://github.com/RestKit/RestKit/wiki/Installation-Troubleshooting Just for the heck of it, I removed all the linked dependencies. Removed the "Other linker flags". Closed & reopened Xcode. Put them all back. That error is gone. Maybe I missed a framework which resulted in clang error. But it is highly unlikely for I checked & double checked. It works now.
It builds & archives on debug mode. I haven't tried the distribution mode yet.
EDIT3: Apple approved my app in the first go & it is live! I still do not know what caused the issue here. Nuking an existing project & creating a new one & copying over the old files (& periodically checking if build goes through) cannot be a solution. So I am leaving this question open.
I think I can shed some light on this.
When you upgrade to 0.10.0, you change your header search paths to "$(BUILT_PRODUCTS_DIR)/../../Headers", right?
The install guide only says to do this for the project settings. However in many cases, mine included, you'll need to also update them for the target settings as well.
The target settings will still have the old header search paths, and for whatever reason decide not to inherit from the project settings.
Mind you - its a total hack - but it got my project running.
Assuming that you've already followed the installation steps from the RestKit Github
https://github.com/RestKit/RestKit/blob/master/README.md#quick-start-aka-tldr
In the RestKit target, goto Build Phases. Under the Copy Headers dropdown, move all of the header files from "Project" to "Public".
Clean, Build, Run.
Solution I found was not to copy and past the "$(BUILT_PRODUCTS_DIR)/../../Headers" to your target's Header Search Paths.
After five hours I deleted the copy and pasted " and manually typed them in and it worked.
I recently played around with upgrading from RestKit 0.9.3 to 0.10.0 and had the same thing. Did you delete the RestKit/build directory? This contains a copy of the .h files and is created as part of the build process when building 0.9.x. Doing Product -> Clean doesn't seem to delete these files. 0.10.0 doesn't seem to create this build directory. I suspect that your build errors are due to those files still being picked up.
Also, to answer your question fully, I keep RestKit files in:
(project dir)/Frameworks/RestKit
This is a git submodule so it contains a clone of the RestKit git repo at a particular revision.
And the header search path is:
$(BUILT_PRODUCTS_DIR)/../../Headers
The header search path for 0.9.3 was:
$(SOURCE_ROOT)/RestKit/Build
I found this guide helpful (maybe this is what you are already following): https://github.com/RestKit/RestKit/wiki/Installing-RestKit-in-Xcode-4.x
and note the section about only having libRestKit.a in the project for the latest RestKit versions where earlier versions had all of:
libRestKitNetwork.a
libRestKitObjectMapping.a
libRestKitSupport.a
libRestKitJSONParserJSONKit.a
libRestKitXMLParserLibxml.a
libRestKitCoreData.a
If you have all of these, delete them from your project.
Been fighting with the same issue for the past few hours. What finally worked for me (and I'm not saying this is a definite fix, but at least it's something to try).
Delete RestKit from your Project
Close your project
Move the RestKit folder next to your main xcodeproject
Open the RestKit project and build it
Close the RestKit project
Open your project, and re-import the RestKit project into your xcodeproject
Fix the Dependencies and Linkings in the target settings
Add the "$(BUILT_PRODUCTS_DIR)/../../Headers" search path to BOTH the project settings and the target settings. (it only worked for me when they were listed in both).
This last step might be all that's necessary to fix it, but since I too was pulling my hair out over this, I tried a lot of different solutions and didn't want to assume that this last step was the sole reason it fixed itself.
(and my setup is XCode 4.3.2 and OS X 10.7.3)
After spending 2 days on this same error and navigating to every possibile google result I finally got it!
It's not due to Derived Data settings, those are fine already in XCode 4.3.2.
The problem is that you are doing a #import "RKObjectMapping.h" or some other include.
Instead use #class RKObjectMapping or if you really nead the .h use <RestKit/RKObjectMapping.h>
I went with #class since I just need to compile...
Hope this help!
Had this problem too. It would build and run just fine on simulator, but would not archive. Here's where I went wrong...
I did this:
#import "RestKit.h"
Rather than the correct way:
#import <RestKit/RestKit.h>
I had the exact same error today. All our code is in a github repo and the restkit folder is ignored so none of the restkit files were in there. Now, when xcode opens the project and finds stuff missing, it assumes all hell broke loose. So, deleted the folder, re cloned it and then grabbed a fresh copy of the restkit and threw it in there and voila, everything worked.
I found that I need to manually build the RestKit target for the header files to be copied into the build directory. Apparently the master project build does not reliably run the subproject build?
So, my steps for fixing this issue:
Select the RestKit run target
Build
Make sure the header search path was set on all target (apparently on project itself is not enough)
Build main project
Had a very similar problem. It turned out to be I had accidentally added the build setting to "User Header Search Paths" rather than "Header Search Paths".
My solution:
When adding "$(BUILT_PRODUCTS_DIR)/../../Headers" to
Targets -> Build Settings -> Search Paths -> Header Search paths,
the value was not set.
Instead the value has have been set up to User Header Search Paths.
So you double click to Header Search Paths, some pane with lines appear, you click + down left, paste that string there, click somewhere else to dismiss the window and... nothing.
The Header Search Paths didnt get updated but User Header Search Path did.
?!!!
So you click on the disclosure button on Header Search Paths.
Click + sign right of the attribute and add the value...
Here's a common mistake that'll make you want to slap yourself after you fix it.
Yes, you definitely do want to add "$(BUILT_PRODUCTS_DIR)/../../Headers" to your target's Header Search Paths, but don't forget to include the quotes!
I'm talking about the quotes that are before $(BUILT and after _DIR)/../../Headers
If your build configuration has a space in the name (e.g. mine is 'Ad Hoc') and you've just added $(BUILT_PRODUCTS_DIR)/../../Headers without the leading and trailing quotes, you may end up getting the "Lexical or Preprocessor issue: RestKit/RestKit.h file not found" problem.
This is a problem that I don't think has enough answers for this problem, because if you have this problem it feels like there is nothing to be done! After trying all of the proposed solutions (none of them worked). I finally found the problem
The problem was that one of my folders had a space in it. Don't use spaces in your source folder names!
Used to be : (/Xcode projects/basicRestkit etc...) -- lots of pain and suffering
changed to : (/projects/basicRestkit) -- lots of rejoicing
This caused the header search paths not to work, and therefore not to find the files. There may very well be a way to use alter the header search paths to find your files even with spaces.
This might not help you, but it very well could. Good luck.
For me only these steps works. Check here Hope this will help.

Problems using netbeans 7.01 with CMake 2.8.6

so once again, I'm having a little problem I can't figure out myself. Meaning, I'm pretty sure I know what the problem is, I just can't fix it.
I'm developing in C++ using Netbeans 7.01 with CMake 2.8.6. However, when I'm trying to build a project, I get the following error from CMake:
CMake Error: The path to the source directory:
H:/Projects/Netbeans/CppApplication_1/CONF=Release
contains unsupported character '='.
Please use a different source directory name.
Please note, that "CONF=Release" isn't a folder. It seems to be a configuration flag set by Netbeans, as it changes when I'm trying a debug build. So, my guess here is, that theres a space missing, or something similar. Unfortunately, I can't figure out where to change that. There are no options in any related Netbeans window, I can't find anything related in the configuration files for netbeans itself or the project either.
Did anyone here have experienced the same problem and found a solution to it? I would be very glad to hear it. If there's any information missing, let me know, I will add them as fast as possible.
Edit:
Just noticed there is already version 7.1 of netbeans, nice to know. However, even with this version, the same problem occurs.
You must specify the command you ran to allow for the error to be identified. However, it looks like you missed the "source-path" parameter.
The cmake command ends with the path to source and should be something like:
cmake -D CONF=Release <path to source>

MonoTouch - System.Reflection.Emit.ModuleBuilder error

I am trying to test my app in IPhone (IOS 5) and I get the following error. It works in simulator without any issues.
I am referencing an external library (NewtonSoft.Json.Monotouch.dll) which seems to be using System.Reflection.Emit.ModuleBuilder. Is there a way to overcome this issue? Any help regarding this is much appreciated.
" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Runtime.Serialization.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Web.Services.dll" -r "/Users/test/application/libraries/Newtonsoft.Json.MonoTouch.dll" -linksdkonly -sdk "5.0" Framework is: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk
Copied
/Users/test/application/bin/iPhone/Release/Unleashed.app
Could not link assemblies: Mono.Linker.ResolutionException: Can not resolve reference: System.Reflection.Emit.ModuleBuilder
Thanks
UPDATE:
Alright, I downloaded the latest NewtonSoft.Json source code from link, compiled the project and dropped the dll into my project. I still have the same issue. I did figure out the class that refers to System.Reflection.Emit. It is DynamicWrapper class in the Utilities folder.
I saw a similar issue posted in another blog link. The responded to the question suggests to set the Liner behavior to "Link all assemblies". Can anyone explain how to set this?
Newtonsoft.Json.MonoTouch.dll is known to work with MonoTouch. I've seen/compiled many application using it myself.
It's likely that you are either using an old or a mis-compiled version of assembly (e.g. missing defines). Difficult to say which without knowing it's origin. Try to track a newer version (or edit your question to include where it comes from).
Note: The fact that it works with the simulator is because a different mscorlib.dll is used to allow JITting (instead of AOTing) the managed code. This allows the simulator builds to be much faster than device builds.
Instead of compiling the Newtonsoft.Json.MonoTouch.dll, which did not work for me either, I downloaded the source code from github and added the project to my solution in MonoTouch and compiled the solution. Only then everything worked. (and of course as popou mentioned do not forget the MONOTOUCH;NET35;SILVERLIGHT options.)