Xcode 5.0.2 error after upgrading to Rhodes 4.0.0

Hi,

After upgrading to RMS 4.0 and Rhodes 4.0.0 unable to build in xcode 5.02.

Has anyone seen this error "undefined symbols for architecture i386"

I already applied changes to use only armv6 and armv7, still getting error

Thanks,

Screen Shot 2014-01-10 at 11.37.18 AM.png

Jon Tara
Since you are building for

Since you are building for the simulator, ARM settings are irrelevant. The iPhone simulator does not simulate the ARM processor. It uses binaries built for Intel architecture.

Maybe you aren't using the right simulator library/simulator?

When you build for iOS devices, you build against a single library for all versions of iOS.

When you build for iOS simulator, you build against a version-specific library. Are you, for example, trying to use an iOS-7-only method but building with an iOS6 simulator library?

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Wellington Oliveira
Hi Shri, i got the same error

Hi Shri, i got the same error, the solution is simple:

iphone:

   sdk: iphonesimulator7.0 - delete this line in your build.yml

After this change, clean your project and go to in rhostudio: rhomobile -> production build -> iphone.

Check this thread:

Edit:

  • If you remove the line, builds only form arm, for device.
  • if you keep the line build for ios simulator.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Shri Potdar
Hi,Actually I have following

Hi,

Actually I have following line in my build.yml

     sdk: iphoneos7.0

But removing it also did not help. I still get following error.

If I do ARCHIVE, it builds but can not upload to APP store.

Screen Shot 2014-01-13 at 2.12.16 PM.png

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Wellington Oliveira
Hi, you removed the line and

Hi, you removed the line and tried to run in simulator?

If you tried this, the app not build in simulator, but build for real device and archive.

Put a print screen of the build settings and paste your build.yml.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Jon Tara
^ This is wrong. You *need*

^ This is wrong. You *need* the line:

sdk: iphonesimulator7.0

This should replace any line like:

sdk:iphoneos7.0

When you build for simulator, you are building for i386. ARM settings would be irrelevant.

When you build for OS, you build for ARM. It's impossible to get messages about i38§ libraries if you build for OS.

You need to have installed the simulator and simulator libraries for the version you want to test on. Build for simulator works differently than build for hardware. You need to build for a specific simulator version. So, if you wanted to test on 6.0:

sdk: iphonesimulator6.0

Your hardware builds should always target the most recent version, though. The application will still work on earlier supported versions.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Wellington Oliveira
The line is optional for arm

The line is optional for arm build, my project builds fine without this line. Have an official documentation about this?

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Log in to post comments