iOS App Requires arm64? - ios

I uploaded my app to Xcode where it says the build requires arm64. This excludes iPhones 5/5c and lower from using the app. However, I want iPhone 5/5c to be able to use the app and must have required arm64 by mistake. I think it must be something in the info.plist but have no idea.
Things I have checked:
(1) The info.plist does not have a RequiredDeviceCapabilities line.
(2) Under Build Settings in Xcode, armv7, armv7s, and arm64 are all valid architectures.
Any help you can offer would be incredible. I have attached a screenshot of my info.plist and if you think it may be something else and need more information please comment and let me know! Thanks!

Note - this answer has been refined based on the comments to my original answer.
Apps uploaded to the App Store require 64-bit support and the normally accepted method is to build the app with multiple-CPU support.
You want build active architectures set to YES for the Debug configuration and NO for the Release configuration.
This does not change the arm64 requirement, as that is not an Xcode requirement, but rather an App Store requirement. In effect there should be nothing to change from the default Xcode project template.
So, simply go to build settings > "build active architecture only" and set it to "NO"
Hope this helps someone!

Related

Bitcode WatchOS3 - how to generate

I am attempting to upload a watchOS3 app to the apple store, however I received a rejection (from apple) thats similar the below
Invalid Executable - The executable 'someWatch Extension' does not contain bitcode.
Once these issues have been corrected, you can then redeliver the corrected binary.
How can I resolve this? It seems like bitcode is mandatory as there is no longer a build setting in Xcode for my watch application to simply "Enable Bitcode=No".
I have also tried looking into running swiftc -embed-bitcode *.swift from my Watch Extensions directory, but I receive the below
MyController.swift:9:8: error: no such module 'WatchKit'
import WatchKit
I really have no clue what to do from here and it UBER frustrating with the lack of documentation out there for watchOS3 to get around this. PLEASE HELP
For me the problem was that ENABLE_BITCODE=NO was set on the project level, and even though Watch did not have it set and should have resolved to YES which is the default for WatchOS, it was still resolved to NO - because of the inherited value from the project.
To resolve it, I removed the ENABLE_BITCODE value at the project level.
(to do this, select it in the Project Build Settings and press delete button on your keyboard so that text loses its boldness).

Errors ITMS-90530 and ITMS-90502 when I upload my app to the store

I have a strange error when I try to upload my app to the AppStore. I have two errors: ITMS-905030 and ITMS-90502. These errors says that my app is only configured to support 64-bit. But it's not!
Here are the errors:
And here is my configuration for my Target and Project :
My project also have some library added via Pods, but I don't think that the cause of the problem. The deployment target is set to 7.0. I archive this project with an iPhone 6 (iOS 9.0.2) connected.
Could somebody help me with that?
It seems that you are using Debug configuration when archiving, and the Debug configuration has Build Active Architecture Only enabled.
Try this way :
Pull your iPhone out of the USB interface
then try to upload the AppStore Again.
I hope i could help you
check Build Active Architecture Only in Build Settings > Architectures
If YES, xcode will determine the architecture of the device connected (ACTIVE) and it will build for that only.
If NO, xcode will build for all architectures considering your minimumOSVersion
So unplugging your 64 bit phone or selecting Generic iOS Device will fix the issue
NOTE: setting Build Active Architectureto YES is faster when building, so use it when you need it
I try this in edit schema Archive debug to set release and also Run also set Release . I hope this is help for you. Thanks

iOS 6 Xcode 4.5 unsupported architecture armv7s

