I'm making an application with Swift 2.1, Xcode 7.1.1.
I want it to be at least compatible with iPhone 4S and 5C.
I configured my project settings with armv7 architecture, info.plist, but when I publish my build, I only have arm64 defined in iTunes connect.
Where do I have to configure it correctly ?
Make sure Build Active Architecture Only is set to NO (at least for release), or else it will use the architecture of the connected device at the time you create the build.
please remove
<string>armv7</string>
from the array in
UIRequiredDeviceCapabilities
in info.plist
and submit the app for review on iTunes Connect.
Related
I created one IPA via Xcode.
Product -> Archieve -> Distribute Ad Hoc for target real devices any ios armv7, arm64
(so far process was same as always and had it working before with iphone)
The only thing that is changed is that I am using one IPAD instead of old Iphone (sold)
I have registered the IPAD already under my devices at https://developer.apple.com/account/resources/devices/list
Then I deleted old Xcode provisioning profiles following the instructions here
by going to ~/Library/MobileDevice/Provisioning and deleting all. Then I saw Xcode "fixing" recreating with todays date the new profiles.
Still issue persist, when I drag and drop IPA to device I get error "Unable to install AppName"
The error message is very short and does not give any detailed information of possible causes.
More details:
Info.plist
<key>MinimumOSVersion</key>
<string>9.0</string>
IPAD is already >= 9.0 version as well
The host device that I used to create the IPA has arm64 architecture, macbook m1 2021
How can I fix this and manage to install the IPA into my ipad and real test the app ?
I'm trying to archive a content blocker application. Because the API is only available on 64 bits, I've added this in the info.plist of the app:
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
This value is only in the application target, not the content blocker target. When sending my application to the App Store using Xcode Organizer it returns this message:
ERROR ITMS-90503: "Invalid Bundle. Apps that have 'arm64' in the list of UIRequiredDeviceCapabilities in Info.plist must only contain the arm64 slice."...
I've checked online and this error looks new and undocumented, do you know what should I do to remove it?
As dsiddhpura suggested, the solution is to check the valid architectures in the build settings. Be sure to have selected "All" in the right top-right corner and verify that there is only arm64 in the valid architectures.
It should look like this:
your plist must be look like that:
Set Build Active Architecture Only set to Yes. And you validate build product look like that:
You can't upload apps to the App Store with that requirement. The only requirement you can have is lowest iOS target. So if you specify iOS9 (latest) then the iPhone 4s is still able to download your app. iPhone 4s runs the 32-bit architecture.
Either you can remove the architectures other than "arm64" or you can limit the deployment target to 8.0
My iOS app has the following build settings:
And yet when I attempt submit the app to the store, I receive this error:
If I add arm64 to UIRequiredDeviceCapabilities as the error suggests, I get the following message upon submission:
Why did the first archive only contain the arm64 slice?
My project does contain a couple other projects (RestKit and CocoaTouchBarcodes), but these projects' build settings look the same as mine. My project also links to the Google Analytics library. I have verified that it is the latest version.
What could be causing my problem?
I had same issue for tvOS application submit, what helped me was to add this to all cocoapods and frameworks plists:
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
Do you have a device plugged in?
-If you have a device plugged in, that device's architecture is the ACTIVE ARCHITECTURE, so you need to unplug the device.
Also try;
-Set "Build Active Architecture Only" to NO for targets and project.
It turns out I had my AppStore Valid Architectures for the project, not target, set to "armv7, arm64". The problem is that comma in there. I must have added it while entering architectures manually at some point. After removing the comma, the armv7 slice builds and the app store submission succeeds.
After some digging search I could understand:
"... the presence of a given key indicates the corresponding feature is required"
".. omitting a key indicates that the feature is not required but that the app is able to run if the feature is present"
So, if you put armv7 it's the same as only armv7 devices can run it. Probably in a previous version of your app you supported all devices. So just remove the key armv7 and your app will be able to support all kind of devices (armv7 and arm64).
Pay attention to supported architectures
I have an apple developer ID. I have my developer certificate, my cert in my keychain, I have installed the last version of iOS (5.1.1 (9B206)) in my device (an iPad), I got my profile, I'm on a development team, I told Xcode that I want to use the device for testing. In the build settings, I have set the architectures to armv6 and armv7, both in "target" and "project" as well. Got the provisioning profile.
Still, when I try to run the app on the iPad, I receive an "Xcode cannot run using the selected device." saying that I need to install a newer iOS version (as I said, I installed the most recent on the device).
Anyone have faced this issue before?
You will need to update the version of Xcode to 4.3.2
I ran the application on my test device iPod Touch 3G with iOS5.0.1 (9A405). The app complies and run fine on the real device. I have developer account installed. I get following error:
error: Codesign check fails : /Users/apple/Library/Developer/Xcode/Archives/2012-03-12/AppName 3-12-12 9.58 PM.xcarchive/Products/Applications/AppName.app: code object is not signed at all
In architecture: armv7.
I assume the my iPod Touch is a armv6 device. But in the AppName-Info.Plist
I have following fields:
Architectures Standard(armv7) - $(ARCHS_STANDARD_32_BIT)
Base SDK Latest iOS (iOS 5.0)
Code Signing Entitlements
Debug
Release
Code Signing Identity iPhone Developer
Debug iPhone Developer
Any iOS SDK iPhone Developer
Release iPhone Developer
Any iOS SDK iPhone Developer
One extra thing, in the
CODE_SIGN_REQUIRED is set to NO in /Platform/iPhoneOS.Platform/Developer/SDKs/iPhoneOS5.0.sdk/Developer/SDKSettings.plist. I cannot seems to change it to YES. I copy that file to desktop. Change the field and drop it back to this location. This field will not update even when Xcode Version 4.2.1 (4D502) is closed.
EDIT: I updated this file via command line. I was able to change CODE_SIGN_REQUIRED to YES but the problem still persist.
<dict>
<key>AlternateSDK</key>
<string>iphonesimulator5.0</string>
<key>CanonicalName</key>
<string>iphoneos5.0</string>
<key>CustomProperties</key>
<dict/>
<key>DefaultProperties</key>
<dict>
<key>AD_HOC_CODE_SIGNING_ALLOWED</key>
<string>NO</string>
<key>CODE_SIGNING_REQUIRED</key>
<string>YES</string>
<key>CODE_SIGN_ENTITLEMENTS</key>
<string></string>
<key>DEAD_CODE_STRIPPING</key>
<string>YES</string>
<key>ENTITLEMENTS_REQUIRED</key>
<string>YES</string>
Do i need to unable the CODE_SIGN_ENTITLEMENTS from blank to YES? Please help.
Why is it so hard to do code sign in Xcode? I had a app released on Android app store. It was much easier.