Can't compile Three20 template on iOS4 - iphone

I pulled the latest version of three20 from github and installed their template. I opened it up in XCode, built it, ran it, then I realized the template isn't iOS4 ready.
The first issue I found was "Base SDK not found". I solved it in Edit Project Setting by changing the Base SDK to "iOS Device 4.1".
Then I ran it again. I got tons of errors related to "Three20/Three.h: No such file or directory". I added the "../three20/src" to my Header Search Paths but it doesn't help.
Does anyone know why? What else should I change?
FYI:
XCode Version 3.2.4
Latest version of three20 (29 September)
Directories:
xcode/myproject/
xcode/three20/
PS: the template works fine in SDK 3.0

I was pulling my hair out as well since adding three20 correctly to your new iOS4 with really basic instructions listed here: http://github.com/facebook/three20 did not work as well.
Issue: Can compile newly three20 to your iOS project and got this error: Can't find #import "Three20/Three20.h".
Here is the best solution for those have the same issue:
1) Add your three20 to your iphone project path like this:
[yourProjectPath]/[iOSProjectName]/three20/..
2) cd three20 dir
3) run:
python src/scripts/ttmodule.py -p [yourProjectPath]/[iOSProjectName]/[iOSProjectName].xcodeproj Three20 -c Debug -c Release
4) go to XCode and do a build now.
Thanks to jverkoey for adding this in ...man
u save us a lot of headache if u ever read this :- ) kudos bud! :- )
http://github.com/facebook/three20/commit/0814b1c149cbe987557c88a271f999c3f9f3ae64
Please vote this answers if it help u. Thanks :-)

Turn out I have to use http://github.com/ECP/three20 instead .

An answer I got from twitter - "need to manually set build target of each projects"
He might be right.

My solution was to add the following to the Header Search Path in Xcode:
three20/Build/Products/three20
Xcode 4 screen shot:
Yours may be different of course, but maybe this will help someone.

Also, try checking the Deployment Target under Project Settings, for both, Simulator and Device. In my case, I got thousands of errors because the target was set to 2.2. It seems there is no support for 2.2 anymore in iOS 4.1 and Xcode 3.2.4.

Related

XCode 4.5 giving me "SenTestingKit/SenTestKit.h" file not found, but works on 4.4.1

I just installed XCode 4.5 and it's giving me a 'SenTestingKit/SenTestingKit.h" file not found error on one of my existing projects. This error only happens in XCode 4.5, but it compiles fine on 4.4.1. I've checked that the SenTesting framework has been added to the test target and I verified that the same error occurs on a few other machines. Has anyone else come across this?
Thanks in advance for your wisdom!
UPDATE
I was able to fix this issue by placing quotes around some of the framework search paths in build settings...
"$(SDKROOT)/Developer/Library/Frameworks"
"$(DEVELOPER_LIBRARY_DIR)/Frameworks"
Since I installed the XCode 4.5 GM alongside 4.4.1, I'm guessing the 4.5 version had a space somewhere in the name.
Perhaps it's just missing the framework and before it just referenced it and not copied to your project folder.
This might help:
You can click on your App Name and then the "Build Phases" tab near center of screen. Then go down to "Link Binary with Libraries" and click the "+" symbol and type "SenTest" and the framework should appear. Double-click it and it will add it to your project. In your project explorer you may want to "drag" that into the "Frameworks" folder just for organization.
I don't have same error and have both versions of XCode so am just guessing what it could be. I hope this is helpful.
Also that is pre-release software so might not be able to discuss publicly. See this SO article regarding similar issue during previous upgrade.
SEE: Xcode - SenTestingKit not found
I had a similar problem with libxml in XCode 4.5 and I managed to solve it by changing the reference to the framework in Build Settings of the target. Strangely, I changed ($SDKROOT) to "($SDK_DIR)" (notice the "") and it worked. Don't know why but it fixed it.
Maybe this will help
BTW, if anyone knows why the "" fixed it, I would be glad to know !
SenTestingKit/SenTestingKit.h file not found error on one of my existing projects. You can click on your App Name and then the Build Phases.

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

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.)

OpenFeint Xcode 4 integration, prefix header not found

I just upgraded to Xcode 4, deleted the OpenFeint folder and added the new 2.9.1 framework according to this readme.
Then I deleted the "build"-Folder (that is now located in ~/library/Developer/...) and rebuilt the application but always get the following error:
/Users/k****/Documents/Tactica/Tactica_Prefix.pch:5:30: error: OpenFeintPrefix.pch: No such file or directory
When I have a look into OpenFeint.framework/headers there is clearly a file "OpenFeintPrefix.pch" included.
Any Idea why Xcode doesn't find it?
You have to add OpenFeint/ before any includes, like
#import "OpenFeint/OpenFeintPrefix.pch"
This should do it :)
I used OpenFeint a long time ago. The most errors I can solve with redo the instructions.
Also with updating to Xcode 4 al paths gets changed and Xcode has problems with finding files from old projects.
I recommend you to redo the instructions and if it didn't work, I'd recreate the project and add OF again, the problems should be gone then.
When I have a look into
OpenFeint.framework/headers there is
clearly a file "OpenFeintPrefix.pch"
included.
The most obvious point would be, are you looking at that location through finder or Xcode.
The file must be included in your xcode project itself rather then just in that folder on the computer?

iPhone sdk compiler warning Directory help needed -L not found

I have a nuisance problem. I have upgraded sdk's and along the way, I must have previously used the 3.1.3 simulator, which I no longer have. I have not found where and how to delete the reference, so I can get rid of the warning
Directory '/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.3.sdk/usr/lib' following -L not found
Thanks
In Project menu Edit Project Settings under base sdk change value to 4.2