xcode 5.1: libCordova.a architecture problems

痞子三分冷 提交于 2019-11-27 10:27:01
inorganik

@Shazron posted the fix on the Apache JIRA - he notes that the fix will be released as part of Cordova 3.5:

  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 the conditional architecture settings (hover to see the minus sign)
  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"

Here's a link to Shazron's complete writeup of this problem: http://shazronatadobe.wordpress.com/2014/03/12/xcode-5-1-and-cordova-ios/

It is now released and the short version of what to do is:

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

Another approach that works:

  1. Click on your project at the top of the project navigator (not the Cordova.lib subproject).
  2. In the editor pane, select the project (not the target), select the Build Settings editor tab, and click the All and Levels buttons.
  3. Expand the Architectures group if necessary and find the Architectures row under it.
  4. The first (resolved) and third (iOS Default) columns in the Architecture row will say Standard; the second (project) column will be blank.
  5. Click on the blank second column to bring up a box that will have one line, “$(ARCHS_STANDARD)”.
  6. Double-click that line to make it editable, then change it to read “$(ARCHS_STANDARD_32_BIT)”.
  7. Click outside the box to confirm your change. Now the first and second boxes will just have a $ in them.
  8. Now you should be able to build.

Downgrade Xcode 5.1 to 5.0.2 worked for me, I could not wait for an official Cordova 3.5 release with the fix.

You can get a copy of the previous version here: https://developer.apple.com/downloads/index.action

They just released a new version 3.4.1 that address this issues.

Therefore I update a single file to point to the TAG 3.4.1:

/usr/local/lib/node_modules/cordova/platforms.js

line 24 from:

version: '3.4.0'

to:

version: '3.4.1'

Then you remove the iOS folder in your project and run:

cordova platform add ios

This will download the new template based on 3.4.1 with all the patches.

Follow the instructions on this video: https://www.youtube.com/watch?v=EIkJAKcz8DE

Just add arm64 in your projects valid architectures and remove all the conditional architecture of Cordova's project.

I was able to get my app to build in XCode 5.1 by first building the CordovaLib project separately from within XCode and then building my project.

You just have to add the arm64 architecture on every statement and building setting, i mean, on your current project, and on the cordova project.

On your project:

  • Architectures
  • Valid architectures

on Cordova:

  • Architectures
  • debug
  • release
  • Any ios SDK

AND THE MOST IMPORTANT

-Valid architectures at cordova build settings

This configuration generates a lot of warnings, but is just change the "%d" for "%ld" at all lines that the warning says.

Grab the xcode icon and drag it to the bin!

Go here https://developer.apple.com/downloads/index.action?name=Xcode and download 5.0.2 and install.

After installing, run xcode, then try the emulator from terminal.

Worked for me, annoying though!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!