5 Replies Latest reply on Jun 24, 2015 3:01 AM by Nicolas Hinze

    Unable to set Deployment Target to iOS 7.0

    Nicolas Hinze

      The default XCode project built by Rhodes 5.0.2 sets the "Deployment Target" of "rhorunner" to iOS 6.0. However, when I set it to iOS 7.0, XCode fails to build the app for the iPhone Simulator or Device with many "Apple Match O-Linker Errors".

       

      System:

      - Rhodes 5.0.2

      - Ruby 1.9.3

      - Mac OS X Yosemite 10.0.1

      - XCode 5.1.1 and iOS 7.1 SDK

       

      Steps:

      - delete everything under "project" in the Rhodes app folder to have a clean slate.

      - Run rake build:iphone:setup_xcode_project in the Rhodes app folder to create XCode Project.

      - Open project with XCode.

      - Project can be built for iPhone Simulator and Device.

      - Change the "rhorunner" Deployment target to iOS 7.0 and the project Deployment target to iOS 7.0.

      - XCode is now unable to build the project for simulator or device.

       

      build.yml:

       

      name: "MyApp"

      extensions:

        - json

        - rholang

      capabilities:

        - gps

        - camera

        - network_state

        - vibrate

        - sdcard

      env:

        app: "/Users/me/Documents/Apps/MyApp"

      sdk: "/Users/me/.rvm/gems/ruby-1.9.3-p551/gems/rhodes-5.0.2"

      android:

        version: "4.4.2"

        minSDK: 17

        android_title: 0

        manifest_template: "AndroidManifest.erb"

      build: "release"

      applog: "rholog.txt"

      version: "3.0.1"

      vendor: "myapp"

      sdkversion: "5.0.2"

      iphone:

        provisionprofile: "XXXX"

        BundleURLScheme: "myapp"

        BundleIdentifier: "com.myapps.myapp"

        sdk: "iphoneos7.1"

        emulator: 7.1

        emulatortarget: "iphone"

        codesignidentity: "iPhone Developer: Me (XXXXXX)"

        entitlements:

        configuration: "Release"

       

      XCode Error message:

       

      Undefined symbols for architecture i386:

        "std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::c_str() const", referenced from:

            std::string rho::common::convertToStringA<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) in libRhodes.a(MethodResult.o)

            std::string rho::common::convertToStringA<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) in libRhodes.a(JSONIterator.o)

        "std::string::find_last_of(char, unsigned long) c.....