Reader Mobile SDK and Xcode 5.1 playing together nicely now!

Reader Mobile SDK and Xcode 5.1 playing together nicely now!

This is a follow up post about Reader Mobile SDK and Xcode 5.1, see our original post here!

As mentioned in the previous post about Reader Mobile SDK being bitten by the compiler upgrade in Xcode 5.1, Datalogics engineers have been hard at work determining how to resolve the errors the new compiler introduced. Before we get into some of the details though, I would just like to take a moment and let everyone know that the errors that Xcode 5.1 caused are actually good! Clang is forcing more and more code to adhere closer to the standards than previously seen and we here at Datalogics are in favor of this. Standards compliance helps people like us support our customers across multiple platforms with greater ease.

With that said, Datalogics is happy to announce that in our Reader Mobile SDK release this week we will officially support Xcode 5.1! This is very exciting because we had many customers come to us and ask when we were going to support it and they let us know that this was something important to them. It got even more stressful for us when our first attempt at fixing this that we were almost ready to ship caused our builds of Reader Mobile SDK to fail! All is well now though and the final fix we ended up with works well across all of our supported platforms, if you run into any problems with this next release please let us know as soon as possible.

So what actually changed?

Actually a little bit more than was probably necessary! Here is a short summary of some of the changes we made (loosely based on the actual commits in our source control system, you are using source control for all of your source code right?)

  • Xcode: 5.1 upgrades to projects
  • Xcode: 5.1 upgrades to scheme files
  • Xcode: Set all the debugger settings to LLDB
  • OSX: Fix new warnings from Xcode 5.1

These were fairly straight forward things for us to change and help reduce the number of warnings that you will see when compiling Reader Mobile SDK in Xcode 5.1!

What about the real errors?!?

We fixed those too! Like any good cross-platform project, Reader Mobile SDK ran into some issues deciding how to define a few types, which lead to problems with compilers across the different platforms to not agree on what the types for a few parameters were or what the return type of some functions were.

Reader Mobile SDK initially was setup to resolve these issues through some template programming. We think this made things ugly but we certainly understand why it was done, it is a complex problem that certain compilers make more difficult (by not adopting the standards as quickly as others, looking at you Visual Studio). To resolve this, we adopted a strategy of use the standards where we can and do crazy template programming when that is not possible. This strategy even helped us realize that back when our engineers added support to build for the Blackberry Playbook, we should have #included <stdint.h> instead of defining the types we needed ourselves.

The last thing our engineers had to fix was adding a few new function overloads, because now that we had adopted some standard types, they were missing on platforms that used to build without complaint! Argh, some times our lives as engineers resolving issues with compilers can be frustrating! Solving a problem in one place but introducing a different but related problem somewhere else never makes anyone happy but we are all happy now that these fixes are currently in the process of being supplied to our customers!

Watch for our latest service bulletin about Reader Mobile SDK announcements so you can get going with Xcode 5.1!

6 thoughts on “Reader Mobile SDK and Xcode 5.1 playing together nicely now!

  1. The .zip file for RMSDK 10 (RMSDK-10_0_2014-04-25.zip) is missing the /src directory under drm/adept which means that it is not possible to build this version. If you can please fix this urgently, thank you.

    1. Hey Andrew! Great to see our customers reaching out to us through our blog. This change, however, is one that we have to live with as Adobe has moved towards distributing the DRM library only as binary and no longer distributing it as source. Datalogics has made the binary versions of the DRM library available in it’s Reader Mobile SDK releases in the drm/adept/build/ (organized by build tool here, vc for Visual Studio, ios_xc5 for iOS, and make for Android/Linux/Blackberry).

      Please let us know if the binaries in these directories do not work for you or if you continue to have problems, please contact us at rmsdk_support@datalogics.com so that we can provide further help!

      1. Thanks Brandon, we will try this. I didn’t see any mention of the src not being distributed in V10.0 so I assumed that it had not been zipped up. I will remove the DRM src dependency from our XCode project and link in the library and let you know if there are any issues. Thanks for your help!

  2. Hi Brandon, we can build against RMSDK 10.0 using XCode 5.1.1 so it is all good so far! Thanks for your help. Another question – the device activation code didn’t used to support a proxy server (i.e. if you set a proxy server on the Wifi connection of an iPad) – it would ignore the setting and go direct to the adobe activation server and completely ignore the proxy setting. Does it still do this? i.e. does the activation code support a proxy server?

    1. Hey Andrew, for this one I have to defer to our support team (rmsdk_support@datalogics.com) they will have more information than I do at the moment. I have asked that they contact you directly to follow up on this as it will be easier than doing it in the comments! Thanks!

  3. If you are building with RMSDK 9.3.3 version, use the build RMSDK 9.3.3 – 9 April 2014. This has the patches to build under Xcode 5.1.

Leave a Reply

Your email address will not be published. Required fields are marked *