Link error with iOS 6.0

niflheim
edited October 2012 in Native
Today, I got XCode 4.5 with iOS 6.0 SDK

when building my project(it was working fine with iOS 5.1 SDK).

ld: file is universal (2 slices) but does not contain a(n) armv7s slice: ../Library/Photon-cpp/lib/libPhoton-cpp_Debug_iphoneos.a for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

It gives me this error and can't be compiled.
photon library doesn't support new architecture arm7s.
I think Photon iOS-SDK has to be compiled with XCode 4.5.
Please, do this quickly.
I can't test with any of my device.

Comments

  • We are aware of this issue and the upcoming 3.0.4.0 release will add armv7s support.
    In the meantime you can just set the the architecture in your Xcode project or target settings to armv7 (this is not available in the drop down menu, but you can put it in manually after clicking on "other" in the drop down) and you can compile with Xcode 4.5. Any device before the iPhone 5, that is still supported by Xcode 4.5 is having an armv7 architecture, anyway. iPhone 5 is armv7s, but is afaik able to fall back to armv7, if there are only armv7 binaries available. With armv7 iPhone 5 will perform a little bit slower than with armv7s, but still faster then any device with armv7 architecture.
  • the problem is not that it lacks armv7s (its not optimal but no death criterium either) but that photon by error still contains armv6 hence the 'its universal yet not armv7 + armv7s' error

    you can not build for iOS6 or with iOS6 sdk as long as armv6 is present, its officially dead (finally)
  • dreamora wrote:
    the problem is not that it lacks armv7s (its not optimal but no death criterium either) but that photon by error still contains armv6 hence the 'its universal yet not armv7 + armv7s' error

    you can not build for iOS6 or with iOS6 sdk as long as armv6 is present, its officially dead (finally)
    Well, thats not correct.
    1. Photon does not contain those armv6 binaries by error, but on purpose, as we have still customers, that have needed armv6/armv7 universal binaries. However with Xcode 4.4 and up compiler support for armv6 has been dropped and as prior Xcode version don't support armv7s, we will ultimately drop armv6 support the moment, we add armv7s binaries, which will be with the 3.0.4.0 clients.
    2. You can build an armv7 only iOS 6 app app with armv6/armv7 universal libs just fine. The oly issue is, that you can't build an armv7 /armv7s universal app with armv6/armv7 universal libs, as those libs do not contain armv7s binaries, but as you have stated correctly, while not optimal this is no death criterium, as the workaround mentioned in my previous post comes in.
  • I called it by error because the iOS6 SDK has been around for long enough to have the Photon SDK ready for it.
    That you might have customers that required ARMV6 is naturally well possible but it all in the end does not matter anymore as Apple gave the final deathblow with this and gave developers 1.5 years to finally adopt to it as iOS 4.3 made it clear where its going and iOS5 did so too.
    I'm still sad that Apple actually waited till now to finally block ARMV6 (the old universals won't work anymore in universal mode thanks to iOS6 so ARMV6 is effectively killed as pure armv6 was not valid anymore since iOS5) as it was meant to die already with iOS5 from a user and developers point of view
  • Some of us (many of us?) are running 2.x servers and clients. I still need to properly support iOS6 and the iPhone 5. Could we please have a re-compile of the latest 2.x client in iOS 6 with the new universal binaries? I simply can't afford to upgrade every single client and the entire server system to the 3.x just because of this. I'm sure we will upgrade at some point, but to be blunt I can't afford to do it right now.
  • JoshF47 wrote:
    Some of us (many of us?) are running 2.x servers and clients. I still need to properly support iOS6 and the iPhone 5. Could we please have a re-compile of the latest 2.x client in iOS 6 with the new universal binaries? I simply can't afford to upgrade every single client and the entire server system to the 3.x just because of this. I'm sure we will upgrade at some point, but to be blunt I can't afford to do it right now.
    As already stated, you can simply just compile the app for armv7 with the old lib builds and it will run on iOS 6 and the iPhone 5. I can't tell you right now, when and even if we will release armv7s binaries of the Photon 2 clients, as we have not released any Photon 2 client update anymore since July 2011 and are fully concentrating on Photon 3 now. We will have to check, how much work will be needed, to make the Photon 2 client source build with Xcode 4.5.
  • The 3.0.4.0 clients have just been released today and ship with armv7/armv7s universal binaries.