I am sure this may be super silly but I have been spending so many hours trying to figure this out and looking everywhere. I added a 3rd party library to my Xcode project and when compiling it says that the header is missing even though I dragged the entire library to my projects.
Is there a way to manually link the header to my project? What am I missing? thanks!!
Not sure if this helps. I am trying to add ShopSavvy scanner. In Finder, I have a library called ScannerKit where my .xcodeproj is. Under the ScannerKit library there is a Headers library where all the headers are.
Are you sure you checked copy when you added it in?
Try deleting it, then importing it again, making sure the box is checked.
Sometimes a library may have the header outside of the main library, for example I know TestFlightApp do this, TestFlightApp.h is outside the main library.
What library are you trying to use?
This has often happened to me, and I have found that sometimes it depends where in your project the header is located. If you have a supporting files folder, I would put it there. Really anywhere inside the classes folder. I'm not really sure why this problem occurs, though.
Related
I have an iPhone application that uses a set of plists to load the data. I found during development that I was getting very strange behaviour whereby XCode did not always read from the latest revision of the list.
I researched this and found that plists are not treated as other files and that updating them may be ignored by XCode. I also found I could fix this by manually dragging the plists to the Copy Bundle Resources list in Targets, but I'd have thought that if Apple really wanted me to do this, they might have XCode add it into that list when the file is added to the project in the first place.
Can anyone tell me what is the correct approach to this problem, please?
Xcode does not automatically copy certain resources and they have to be added manually to the Copy Bundle Resources list in your targets like you said. I find this rather annoying (especially since it seems that only some of my files do this) and im not quite sure if this is a bug or not. I also noticed that xcode usually never adds C source files to the Compile Sources list in Targets in my iPhone projects. Dragging the file into the Copy Bundle Resources should never present a problem unless of course you are creating a file template.
I need to clarify one doubt here:
When we create a static library and use them inside another project, why do we need to add the .xcodeproj file (for which this static library was created) reference in the code?
Shouldn't we be able to just give our library to anyone so that they could use in their project without needing our .xcodeproj file. If this is possible then what are the steps for it?
Give them the compiled .a files (one for ARM and one for Intel) and any header files that you want made public... that's pretty much it right there.
Sorry for the n00b question, but I have no more hair to pull. =(
I'm building my iOS project using XCode and have a reference to another XCode project, to make this work I also need to reference the bundle-file. The developer who built the project and bundle wanted to organize things and thus put all the images inside of this .bundle-file.
Now my question is this:
How do you add a file/resource to a .bundle file? -> http://grab.by/7p3Y
The file type of the bundle is: wrapper.plug-in -> http://grab.by/7p3W
The files I add by right-clicking and selecting add existing files all end up in the project not in the bundle resource.
Any kind of help will be most appreciated! Also an indication if this is common or a custom solution?
Best regards
Abeansits
Update:
As usual the problem was me, I'm blaming this on low sugar levels. =(
All you need to do is add a file to the bundle manually and it will show up in XCode.
As I wrote in the question, the solution is really simple. Just add the files you need inside the project to the bundle. Since the bundle is actually a folder, you can right click it an select show content. Anything you later add to the folder will show up in the project.
I guess this confused me since usually when you add resources to your project you need to do this through XCode.
Anyone want to share an Xcode project that has MGTwitterEngine in it? Mine won't compile. Are there certain project settings to set? I just made a stock tab bar app for iPhone and added the MGTwitterEngine files. Tons of compiler errors. What am I missing?
I had same problem. To get it to compile I added "$SDKROOT/usr/include/libxml2" to the Header Search Paths list. I also checked Recursive checkbox.
Make sure that you're adding "$SDKROOT/usr/include/libxml2" to header search paths in your Target settings and not just the Project.
I managed to get the library path right eventually. However, in the end, I got rid of the whole MGTwitterEngine thing and went with the TwitterHelper stuff that I noticed the folks from the Stanford iPhone class using. It uses the synchronous calls and it's not as full-featured. But it's lighter and I understand it better. I just use threading to counter the synchronicity. (Hey, wasn't that a song?!) Anyway, a little JSON code and it's all under control. Most of you are probably going to think I'm a noob but it just feels cleaner and easier to handle. I know there are plenty of good reasons to use MGTwitterEngine.
Bottom line is, even though I got it to work by getting the library path right, I don't even need to worry about any paths by adding the very small TwitterHelper stuff to my project. Seems more Mac-like than to have to go into too much tinkering (I can already hear the experts saying that setting paths is not too much but I absolutely detest the Project Settings dialog.)
You also need to add
libxml to Header Search Path ( should be something like /usr/library/libxml2 )
I just wanted to add something that tripped me up. You have to make sure the Target header search path is also set because it may override the default project search path headers. If you are unable to find some header files that the path is definitely pointing to correctly in your project search path headers, then this is probably the reason.
You're probably missing the libxml library. You need to add that to your linked frameworks. Here's a question that has a little more information, but that's the gist of it.
Best approach for XML parsing on the iPhone
I realise that the view/controller stuff will be different between Mac and IPhone apps but the model code may well be similar/the same. So whats the best way to organise a project(s) so that the model code is/can be shared?
Copy/paste - just duplicate it and manually keep it in sync
Have 2 xcode projects point at the same workarea - one for Mac and one for IPhone and share the code.
Common library - presumably you can't do this (or can you)
Thanks for any tips.
There are a few ways to do this. The first thing you can do is is create a project that builds as a framework on Mac OS X. Since you cannot use frameworks on iPhone, you can make static library target that contains the same code files. That basically works, but the header paths will be different. If you want the header paths to be the the same (i.e. <Myframework/MyFramework.h>) you will need to modify the the install path of the static library headers so that they are copied into "$SDK_ROOT/usr/local/include/MyFramework", and make sure /usr/local/include is an included header search path. You will then need to install the library and headers into each SDK_ROOT.
I started out doing the above, but I found it to be a royal pain. So I ended up doing something that is a variant of #2. Basically, I get the header paths to be equivalent by making a directory named "Externals" in my iPhone project root, then a directory named with the appropriate name ("MyFramework") in the externals folder. That is the folder I copy I drag the framework files into.Findally I add the Externals folder as a system header path (which is admittedly sort of a gross hack). You need to manually add new files to the iPhone project, but I have found that to be less of a pain the installing static libs into my build root.
I'm not sure if the suggestion from the previous answer would work. If you look at my previous question, you'll see that I've failed to load a custom framework on the iPhone even though the framework works fine on Mac.
I would go with method 2.
You could develop your application in JavaScript, CSS, and HTML. You would use the WebView and UIWebView objects on the Mac and the iPhone respectively. You can do pretty much anything you want in the WebView objects, even make calls down to Objective-C.
The QuickConnectiPhone installer, found here https://sourceforge.net/projects/quickconnect/, installs QuickConnectMac and QuickConnectiPhone templates into Xcode.
This way you can quickly create an application in one environment and then migrate the view to the other. In fact the QuickConnect framework is highly modular.
If you don't want to develop in JavaScript the same modular framework is found on the Objective-C side of the templates installed.
It should make it much easier for you to do what you are attempting.