I'm using MGTwitterEngine in my apps and till iOS5, the app is working fine. I'm using twitter engine that as ".a" file.
But when compiling with latest XCode, its showing error that armv7s slice is not available.
I tried removing armv7s from the valid architectures and the problem solved. I'm able to build the app, run the app successfully on iPhone4, iPhone4S and also on iPhone5.
My questions is whether I'm following right way or not. Will Apple approve the apps that are not built with armv7s architecture?
There's no other go with it
Libraries are precompiled code. so they are built as per the architectures selected during compilation.
In latest iOS, its better to use Twitter/Social framework (as per iOS version)
Related
I am using xcode version 6.0.1 and uploaded the build on app store test-flight. When I checked its binary details it was showing this
After this I uploaded this build to App Store and since it was an update of an existing app it was successfully released but as it shows is was not having arm64 architecture and I got mail from apple --> apps submitted to the App Store must include 64-bit support and be built with the iOS 8 SDK.
So after adding arm64 by following this answer on stackoverflow link here my app binary details looks like this
When I compared it to earlier one this time in supported Architecture armv7s is not showing but arm64 is added. I just wanted to confirm is this right and will this binary be supporting both 32bit and 64bit so that I can go ahead and publish this on App Store.
Adding My Xcode 6.01 build settings tab screenshot after adding arm64.
Thanks
If your architecture is similar to below architecture.Then all is well
Build informations on itunes connect should be as below
Urban Airship provides an iOS 8+ framework called AirshipKit.framework. Linking and embedding this framework works fine in both the simulator and device. However, when I go to archive the binary and validate it, iTunes Connect says the app contains code for unsupported architectures i386 and x86_64. How can I get Xcode to remove support for these architectures from the archived app?
Under Build Settings I have:
Architectures: Standard architectures (armv7, armv7s)
Build Active Architecture Only: Yes for debug, No for release
Supported Platforms: iOS
Valid Architectures: arm64 armv7 armv7s
You could use lipo to extract the arm code to a new file and submit that one, but it sounds like something is very wrong - you shouldn't need to do anything like this to submit, it might be a bug in Xcode. Which version are you using? Did any other settings in the build get changed (the text would be bold if the build setting is modified from the default)?
There is a new version of the Urban Airship SDK, 5.0.3
Are you still seeing this issue when building with the new Framework version?
I struggled with the same problem for a couple of days until I realized my own idiocy. My app is set to support 7.0+ and yet I still had the Airship.framework, which as the UA (Urban Airship) documentation strictly recommends, was only to be used for 8.0 +
I removed the framework and the validation came back success!
So if your app is inclusive of 7.0 or lower, then all you need is the libUAirship-5+ library. As #aschuman suggested, there is a new one available (libUAirship-5.0.3.a)
I have an iPhone app (for iOS 7 & above) which uses the ZBar SDK. I'm struggling to update it for iOS 7 using Xcode 5.1.1.
I was getting this arm64 build error, but I've managed to fix that by recompiling libzbar.a according to the instructions here.
The app now archives successfully. However, when I try to validate it in the Xcode Organizer I get the following error: "This bundle is invalid. Apps that include an arm64 architecture are required to include both armv7 and armv7s architectures."
I have "Standard architectures (armv7, armv7s, arm64)" set for my project's Architectures and "arm64 armv7 armv7s" for the Valid Architectures.
I not sure what else to try at the moment, so any help would be much appreciated.
Unplugging my iOS device and re-archiving the build helped me.
I could not find anything that would solve this problem. After going around in circles for several days, I removed every trace of the ZBar SDK from my app and instead used Apple's AVFoundation for QRCode support. This option was not available prior to iOS 7, but now that it is life becomes a whole lot easier!
I have an SDK to achieve some special stream of video but I've got only the binary of this, I think this was built for arm7.
I have an app built with this library and it runs great on iPhone 4, 4s and iPad 2 but when building for iPad 4th generation with an arm7s xcode shows lots of errors about files being ignored.
I'm pretty sure it's the architecture cause changing the build architecture the errors appear and disappear.
Is there any way to make this work? I mean build for new architectures having only binaries files of the old one?
Unfortunately not. To build your app for armv7s all the code – which includes said library – has to be built for it. There is a hack to add armv7s support to static libraries but I would strongly recommend against using it.
That being said, for now it's not a big deal if you're building your app for armv7 only. It will still work fine on the iPhone 5.
Just go into the build settings of your Target and set "armv7" as the only architecture your app should be built for.
At one point in the future Apple will probably require that all new apps / app updates will be built for armv7s, like the did with armv7 a few years ago, but for now it's not a problem. By then the developer of the static library will hopefully have provided an update.
I am using Xcode 4.5.2 and have a project which cannot be compiled for an iPhone running iOS 6.0.1 though other projects compile fine with the same settings as shown in the picture below.
Any ideas on how to solve this?
You're probably using some third party lib that doesn't yet support armv7s architecture. You can just remove armv7s from your settings. Your app will still be able to run on iPhone 5 although it might not be taking full advantage of the new architecture.
If on XCODE 12 just goto Build Settings search for VALID_ARCHS. Under the User-Defined section select Valid Architectures and click Delete.
Set valid architecture for iOs simulator to armv7 and armv7s.( simulators are 32 bit ).
for device set to arm64 (64 bit all new ios device).