Shazron's Cordova (aka PhoneGap) Blog

at Adobe Systems Inc.

Xcode 5.1 and Cordova iOS

with 122 comments

cordova_botUPDATE: Cordova CLI  3.4.1-0.1.0 is out, which includes Cordova iOS 3.4.1 which incorporates all the fixes mentioned in this blog post. Update your Cordova CLI, and if you have an existing project, do a “cordova platform update ios“.

These issues have been fixed if you are running the latest dev code (slated for 3.5.0).

There are 3 issues related to Cordova iOS 3.4.0 running with Xcode 5.1 (and its command-line tools):

1. CB-6150 – objc_msgSend causes EXC_BAD_ACCESS with plugins on arm64
2. CB-6223 – Build/linker errors
3. ios-sim does not work anymore

For the first issue, you need to look at the two files mentioned in this commit and patch the two lines affected.

For the second issue, you will need to update the Build Settings in your project. The steps are mentioned in the issue and reproduced below:

  1. Select your Project icon
  2. Choose Build Settings.
  3. For “Architectures”, select $ARCHS_STANDARD – Standard architectures (armv7, armv7s, arm64)
  4. For “Valid Architectures”, add “arm64”
  5. Select your CordovaLib.xcodeproj icon
  6. In the Build Settings for the Project (not Target), delete *all* the conditional architecture settings (hover to see the minus sign). This is what is recommended by Apple in their Xcode 5.1 Release Notes.
  7. For “Architectures”, select $ARCHS_STANDARD – Standard architectures (armv7, armv7s, arm64)
  8. For “Valid Architectures”, add “arm64”
  9. Goto 6, but now do it for “Target

For the third issue, you will have to update your ios-sim to version 1.9.0:

npm install -g ios-sim

ios-sim --version

Written by shazron

March 12, 2014 at 5:32 am

Posted in cordova, phonegap, xcode

122 Responses

