9 Replies Latest reply on Oct 9, 2015 11:14 PM by BHAKTA RANJAN SATAPATHY

    Rhomobile 5.0.38 and Xcode7

    Lisa Tassone

      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 `<top (required)>'

      /Users/lisatassone/.rvm/gems/ruby-1.9.3-p429/gems/rhodes-5.0.38/Rakefile:85:in `<top (required)>'

      (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
        • Re: Rhomobile 5.0.38 and Xcode7
          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.

          <key>NSAppTransportSecurity</key>

            <dict>

                  <key>NSAllowsArbitraryLoads</key><true/>

            </dict>

           

          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

          • Re: Rhomobile 5.0.38 and Xcode7
            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.

              • Re: Rhomobile 5.0.38 and Xcode7
                Mark Nongkhlaw

                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.

                 

                Well, at this point they claim to also support Android SDK API Level 23 too.

                My understanding is that TAU will provide WM/CE support for free with an open source webkit (it will also be free of RhoElements closed source) and it will also support all possible enterprise devices, not just Zebra. And of course, they will provide Phonegap consultancy too.

              • Re: Rhomobile 5.0.38 and Xcode7
                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!

                • Re: Rhomobile 5.0.38 and Xcode7
                  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 :/

                    • Re: Rhomobile 5.0.38 and Xcode7
                      BHAKTA RANJAN SATAPATHY

                      Hello Lisa,

                      To have those option you need to manually add below content in your info.plist file which got generated inside your application project folder(app_folder/project/iphone/Info.plist).

                          <key>NSAppTransportSecurity</key>

                          <dict>

                            <key>NSAllowsArbitraryLoads</key>

                            <true/>

                          </dict>

                       

                      If you want to make it available for all application, then add the same content in template info.plist file available at rhodes_gem_location/res/generators/templates/iphone_project/root/Info.plist.

                       

                      Thanks

                      Bhakta