safe - xcode reviews

Xcode 4.5 no such file or directory-libCordova.a (8)

clang: error: no such file or directory: '/Users/admin/Library/Developer/Xcode/DerivedData/__TESTING__-fzbkvdbnndieeagphtjhdndiyttl/Build/Products/Debug-iphoneos/libCordova.a'

How do I get this a missing libCordova.a ?

align top

UPDATE: For Simon Germain. align top

UPDATE: For Simon Germain. I don't see "Identity and Type". I can see "Identity". I'm using xcode 4.5 align top

align top

UPDATE: For Simon Germain. I got the Identity.

align top

UPDATE: For Samuel

align top

UPDATE: For Simon Germain - Architecture.

UPDATE: For james0n - armv.

align top

UPDATE: For Simon Germain - Architecture.

UPDATE: For james0n - armv.

 Undefined symbols for architecture i386:
   "_OBJC_CLASS_$_CDVURLProtocol", referenced from:
       objc-class-ref in AppDelegate.o
   "_OBJC_CLASS_$_CDVViewController", referenced from:
       _OBJC_CLASS_$_MainViewController in MainViewController.o
   "_OBJC_METACLASS_$_CDVViewController", referenced from:
       _OBJC_METACLASS_$_MainViewController in MainViewController.o
 ld: symbol(s) not found for architecture i386
 clang: error: linker command failed with exit code 1 (use -v to see invocation)

UPDATE: For james0n - Valid Architecture.

align top

UPDATE: It is now solved!!! make sure all armv7 and armv7s for ios 6 on all in xcode. It worked.

After spending many hours with even more errors, here's what worked for me. Basically combining much of the above:

  1. Start with a fresh copy of Cordova. If you've been messing with it like me, it's not fresh anymore.
  2. Move the Cordova files out of the download directory (I tend to clean that directory now and then...)
  3. Create a new project as described in the Phonegap docs, i.e. drag the ios/bin folder to the Terminal icon and run the create script in Terminal. No need to run the update_cordova_subproject script.
  4. Open the project in XCode.
  5. For your product, set the iOS Deployment Target to 4.3 (I did it 2x, both in Project and Target Build Settings).
  6. For CordovaLib.xcodeproj, set Build for Active Architecture to Yes in the Project Build Settings.
  7. Clean and run.

Do not include armv7s in any of the architecture lists, as it will not build for device.

Tested in simulator and on an iPad with iOS 6. Using Phonegap 2.1.0 and XCode 4.5.1.

Update: if you want to support iPhone 5, you will need armv7s. It requires the fix in , which will be in Cordova 2.2.0. (Haven't tried it yet, working on an iPad project.)

Also - make sure you don't have more than one PhoneGap Xcode project open at a time - I was getting conflicts between the two. "Workspace already open in another workspace" type of loop.

For your project, set the build setting "Build Active Architecture Only" to yes.

(Maybe also set the the Architectures build setting to "Standard (armv7, armv7s)" for CordovaLib project.)

Had (as many others) the same problem, here's what I did:

  1. Redid the Getting Started guide from Phonegap (including downloading and extracting the source again)
  2. Same problem with the HelloWorld app
  3. product - clean
  4. Changed both the 'HelloWorld' and 'CordovaLib'-project (so not the Targets) according to james0n's answer, settings:

Architectures: Standard (armv7, armv7s)

Build Active Architecture only: Yes

and then it magically worked, I think steps 3 and 4 did it however.

I had the same problem as you, worked fine deployed to the simulators but not to a device. Neither of the suggested answers worked for me.

Here's what did work for me:

Set deployment target to v4.3 and on the project settings for the CordovaLib project, set the Build Active Architecture Only to Yes. (Not needed on your main project).
Important, do a Product-> Clean and rebuild.

I had this problem too. I think it was because I had previously installed an old version of phone gap that installed some stuff in xcode. I uninstalled, then reinstalled xcode. Then I ran the Uninstall Cordova.applescript that came with phone gap. This fixed the problem of the red libCordova.a

Make sure that the CordovaLib's product's target is set to "Relative to Built Product" on the right hand-side panel, first tab on theleft, under "Identity and Type".

Only need to remove armv6 from both YourProject and CordovaLib:

The consequences of doing this? Apparently, it's still working on iPhone 3GS, but not the previous versions..