I developed my first XCode5 ONLY app which is very similar to the apps I have done on 4.6. It runs perfectly OK in the simulator and on my iPhone 4, 4S and 5, as well as my 2 iPads.
However, when I try to validate it for submission to the App Store, I get a whole stack of errors relating to arm64 requires 7.0.0 or later. I have the deployment target set to 6.1 and this does not happen when I run my previous apps in Xcode 5 that had been started in 4.6.
If I change the deployment target to 7.0 then everything is OK.
What is happening here? What do I need to change to get it to validate on 6.1?
Thanks.
EDIT: OK, I changed the Architectures in Build Settings to Standard (armv7, armv7s) removing arm64, and everything was OK. Was that the right thing to do? Presumably it will still run on the iPhone 5S, but not in 64-bit. Correct?
You can't yet submit 64-bit and still support iOS 6. You will be able to next month, however.
See https://developer.apple.com/news/index.php?id=9162013a
Edit: Yes, if you have armv7 and armv7s, you will still run on the iPhone 5s, although in 32-bit mode. I'd recommend submitting with armv7/armv7s now, and adding in arm64 next month.
Update November 1, 2013:
According to the 2013-10-22 version of the 64-bit Transition Guide for Cocoa Touch, you can now use Xcode 5.0.1 to generate a binary that includes 64-bit and 32-bit architectures, and runs on older iOS versions.
- You need to use Xcode 5.0.1
- The 64-bit version can only run on 64-bit devices running iOS 7.0.3+
- The 32-bit version can only run on devices running iOS 5.1.1+
- 64-bit devices running iOS 7.0.0-7.0.2 will use the 32-bit slice
You have to use iOS 7.0 as deployment target to build for arm64.
If you wish to support iOS 6.1, you'll have to stick with armv7s at most. As arm64 processors can run in 32-bit mode, this shouldn't be an issue.
OK, I solve the problem by changing "Always Search User Paths" in "Search Paths" to "No" and everything works well again. And I set the parameter to "Yes", the program is still OK. I have no idea why this happened.
This problem happened when I change the folder's position which have the program.
I had this issue rise up when I added a BOOL variable. #import UIKit/UIKit.h also showed as an error. Here is a screen shot of the changes you need to make from the default project.
Before:
After:
You should set Enable Modules (C and objective c) as NO in Build settings:
Apple LLVM 5.0
- language
- Modules
.
(Answer from official forum)
Solved this problem by changing where created my project, when creating my project, I saved on my desktop and it worked when I created a repository, he showed this problem.
I hope this answer helps someone.
I have had pretty much the same stack of errors. Got more or less the same with two exceptions. Like user tjv I had an error on #import too. And I did not have the linker error related to arm64. The missing arm64 is probably the key difference in the symptom.
My problem was that I set several precompiler macros in my project file in the
Apple LLVM 5.1 - Preprocessing
section. Instead of setting MACRONAME=1
I typed MACRONAME= 1
As you might guess already. the extra space made all the difference.