When trying to archive an app for an Ad Hoc release, I am getting the following warning:
iPhone/iPod Touch: application executable contains unsupported architecture(s): armv7s (-19031)
I am really not sure why this is happening for two reasons:
The only non-foundation framework I am using is the Facebook SDK, which is the latest version
I successfully archived the app last week and the only things that have changed since then are purely coding changes.
Also, I have tried archiving with and without an iPhone 5 plugged in, and I receive the error both ways.
Does anybody know how to fix this?
Quick fix is
Remove armv7s from
Project -> Build Settings -> Architecures
Updated ::
Now change Build Active Architecture in Build Settings to No to Yes.
But even this is not a pure solution to this problem.
I could archive and validate my projects by changing status of 'Build Settings -> Build Active Architecture Only' from 'No' to 'Yes'.
Same problem here today when submit my app (update) to appstore.
I clearly remember that its last version was submitted with both armv7 and armv7s set and succeeded, but now Organizer told me :
"iPhone/iPod Touch : application executable contains unsupported architecture(s): armv7s"
to remove armv7s is simple, but my app is Universal, will the armv7s-removed app run on all iOS devices (iPhone 5 for example)? when should i build with aremv7s?
Same issues here, app passed validation before, but after a quick code change, no go. Could this possibly have something to do with ipods? Seems to be a recent issue, as of yesterday.
Getting the same result as 21k. I submitted a binary with both armv7 and armv7s to the App Store last week, and it passed validation as well as the review. Now I tried submitting an update to the same app with the exact same project settings (other than the usual version number bump), and it fails validation.
In fact, I try validating the archived app from last week and now get the same error. So something must have changed on the App Store's side.
Go to Project ---> Build Settings and scroll down to the Architecture setting.
You will probably see the value $(ARCHS_STANDARD_32_BIT) listed under Architecture.
If so, double-click $(ARCHS_STANDARD_32_BIT), select it, and click the minus button to get rid of it. Then click the plus button and write armv7 and press Enter.
You have now removed armv7s, which was unsupported. Try it again and things should be good.
Removes armv7s architecture from menu Build settings > Architectures. At that point must appear valid architectural amrv7s and amrv7. Removes only finished in s. If the menu doesn't appears, notice that it is set to "All" and "Combined" in the search bar.

iTunes connect architecture issue during validation

Im going to submit an app, but when validating I get an error:
The following issues were found during validation:
iPhone application executable is missing a required architecture
I have searched and found that I need to set
Build only architecture only
in build settings/ architecture
well this is in no [unchecked??], also tried with YES, but not working either.
Also would i have to add armv6 in Architectures?? [even when in valid architectures i have v6 and v7??]
how to do it?
when i go to add one, it just gives me a blank space to type, what to type to include it?, in case this is what i need??
Thanks a lot!
You seem to be using a beta version of XCode. Revert to a standard release and try again. Apple don't allow submissions from beta versions.

iOS Application Missing Required Architecture, even when listed

When building an iOS project inside Xcode 4 for Archiving, the error:
iPhone/iPod Touch: application executable is missing a required architecture. At least one of the following architecture(s) must be present: armv6 (-19033)
continues to occur. The screenshot below shows the Build Settings. I have tried all of the common fixes, but none of these seem to work.
My final thought relates to the first linked question. Does it matter that for "Standard", armv6 isn't listed? If so; how should it be added?
This project is a new Xcode 4 project; only a view controller has been added from the default.
I had the same problem. In your picture, try adding an architecture to the architectures field and name it armv6. That solved it for me.
Project -> Edit project settings -> in Build tab search with "active" then unselect Buld active arch only
If you uncheck "Build Active Architecture Only", then it will build all the valid architectures.
On the new Xcode(4.5) for supporting iPhone 5 screen the only method that works for me is to set the target iOS version to 4.3 as minimum (the valid arc should be armv7 and can include also armv7s, but you must delete armv6!), Anything else I've tried including all the answers here didn't help and I got the error you mentioned.
I was having this problem and was very confused because the error that occurred with it said I needed armv6 because I had a deployment target lower than 4.3, but I was sure my deployment target was 4.3.
I have two targets in my project and was looking at the build settings for "all" instead of the individual targets. Don't' know why, but even though the settings for "all" showed a deployment target of 4.3, the deployment target shown in the individual target build settings were both 4.2. I changed those for each target and both errors went away.
Remove iphoneossimulator from supported platforms for the distribution/release build configuration. You cannot have that for distribution, it is only for your debug configurations.
Check the image below for distribution configuration (ignore release config).
My Answer May help You:
I had this problem even after following the accepted answer and found the following to work:
In your Info.plist, add an entry for Required Device Capabilities. This should be an array and will have two entries.
Item 0 : armv6
Item 1 : armv7
It will look like this:
Required device capabilities entry
"At least one of the following architecture(s) must be present: armv7"
I had this error message, and it didn't make sense to me.
I already had armv7 in the list of architectures for my iPad-only app, and, yes, I did have "Build Active Architecture Only" set to No.
But - I also had armv7s in the list of architectures.
I removed armv7s from the list, and then the error message disappeared.
Perhaps in XCode 5, Apple will change the message from
At least one of the following architecture(s) must be present: armv7
to a more accurate
Only the following architecture(s) must be present: armv7
I live in hope.

Resources