Building Cordova app in XCode 6 produces arm64 link error


#1

Im trying to build a Cordova app that uses Couchbase for iOS 7 in XCode 6. I can build and run on simulator or direct to a connected device just fine. But trying to build an archive produces a bunch of errors, the topmost of which says:

Undefined symbols for architecture arm64:
  "_JSValueUnprotect", referenced from:
      -[CBLJSFunction dealloc] in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSValueMakeNumber", referenced from:
      _IDToValue in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSValueMakeString", referenced from:
      _IDToValue in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSObjectCallAsFunction", referenced from:
      -[CBLJSFunction call:] in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSValueMakeBoolean", referenced from:
      _IDToValue in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSValueToStringCopy", referenced from:
      _WarnJSException in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSObjectMakeFunction", referenced from:
      -[CBLJSFunction initWithCompiler:sourceCode:paramNames:] in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSValueMakeNull", referenced from:
      _IDToValue in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSValueProtect", referenced from:
      -[CBLJSFunction initWithCompiler:sourceCode:paramNames:] in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSGlobalContextRelease", referenced from:
      -[CBLJSCompiler dealloc] in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSValueMakeFromJSONString", referenced from:
      _IDToValue in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSObjectMakeFunctionWithCallback", referenced from:
      -[CBLJSViewCompiler init] in libCBLJSViewCompiler.a(CBLJSViewCompiler.o)
  "_JSGlobalContextCreate", referenced from:
      -[CBLJSCompiler init] in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSValueToBoolean", referenced from:
      ___54-[CBLJSFilterCompiler compileFilterFunction:language:]_block_invoke in libCBLJSViewCompiler.a(CBLJSViewCompiler.o)
  "_JSStringCopyCFString", referenced from:
      _ValueToID in libCBLJSViewCompiler.a(CBLJSViewCompiler.o)
      _WarnJSException in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSValueCreateJSONString", referenced from:
      _ValueToID in libCBLJSViewCompiler.a(CBLJSViewCompiler.o)
  "_JSValueMakeUndefined", referenced from:
      _EmitCallback in libCBLJSViewCompiler.a(CBLJSViewCompiler.o)
  "_JSStringRelease", referenced from:
      -[CBLJSViewCompiler init] in libCBLJSViewCompiler.a(CBLJSViewCompiler.o)
      _ValueToID in libCBLJSViewCompiler.a(CBLJSViewCompiler.o)
      -[CBLJSFunction initWithCompiler:sourceCode:paramNames:] in libCBLJSViewCompiler.a(CBLJSFunction.o)
      _IDToValue in libCBLJSViewCompiler.a(CBLJSFunction.o)
  "_JSContextGetGlobalObject", referenced from:
      -[CBLJSViewCompiler init] in libCBLJSViewCompiler.a(CBLJSViewCompiler.o)
  "_JSObjectSetProperty", referenced from:
      -[CBLJSViewCompiler init] in libCBLJSViewCompiler.a(CBLJSViewCompiler.o)
  "_JSStringCreateWithCFString", referenced from:
      -[CBLJSViewCompiler init] in libCBLJSViewCompiler.a(CBLJSViewCompiler.o)
      -[CBLJSFunction initWithCompiler:sourceCode:paramNames:] in libCBLJSViewCompiler.a(CBLJSFunction.o)
      _IDToValue in libCBLJSViewCompiler.a(CBLJSFunction.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Seems like there is no 64bit version of the libraries?


#2

I managed to figure out how to switch off arm64 architecture in XCode 6. But at some point this will need to be fixed since Appleā€™s new policy will be to only accept new apps that are 64bit after February 2015, extending to include ALL apps in June 2015.