Rhomobile 5.0.38 and Xcode7

// Expert user has replied.
L Lisa Tassone 3 years 6 months ago
1 4 0

Hi there,

Has anyone been able to build on xcode7 for IOS9? I'm getting this error when trying to build from xcode:
rake aborted!
cannot load such file -- rest_client
/Users/lisatassone/.rvm/gems/ruby-1.9.3-p429/gems/rhodes-5.0.38/lib/build/rhohub.rb:3:in `'
/Users/lisatassone/.rvm/gems/ruby-1.9.3-p429/gems/rhodes-5.0.38/Rakefile:85:in `'
(See full trace by running task with --trace)
Command /bin/sh failed with exit code 1

If I try building via cli, I get this:

ld: '/Users/lisatassone/workspace/simproconnectv3/project/iphone/build/rhorunner.build/Release-iphoneos/rhorunner.build/libSignature.a(signature_api_init.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
==================== ERROR! ====================
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ld build/Connect.build/Release-iphoneos/rhorunner.build/Objects-normal/arm64/rhorunner normal arm64
    cd /Users/lisatassone/workspace/simproconnectv3/project/iphone
    export IPHONEOS_DEPLOYMENT_TARGET=6.0
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/lisatassone/.rvm/gems/ruby-1.9.3-p429/bin:/Users/lisatassone/.rvm/gems/ruby-1.9.3-p429@global/bin:/Users/lisatassone/.rvm/rubies/ruby-1.9.3-p429/bin:/Users/lisatassone/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/npm/"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/lisatassone/workspace/simproconnectv3/project/iphone/build/Release-iphoneos -L/Users/lisatassone/workspace/simproconnectv3/project/iphone -F/Users/lisatassone/workspace/simproconnectv3/project/iphone/build/Release-iphoneos -filelist /Users/lisatassone/workspace/simproconnectv3/project/iphone/build/Connect.build/Release-iphoneos/rhorunner.build/Objects-normal/arm64/rhorunner.LinkFileList -miphoneos-version-min=6.0 -dead_strip -fembed-bitcode-marker -all_load -ObjC -filelist rhodeslibs.txt -fobjc-link-runtime -framework ExternalAccessory /Users/lisatassone/workspace/simproconnectv3/project/iphone/Rhodes/build/Release-iphoneos/libRhodes.a -lstdc++ -framework MediaPlayer -framework MobileCoreServices -framework CoreMotion -framework CoreMedia -framework CoreVideo -liconv -framework Foundation -framework UIKit -framework CoreFoundation -framework CoreLocation -lsqlite3.0 -framework AddressBook -framework SystemConfiguration -framework AudioToolbox -framework AVFoundation -framework CoreGraphics -lz -framework MapKit -framework CFNetwork -framework GameKit -framework Security -framework QuartzCore -framework EventKit -Xlinker -dependency_info -Xlinker /Users/lisatassone/workspace/simproconnectv3/project/iphone/build/Connect.build/Release-iphoneos/rhorunner.build/Objects-normal/arm64/rhorunner_dependency_info.dat -o /Users/lisatassone/workspace/simproconnectv3/project/iphone/build/Connect.build/Release-iphoneos/rhorunner.build/Objects-normal/arm64/rhorunner

** BUILD FAILED **

The following build commands failed:
  Ld build/Connect.build/Release-iphoneos/rhorunner.build/Objects-normal/armv7/rhorunner normal armv7
(1 failure)
rake aborted!
Command '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild' with args 'build -target rhorunner -configuration Release -sdk iphoneos9.0 -project Connect.xcodeproj' failed with code 65

The same project worked on xcode 6.4. Things I have tried:

Enabling/disabling bitcode (don't know if that even an issue).
Upgrading to 5.2.2 which I can't because the 5.2.2 gem won't install.  I have even tried building the gem from git but it won't build (missing manifest)
gem install rest_client
recreating xcode project

Please Register or Login to post a reply

4 Replies

L Lisa Tassone

Thanks for the info/tips everyone.  I'll keep my eye out for updates to support xcode7/ios9.
@Bhakta Satapathy I don't seem to have those options in the Info.plist so I can't test if that works :/

J Jon Tara

As for rest_client, just add it to the GemSet that you use for your Rhodes version (you DO use a GemSet for each version, right? ) manually.

    gem install rest_client

I gather this is used for license validation. I guess it is missing from the Gem dependencies, but must be installed when you install the Suite. (I never use the suite, just the Gem...)

Also, if you use Ruby 2.x, the Gem dependencies put an upper constraint on the version of JSON used, and it won't be satisfied for Ruby 2.x. And, so, that's one of the little changes I make on my Rhodes fork. (I will add rest_client as well now, it's an omission because I forget that I installed it manually.)

I doubt this gets you iOS9/XCode7, though, because based on my review of checkins in the Tau repo, I see that it took a lot of code change for them to support it!

Since it is open source, Zebra can adopt that code, hint, hint!

J Jon Tara

Even 5.2.2 doesn't support iOS9/XCode 7.

As far as building/installing the Gem, I do so routinely, but I make some light changes first. My fork might be useful. The small changes are described in (closed) Issues #1,2,3 on Github for the fork:

watusi/rhodes at watusi-5-2-stable · GitHub

But I wouldn't expect it to work with iOS9/XCode 7, since I see Tau Platform (Rhodes fork) had to make a LOT of changes for that. Maybe Rhodes will adopt those changes?

tauplatform/tau · GitHub

Not sure exactly what direction Tau Platform is going, but at this point, it is essentially identical with 5.2.2 with iOS9/XCode7 support. I haven't tried it yet, though.

B Bhakta Ranjan Satapathy

Hello Lisa,
Rhomobile does not officially support for IOS9. The support will be available in upcoming release.
But to build and run your application using Rhomobile 5.0.38, follow the below steps.

1: Info.plist changes.

NSAppTransportSecurity

 
        NSAllowsArbitraryLoads
 

2: Disable bitcode in build settings.

Find the screenshot available at .
https://zebra.box.com/shared/static/9kuh35s9vox7c4azveb4csup8i4k6rgm.png
https://zebra.box.com/shared/static/kqi88mvdw2nk6pk6j3qt1q2g85xnbhce.png

Note: With these cahanges you can launch application on devices not on ios9 simulator.

Thanks
Bhakta

CONTACT
Can’t find what you’re looking for?