Recent build failures on OSX - new Xcode issues (ios-sim and lldb)?


#1

Hello All

I’m new to Ionic (and this kind of dev in general). Anyway…

The Ionic build (“ionic run iso”) started to misbehave yesterday and I think it is related to the new version of Xcode to which I upgraded to yesterday as well.

A couple of things broke: sim-ios and lldb (fruitstrap)

I reported sim-ios here to the owner of the code https://github.com/phonegap/ios-sim/issues/72 so I think it is ‘fixed’ now.

But fruitstrap still broken however:

Here is the tail end of the terminal output:

[ 45%] Copying /Users/fernando/GoogleDrive/Projects/WEB Projerun
(lldb) run
Executing commands in '/tmp/fruitstrap-lldb-prep-cmds-'.
(lldb)      platform select remote-ios --sysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/*
  Platform: remote-ios
 Connected: no
  SDK Path: "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/*"
(lldb)      target create "/Users/fernando/GoogleDrive/Projects/WEB Projects/Angular-Ionic/ionic-weather/platforms/ios/build/device/IonicWeather.app"
Current executable set to '/Users/fernando/GoogleDrive/Projects/WEB Projects/Angular-Ionic/ionic-weather/platforms/ios/build/device/IonicWeather.app' (armv7).
(lldb)      script fruitstrap_device_app="/private/var/mobile/Applications/4B796264-0191-4F0C-A8D2-1A4CAFDB6305/IonicWeather.app"
(lldb)      script fruitstrap_connect_url="connect://127.0.0.1:12345"
(lldb)      script fruitstrap_handle_command="command script add -s asynchronous -f fruitstrap_.fsrun_command run"
(lldb)      command script import "/tmp/fruitstrap_.py"
error: the platform is not currently connected
(lldb) 

The actual app loads just fine into the device (iPhone 5s) - but lldb now complains (as you can see above).

This looks like a Cordova/Phonegap issue(?). I reported it here https://github.com/phonegap/phonegap-cli/issues/267

Cheers.

f


#2

Update to the latest ios-sim - it’s fixed as of early this morning.

To fix Xcode building for iOS simulator and an iPhone 5S (other devices should work) you have to manually add arm64 and x86_64 architectures to the CordovaLib.xcodeproj sub-project of your root project in Xcode. It’s a pain.

Select CordovaLib > Folder icon > Build Settings and under the Architectures you have to add “x86_64” to all of the simulators and “arm64” (or just select "Standard architectures (armv7, armv7s, arm64) to all SDKs.

This is fixed in Cordova 3.5 apparently (which hasn’t yet been released) via this bug report:

https://issues.apache.org/jira/browse/CB-4863

Having said all of that, I’m seeing crashes on my iPhone 5S that I still haven’t solved. Awesome.


#3

You mind sharing a screenshot of that? I can’t seem to get there in my project.


#4

@Calendee - here: http://i.imgur.com/XCwkdTi.png

Although I’m still getting a lldb error when trying to build and run on an iPhone 5S (the 64-bit simulator works, as does building to any other iOS or Android device).


#5

Thanks.

For everyone : http://shazronatadobe.wordpress.com/2014/03/12/xcode-5-1-and-cordova-ios/


#6

Mine is still not working. I updated the sdks to use the “Standard Architectures.” “cordova run ios” loads all the way to 100% but then lldb error still occurs

[  0%] Looking up developer disk image
[ 90%] Mounting developer disk image
[ 95%] Developer disk image already mounted
[100%] Connecting to remote debug server
-------------------------
(lldb) Executing commands in '/tmp/fruitstrap-lldb-prep-cmds-'.
(lldb)      platform select remote-ios --sysroot          /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/*
Platform: remote-ios
Connected: no
SDK Path: "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/*"
(lldb)      target create "/Users/Achilles/Desktop/dev/coride-ionic/platforms/ios/build/device/Coride.co.app" 
Current executable set to '/Users/Achilles/Desktop/dev/coride-ionic/platforms/ios/build/device/Coride.co.app' (armv7).
(lldb)      script fruitstrap_device_app="/private/var/mobile/Applications/F16F5310-03AC-4F96-9C6B-D774D301E467/Coride.co.app"
(lldb)      script fruitstrap_connect_url="connect://127.0.0.1:12345"
(lldb)      script fruitstrap_handle_command="command script add -s asynchronous -f fruitstrap_.fsrun_command run"
(lldb)      command script import "/tmp/fruitstrap_.py"
run
error: the platform is not currently connected

#7

What version of Cordova are you using? Update to the newest and then do:

> cordova platform update ios in your app’s root directory.


#8

Thanks that worked!!


#9

I take it back it did not work. BUT if I delete the app from the phone then run

cordova run ios --device

it still errors out with the fruitstrap error, but the app loads onto the phone with seemingly no problems.