Subscribe to comments with RSS.

  1. Can you please update this fix with a few screenshots as I could not find the “conditional architecture settings” in step 6 and some visuals might help.

  2. Thanks a lot. 🙂

    wiz

    March 12, 2014 at 6:41 am

  3. Thanks a ton for the clear writeup, I was able to get my app running again on my arm64 devices.

  4. For issue 1, your commit of CDVCommandQueue.m makes some changes to the method names, so you should include the .h file too

  5. Thanks for the heads up. Does this apply to just 3.4.0, or 3.4.0 and older also? Specifically 3.3.0….

    Ben Wilson

    March 12, 2014 at 9:04 pm

    • To all. But take note of Jamie Perkins’ comment that you might need to grab the CDVCommandQueue.h file also if you are not on 3.4.0 already.

      shazron

      March 12, 2014 at 9:10 pm

  6. afer following the instructions ….plugins doesn’t work like urbanairship push notifications ..i guess downgrading is my only option..

    burnick

    March 13, 2014 at 11:16 am

    • “doesn’t work” -> what errors?

      shazron

      March 13, 2014 at 4:48 pm

    • Yep… this is giving me heartburn at the moment too.

      Here’s a SS of the errors I’m seeing.

      http://imgur.com/AUBxilj

      danlbob

      March 17, 2014 at 3:22 pm

      • This looks like you need to add libz.dylib and libsql3.dylib in Link Binary with Libraries in your Build Phase of your Project settings.

        shazron

        March 17, 2014 at 4:27 pm

      • Thanks Sazron! linking libz.daylib and libsqlite3.dylib seems to have solved it.

        ss for anyone who needs it
        http://imgur.com/foyZ9G0

        danlbob

        March 17, 2014 at 4:56 pm

      • Ok, I can build without errors but now I’m getting

        2014-03-17 18:12:23.412 Toolkit[4329:60b] CDVPlugin class CDVDevice (pluginName: Device) does not exist.
        2014-03-17 18:12:23.412 Toolkit[4329:60b] ERROR: Plugin ‘Device’ not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
        2014-03-17 18:12:23.413 Toolkit[4329:60b] -[CDVCommandQueue executePending] [Line 158] FAILED pluginJSON = [
        “Device1038013695”,
        “Device”,
        “getDeviceInfo”,
        [

        ]
        ]

        I’ve removed/added the Device plugin I see it in the config.xml

        any chance you might know what’s up with what’s causing this?

        Thanks again!

        danlbob

        March 18, 2014 at 12:29 am

  7. I’ve updated Xcode to 5.1 and Phonegap to 3.4.0-0.19.7 today. After that, it always creates Xcode project by name of ‘HelloWorld’ under platforms/ios folder. Main folder is with correct name though. It was working correctly before the update. I am creating the project using CLI, and syntax used is same as earlier –

    phonegap create MyApp uk.mindseye.thewoolpackinn MyApp
    cd MyApp
    phonegap local build ios

    I also have Cordova 3.4.0-0.1.2 installed on my system – (just for information).

    Any idea, which file did I mess?

    Prasoon Chaudhary

    March 13, 2014 at 1:23 pm

    • please read as phonegap create MyApp uk.mindseye.myapp MyApp

      Prasoon Chaudhary

      March 13, 2014 at 1:25 pm

    • Sorry, try again with the Cordova CLI.

      shazron

      March 13, 2014 at 4:47 pm

  8. Woohoo, thanks a lot!

    Vincent

    March 13, 2014 at 3:26 pm

  9. Just update the framework already. Tried 1000 times and it doesn’t work, it fails to compile on iphone 5S.

    karikacha

    March 13, 2014 at 10:32 pm

    • I’m sorry – you know we have the Apache process right? It is “updated”, 3.5.0 release will come in a couple of weeks. It *does* work and has been verified.

      shazron

      March 13, 2014 at 10:34 pm

  10. I’m trying to get this to work but no luck so far.

    I have:
    1. Closed Xcode
    2. Cordova build ios
    3. Updated the files mentioned in the commit
    4. Opened project in Xcode and checked settings.

    I fear I’m not setting the right settings in Xcode. Could anyone please have a look at these screenshots to see if I’m missing anything?

    http://imgur.com/JHNP4kt
    http://imgur.com/QbqaKXu
    http://imgur.com/vr1S96p
    http://imgur.com/vozQuBZ

    squrler

    March 14, 2014 at 12:49 pm

    • Just digged some further: it wasn’t completely clear from the screenshot that I had to remove all the architectures. Found this screenshot: http://imgur.com/X3TaR8x and indeed the answer to the questions in the screenshot is YES. Delete them all. After this everything worked again.

      squrler

      March 14, 2014 at 1:40 pm

  11. Lifesaver!

    zgorawski

    March 14, 2014 at 1:59 pm

  12. I’m so screwed. I followed all the steps to patch Xcode 5.1 but it’s now done something weird with the scrolling and i can’t vertically scroll at all (many of the views contain text that scrolls down). Also my iPad device is now not recognised in Xcode 5.1 – it just shows up as iOS Device.

    And Apple has made it impossible to retrograde.

    Is there any word when Cordova/Phonegap 3.5 will be released?

    Coolwebs (@AusCoolwebs)

    March 14, 2014 at 2:49 pm

    • Oh BTW, I stupidly upgraded my testing iPad device to iOS 7.1. That’s what I was referring to when I said Apple has made impossible to retrograde versions.

      Coolwebs (@AusCoolwebs)

      March 14, 2014 at 2:50 pm

  13. […] that you can follow these directions from Shazron to ensure you have XCode configured properly. It’s very important you remove ALL […]

    • Thanks, weird thing is, the issue isn’t happening anymore. The device was tethered when i was having the issues. Gotta stop working such late nights….

      Coolwebs (@AusCoolwebs)

      March 14, 2014 at 9:44 pm

  14. I implemented all the changes as suggested, but it returned the following error as opposed to the other 12 ones:
    ThisApp/platforms/ios/CordovaLib/Classes/CDVCommandDelegateImpl.m:64:20: No visible @interface for ‘CDVCommandQueue’ declares the selector ‘enqueCommandBatch:’

    Any ideas?

    Brian

    March 14, 2014 at 9:06 pm

    • See my post — I have a line with a link –> “(and this one also, if you are not on 3.4.0)”

      shazron

      March 14, 2014 at 10:24 pm

  15. Shazron, that’s the strange thing, I took that into account and copied CDVCommandQueue.h over as well, so 3 files in total have been copied into the Classes folder.

    I’m running Cordova 3.1.0 and here are three links to my architecture setup (app, Cordova project and target):


    Any ideas?

    Brian

    March 15, 2014 at 2:00 pm

    • Hmm, I didn’t test that far back. I think the best thing is to revert the changes, and only patch the two lines affected in the commit.

      shazron

      March 15, 2014 at 5:43 pm

      • Can you point me in the right direction to see which two lines changed… this is all a bit confusing 🙂

        QbanGmer (@QbanGmer)

        March 18, 2014 at 1:04 pm

      • See my update on the post with the link in the line: “It’s probably safest if you just patch the two lines affected in the commit if you are having trouble.”

        shazron

        March 18, 2014 at 10:03 pm

      • Nevermind, I was able to figure it out… however getting a lot more errors now lol. I think I will have to update to 3.4.0 but I had some plugins that had issues with .4. Oh well…

        QbanGmer (@QbanGmer)

        March 18, 2014 at 1:20 pm

      • One more thing… I’m able to run the app int he iOS simulator (non 64-bit). Nothing other than that works. Any other ideas? I deleted everything under architecture and added arm64 to the valid architecture on both places.

        QbanGmer (@QbanGmer)

        March 18, 2014 at 1:24 pm

      • and last but not least… It seemed that the GAPlugin was to blame. I removed the plugin and it works with a few warnings here and there about Value Conversion issues. Now I just gotta find a good GA plugin that is arm64 ready I guess.

        QbanGmer (@QbanGmer)

        March 18, 2014 at 1:46 pm

  16. Yep, that worked.

    Thank you very much!

    Brian

    March 16, 2014 at 4:16 pm

  17. Thank for your 2nd solution. That solved my problem!

    Anyway, I decided to create a step-by-step video for this solution. All thank credited to you! Please check it out: http://www.youtube.com/watch?v=EIkJAKcz8DE

    • Helllo Man thanks for your video~!!!!

      Juan

      May 16, 2014 at 4:34 pm

  18. I’m getting this error even though I updated the three files mentioned.

    “/Users/—/—/platforms/ios/CordovaLib/Classes/CDVCommandDelegateImpl.m:64:20: No visible @interface for ‘CDVCommandQueue’ declares the selector ‘enqueCommandBatch:'”

    QbanGmer (@QbanGmer)

    March 17, 2014 at 9:44 pm

  19. Thanks , it’s work for me

    aqeelhashem

    March 18, 2014 at 9:05 am

  20. So I updated to 3.4 made the necessary changes and now I’m getting the following warning messages:
    Implicit conversion loses integer precision: ‘File Name’ (aka ‘unsigned long’) to ‘int’

    I think this is causing my push notifications not to work.

    Anyone else run into this?

    Brian

    March 20, 2014 at 11:27 am

  21. I’m running Cordova 3.4.0 in Xcode 5.0.2, i have used inappbrowser to redirect into Flickr login URL but it did not get load it will always call “iabLoadError” event. I have install inappbrowser plugin using terminal.
    Thanks in advance.

    Sumit

    March 20, 2014 at 12:04 pm

  22. I got all these fixes and it finally compiles (still several warnings) but now it doesn’t run. I do not know what happened but I don’t even seem to have the same simulators I did before I updated xcode. But I tried running on my iPhone 5 (not 5s, has latest iOS). It shows the splash screen and then a blank white screen. In Xcode no errors but it seems to show it in debug mode I think. ? Not sure. Anyone have issues with running??

    Tracy

    March 20, 2014 at 1:05 pm

  23. The app crashes. The main looks simple like this:

    int main(int argc, char* argv[])
    {
    @autoreleasepool {
    int retVal = UIApplicationMain(argc, argv, nil, @”AppDelegate”);
    return retVal;
    }
    }

    Tracy

    March 20, 2014 at 6:55 pm

    • Set an exception breakpoint to see exactly where. The patches as outlined above (item 1) are to fix the crashes under arm64

      shazron

      March 20, 2014 at 6:58 pm

      • Thanks. Narrowed it down to CDVCommandDelegateImpl.m line 64

        [_commandQueue enqueCommandBatch:commandsJSON];

        When I copied the three files, I had issues with enqueCommandBatch being spelled enqueueCommandBatch in some places. I’m using Phone Gap 3.3.0-0.19.6.

        Haven’t upgraded to 3.4.0 yet. I guess I should try that first?

        Tracy

        March 20, 2014 at 7:07 pm

      • Yeah if you read the comments people have the same problem (I only tested one version back). Read the blog post again, I added the line “It’s probably safest if you just patch the two lines affected in the commit if you are having trouble.”, and do that (link in the sentence to the commit).

        shazron

        March 20, 2014 at 7:09 pm

      • Ok thank you. Do you know when Phone Gap 3.5.0 will come out and I assume it will include more fixes?

        Tracy

        March 20, 2014 at 7:14 pm

      • No date yet, my guess in 2 weeks.

        shazron

        March 20, 2014 at 7:15 pm

  24. I have upgraded Xcode to 5.1 & iPhone to 7.1 OS & follow the above 3 steps for cordova 3.4.0, through CLI i have created a project & install a inappbrowser plugin as my app uses Flickr API authentication

    iabRef = window.open(‘https://www.flickr.com/auth-721XXXXXXXX1000’, ‘_blank’, ‘ignoresslerror=yes’, ‘location=yes clearsessioncache=yes’,’toolbar=yes’);

    It shows ‘load error’ in inappbrowser. Through debugger I have found the issue is related SSL URL so i used this parameter ‘ignoresslerror=yes’ but still it doesn’t work. The html document uses UTF-8 charset

    In iPhone 7.0.3 the above code works fine & Flickr login page is visible in inappbrowser. How can I make it work for OS 7.1??

    Btw the android version (cordova 3.4.0) listed here:
    https://play.google.com/store/apps/details?id=com.FLKR.PhotoFun

    Sumit

    March 21, 2014 at 8:56 am

  25. Hi Shazron

    I have done the steps and it still doesn’t work. (Build on 64-bit)
    Other Builds work without problem!
    I’ve changed the 2 files and commented out previous lines.

    Changed Files:
    – CDVCommandQueue.m (line 198) –> http://i.imgur.com/5MAFIKY.png
    – CDVViewController.m (line 701) –> http://i.imgur.com/ngx3V3f.png

    My Project settings:
    Project icon Build Settings –> http://i.imgur.com/ilnXnFk.png
    CordovaLib.xcodeproj icon Build Settings –> http://i.imgur.com/tp9SxMA.png

    Errors on 64-bit build:

    My environment:
    Cordova 3.4.0-0.1.0 and Xcode 5.1 (5B130a)

    Build through the cordova-cli works, but I guess it doesn’t necessarily builds to a 64-bit
    architecture, it just builds. I have this problem when trying to build on a 64-bit simulator.
    No problems occur when building to other devices.

    Thank you!

    Martin Bing

    March 21, 2014 at 9:03 am

  26. I am able to get a project to build, after making the changes to the Architectures and adding arm64 and replacing the 2 classes CDVCommandQueue.m and CVViewController.m. But then if I try adding any plugin such as the camera plugin then doing “cordova build ios” fails.

    $ cordova build ios
    this works …. but then doing:

    $ cordova plugin add org.apache.cordova.camera
    …and then doing the build again:
    $ cordova build ios
    …causes the following error among other complaints but this seems to be the crucial thing to mention:

    clang: error: no such file or directory: ‘/Users/dnassler/dev/phonegap/expX01/platforms/ios/expX01/Plugins/org.apache.cordova.camera/CDVCamera.m’

    So if I look for the CDVCamera.m file that is referred above I notice that the file is not there but instead is deeper down in:
    ‘/Users/dnassler/dev/phonegap/expX01/platforms/ios/expX01/Plugins/org.apache.cordova.camera/src/ios/CDVCamera.m’

    what is going on?

    Derek

    March 26, 2014 at 4:32 pm

    • Not sure, seems like a bad plugin install — and unrelated to the issue discussed in this blog post.

      shazron

      March 26, 2014 at 4:52 pm

  27. Why isn’t the Cordova team releasing an immediate fix for these issues? Is the fact that the latest versions of Cordova and Xcode do not work together not a serious enough issue to warrant a fix sooner than 2-3 weeks or later?

    The response to this is irresponsible, borderline disrespectful to anyone who uses Cordova in a professional capacity. The ASF and Cordova team want us to take the project seriously, right? Showstopper bugs like this should be resolved in a matter of hours, not weeks.

    samuelf

    March 26, 2014 at 8:27 pm

    • I’ve just tagged 3.4.1 in the Apache repo for iOS. It should be tied in to the Cordova CLI Tools Release next week as the default iOS version downloaded.

      shazron

      March 28, 2014 at 11:40 pm

    • 3.4.1 is out now.

      shazron

      April 10, 2014 at 1:20 am

  28. Looks like there’s still not a new Cordova point release to patch and fix this? Currently you can’t install a base Cordova and submit an app to the app store for release. Is that not a serious enough bug to warrant a release?

    jough

    March 27, 2014 at 3:08 pm

    • I’ve just tagged 3.4.1 in the Apache repo for iOS. It should be tied in to the Cordova CLI Tools Release next week as the default iOS version downloaded.

      shazron

      March 28, 2014 at 11:40 pm

    • 3.4.1 is out now.

      shazron

      April 10, 2014 at 1:19 am

  29. Once I got this workaround working, cordova build ios is compiling much much faster. Is it b/c we’re no longer building against i386 architecture?

    seth

    March 27, 2014 at 7:26 pm

  30. I tried installing the dev version, following the instructions ‘Install from master’ in the readme, but I get this error when I run npm install in cordova-cli/:

    npm ERR! Error: version not found: 0.21.0 : plugman/0.21.0

    I can’t seem to find any information on how to fix this. Thanks!

    Marc

    April 4, 2014 at 3:24 am

    • For anyone that has come across this issue, changing the version from 0.21.0 to 0.20.2 for both package.json and npm-shrinkwrap.json resolved the issue for me.

      Marc

      April 4, 2014 at 3:32 am

  31. Three issues:

    – why does http://phonegap.com/install/ say to install phonegap, but link to docs that say to install cordova? very confusing.

    – after installing phonegap 3.4 for ios, should we put a new index.html into www or Staging/www? Why is that Staging directory even showing up in the xcode project?

    – how do we hide the time/battery/etc from the top of the screen for ios? none of the regular options seem to work.

    breville1011

    April 6, 2014 at 1:04 am

    • – sorry, this is a problem in the PhoneGap docs, which are based off the Cordova docs. This issue is known. https://github.com/phonegap/phonegap-docs/issues
      – if you are using the Cordova CLI, you should never bother with loading the project in Xcode. If you decide to do so, you should update the files in Staging/www if you never bother with “cordova build” and the common www folder in the root. The www in the root corresponds to the root folder of the project itself, this is the common www for all platforms.
      – Do you mean hiding the statusbar? Try the statusbar plugin org.apache.cordova.statusbar.

      shazron

      April 7, 2014 at 11:03 pm

  32. Any idea when 3.5 will be released? Urbanairship are waiting on it to br released before they update their plugin which I am in desperate need of as it is broken in 3.4.

    Gary Sewell

    April 8, 2014 at 7:56 am

    • 3.5 won’t be released anytime soon, however 3.4.1 (iOS only) will be released tomorrow, when the 24 hour voting period ends. This will be in the form of a new Cordova CLI version — adding the ios platform will then install iOS 3.4.1.

      shazron

      April 8, 2014 at 8:05 am

    • 3.5 won’t be released anytime soon, however 3.4.1 (iOS only) will be released tomorrow, when the 24 hour voting period ends. This will be in the form of a new Cordova CLI version — adding the ios platform will then install iOS 3.4.1.

      shazron

      April 8, 2014 at 8:05 am

    • Forgot to mention, 3.4.1 will incorporate all the changes mentioned in this blog post.

      shazron

      April 8, 2014 at 8:06 am

      • So from my command line, starting April 9 (sometime), I’ll be able to simply “npm install -g cordova” and it will install 3.4.1 and everything necessary to continue Cordova development without the need for any work-arounds? I can wait if it’s coming out sometime later today, but I want to confirm there are no extra steps necessary. If so, I’ll be here “refreshing”, waiting for 3.4.1…

        Paul K

        April 9, 2014 at 6:03 pm

      • Well, it will install the latest Cordova CLI tools with 3.4.1 iOS as the default when you “cordova platform ios”. If you have an existing project, you can do a “cordova platform check”, then “cordova platform update ios”

        shazron

        April 9, 2014 at 6:14 pm

      • Thanks for the info. Got 3.4.1 installed tonight and my project rebuilt and running on my iPhone again.

        Paul K

        April 10, 2014 at 3:38 am

      • When you say it incorporates the changes mentioned in this blog post, in a new project I still need to remove all the conditional architectures.

        Is there something going wrong there?

        Henry

        April 14, 2014 at 7:04 am

      • No, it builds doesn’t it?

        shazron

        April 14, 2014 at 3:06 pm

      • It does build once the conditional architectures are manually removed (for new and upgraded projects). I thought the patch may have removed that additional step, that’s all. Sorry for the misunderstanding.

        Henry

        April 16, 2014 at 2:35 am

  33. I am already on Cordova 3.4.1-0.1.0
    In Xcode, after this new release my original 16 built warnings now reduced to 3 warnings:
    CDVNotification.m
    – Value Conversion Issue
    Implicit Conversion loses Integer
    Precision: ‘NSUInteger’ (aka.
    – Value Conversion Issue
    Implicit conversion loses integer
    precision: ‘long’ to ‘int’
    – Semantic Issue
    Cast to ‘void*’ from smaller integer type ‘int’

    Is there any other patches available?
    Will these warnings prevent me from submitting my app to Apple?

    etgohomes

    April 14, 2014 at 10:29 pm

    • It’s fine.

      shazron

      April 14, 2014 at 10:51 pm

      • Will you please fix this in 3.4.2 or 3.5?

        etgohomes

        April 14, 2014 at 11:03 pm

      • No, those are plugins, and are not part of a platform release. The plugins are released on their own schedule, and the new versions should be released sometime in the next couple of weeks.

        shazron

        April 15, 2014 at 12:24 am

  34. With the upgrade of 3.4.1 adding the `org.apache.cordova.network-information` plugin is still breaking the linker (not valid architecture i386 / arm7s)
    How can I fix it?

    Laurentiu Macovei

    April 15, 2014 at 12:17 am

    • I just created a new project using CLI 3.4.1 and added that plugin, it built fine? What is the error?

      shazron

      April 15, 2014 at 12:39 am

      • You needed to create it with 3.4.0 and then upgrade to 3.4.1 and install the plugin.

        Laurentiu Macovei

        April 15, 2014 at 8:56 am

  35. Found it: I had to add ‘SystemConfiguration.framework’ in ‘Build Phases > Link Binary With Libraries’

    Laurentiu Macovei

    April 15, 2014 at 8:55 am

  36. I need help. After updating xcode to 3.1.1 I can no more run my app on my iPhone, I keep on getting this error:
    Check dependencies
    Code Sign error: No provisioning profiles found: No non–expired provisioning profiles were found.
    CodeSign error: code signing is required for product type ‘Application’ in SDK ‘iOS 7.1’

    In xcode I still can see my valid provisioning profile, can you help me please?

    ing.

    April 15, 2014 at 1:05 pm

    • This is outside the scope of Cordova. Peruse the docs at your iOS Developer Portal.

      shazron

      April 16, 2014 at 12:08 am

  37. Shazron I have a weird error that seems related to this. I can build for iPad running 7.1 and for all emulators yet when I try to archive I receive this error:

    Undefined symbols for architecture arm64:
    “_OBJC_CLASS_$_GAI”, referenced from:
    objc-class-ref in GAPlugin.o
    ld: symbol(s) not found for architecture arm64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    Mike

    April 15, 2014 at 10:54 pm

    • The GA plugin you are using does not have a 64-bit slice in its library binary (.a). Consult your plugin author to upgrade the GA Plugin they are wrapping to version 3 of the GA iOS SDK.

      shazron

      April 16, 2014 at 12:09 am

  38. Any ETA on release of Cordova v3.5.0? If it’s only a few days away, I’d rather wait than downgrade Xcode or try temporary workaround. Thanks!

    Travis

    April 16, 2014 at 7:31 pm

  39. […] Xcode 5.1 and Cordova iOS – Shazron’s Cordova (aka PhoneGap) Blog […]

  40. Thanks the maker for 3.4.1 because I was about to kill myself w/all the XCode issues with 3.4!!

  41. Hello Shazron,

    I’ve just upgraded to 3.4.1-0.1.0 and now iOS build is failing with many duplicate symbols errors:
    http://pastebin.com/zdp9GaTp

    This happens on a newly created example app

    Avi Vaisenberger

    April 23, 2014 at 11:43 am

  42. Hello Shazron,

    * Running with Xcode 5.1.1

    I just updated to 3.4.1-0.1.0, and now I fail to build a sample iOS project.
    Failing with many duplicate symbols in libcordova.a
    http://pastebin.com/zdp9GaTp

    Thing is, I tried downgrading to 3.4.0-0.1.3 and now same error occurs

    Could you help in resolving?

    avaisenb

    April 23, 2014 at 12:49 pm

    • Package up that newly created project, and upload it somewhere (Google Drive/OneDrive/Dropbox) and I can take a look.

      shazron

      April 23, 2014 at 7:20 pm

      • Thanks for the response,

        Here is a more detailed output, together with version details of my installed Java, xcodebuild and Cordova:
        http://pastebin.com/cA4HP2xL

        And here’s the package:
        https://www.dropbox.com/s/d4nikkp5jijqwgk/HelloWorld.tar.gz

        Your help is highly appreciated, thanks in advance

        avaisenb

        April 24, 2014 at 8:24 am

      • Hmm. I have the same cordova version, and ran “cordova build” on the project I downloaded from you, and I had a “Build Succeeded”.

        shazron

        April 24, 2014 at 10:47 pm

      • Any suggestions to resolve? What can I check?
        I tried downgrading to 3.4.0-0.1.0 with same results.

        avaisenb

        April 24, 2014 at 10:52 pm

  43. By the way, if that gives any clue, I just loaded the project created in Xcode and it is building and running fine. Still when using the CLI running “cordova build” same issues occur

    avaisenb

    April 24, 2014 at 11:34 pm

    • Another thing I haven’t mentioned is that I upgraded from Xcode 5.1 & Cordova 3.4.0 after applying the patches mentioned above

      avaisenb

      April 24, 2014 at 11:43 pm

      • Found a workaround that resolves this issue, perhaps that could lead to finding the cause:
        1. I ran the app on the simulator via Xcode
        2. I copied HelloWorld.app from ~/Library/Application Support/iPhone Simulator/ … /Helloworld.app to HelloWorld/platforms/ios/build/emulator (Ran over the existing one)

        Issues are gone, cordova build succeeds.

        I then tried narrowing down the differences, and found out that the simulator folder had “HelloWorld” file, whereas the emulator folder did not.
        I started a new project (which failed to build), then copied this file from the simulator folder and that solved the issue.

        Avis-MacBook-Pro:HelloWorld avivais$ file ~/Library/Application\ Support/iPhone\ Simulator/7.1/Applications/4B9DE4AD-0EC1-4685-BCF7-F060151F8655/HelloWorld.app/HelloWorld
        

        /Users/avivais/Library/Application Support/iPhone Simulator/7.1/Applications/4B9DE4AD-0EC1-4685-BCF7-F060151F8655/HelloWorld.app/HelloWorld: Mach-O executable i386

        avaisenb

        April 25, 2014 at 3:21 am

  44. Hi All, I’ve been running into all of these problems as well…the fixes “work” insofar as I’m able to build and archive successfully, but even the default/sample phonegap app crashes on launch on my ipad (ios 7.1). Any ideas on why this might be?

    William

    April 28, 2014 at 1:27 am

    • Probably because the patch was not applied properly. Try upgrading to 3.5.0

      shazron

      July 8, 2014 at 6:00 pm

  45. Hi I am working on phonegap 3.5.0-0.2.4. This applcation is working only for iphone5(7.1.1). What I have to make to use for lower versions of iphone.

    veena

    June 18, 2014 at 4:58 am

    • Not sure what you mean exactly, it should work for iOS 6 as well.

      shazron

      July 8, 2014 at 5:55 pm

  46. Hi All having serious issues with phonegap 2.6 since I upgraded please please can someone help?

    Anthony ORourke

    July 8, 2014 at 11:24 pm

  47. Can someone please also tell me what I version of phonegap I need to run with xcode 5.1 build is failing on phonegap 2.6. Sorry newbie here ;(

    Anthony ORourke

    July 8, 2014 at 11:27 pm

  48. Hi. I downloaded Cordova 3.5.0-0.2.4. But I am still getting the arm64 error for Google analytics – GAPlugin only. I see that all the Architecture and Valid architecture settings are correct by default. What could be the problem..
    Xcode: 5.1.1. iOS SDK: 7.1
    error:
    Undefined symbols for architecture arm64:
    “_OBJC_CLASS_$_GAI”, referenced from:
    objc-class-ref in GAPlugin.o
    ld: symbol(s) not found for architecture arm64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    Anurag Kalra

    July 18, 2014 at 2:55 pm

    • Ok, I was able to proceed by doing this: In ‘Build settings’ > ‘Build Active Architecture only’. I toggled Release to Yes. (for debug it was already yes). Will see if the plugin works correctly in production.

      Anurag Kalra

      July 18, 2014 at 3:12 pm

      • Thanks, toggling release to yes worked for me, though I had to export the archive from xcode 6.3.2 and upload to iTunes using the application loader 3.0

        Kevin Stevens

        June 17, 2015 at 8:45 pm


Leave a reply to Anurag Kalra Cancel reply