Reputation:
I'm trying to upload my app to app store connect and I am unable to validate my app. I also see that identifier and other info is not showing up. Why is this? Is it a problem? If I can change this, how? [![enter image description here][1]][1]
I have tried the things found in [here][2] that where voted 2+.
Incase its relevant: I am using a project with cocoapods
XML for info.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ArchiveVersion</key>
<integer>2</integer>
<key>CreationDate</key>
<date>2019-09-01T20:47:53Z</date>
<key>Name</key>
<string>FinalAppPrj</string>
<key>SchemeName</key>
<string>FinalAppPrj</string>
</dict>
</plist>
[![enter image description here][3]][3]
Upvotes: 3
Views: 2538
Reputation: 3139
This is a niche answer, but there appear to be problems with Xcode 13.4.1 & 13.4.2 that cause the archive to be generic and the 'Validate app' button disabled.
Build errors were noted on the Shopify Github for 13.4.1 and I noted the problem for building a Qt app using 13.4.2
Upgrading to Xcode 14.2 resolved the issue for me.
Upvotes: 0
Reputation: 3351
For me this happened with Xcode 12.5.1 with multiple targets with extensions in the project. I had to untick archive for other target with extension. Then start archive again to get the direct distribution to Apple. Goto Edit Scheme...
and untick. This was not required previously though.
Upvotes: 0
Reputation: 13726
I tried all what @alxlives said, but it didn't help. Finally i solved my problem with:
Upvotes: 0
Reputation: 5212
Why is this?
This usually happens when xCode can't create a valid archive for distribution, so it just gets created in "Other Items" in the Organizer as a "Generic Xcode Archive".
Is it a problem?
Yes, because you will not be able to submit it to Apple Store Connect. You cannot package generic archives nor submit them for review.
If I can change this, how?
First of all, we need to check the project setup:
Target > Manage Schemes...
check if your current target is a valid project with the Shared
flag selectedTarget > Edit Scheme...
check if the target is the only one with Archive enabled. Also check if the Analyze and the Archive tabs have Release selected in Build ConfigurationProduct > Analyze
(Shift + command + B
), check if there are no errors. You can access the report in the last icon on the navigator panel:I checked all the 2 vote answers on this link, and they mostly cover all the possible solutions, but I would like to double check the Apple's support page troubleshoot:
1) Your archive contains header files.
If you are using a static library, check if there is a Headers build phase. If so, delete this phase, add a Copy Files build phase
to your library, and use it to export your header files.
2) Your archive contains static libraries or frameworks.
In this case, the libraries and frameworks need to have the flag skip install
set to YES
Then try to archive it again.
If none of the solutions worked, there is a workaround here that consists in modifying the archive .plist
file manually and adding the missing information. It can be accessed:
Your valid .plist
file would be like this:
Just replace PASTE_YOUR_BUNDLE_IDENTIFIER_HERE
with your bundle identifier,
PASTE_YOUR_CERTIFICATE_NAME_HERE
with your certificate name,PASTE_YOUR_CERTIFICATE_ID_HERE
with your certificate id and PASTE_YOUR_TEAM_ID_HERE
with your team id.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ApplicationProperties</key>
<dict>
<key>ApplicationPath</key>
<string>Applications/FinalAppPrj.app</string>
<key>CFBundleIdentifier</key>
<string>PASTE_YOUR_BUNDLE_IDENTIFIER_HERE</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>SigningIdentity</key>
<string>iPhone Distribution: PASTE_YOUR_CERTIFICATE_NAME_HERE (PASTE_YOUR_CERTIFICATE_ID_HERE)</string>
<key>Team</key>
<string>PASTE_YOUR_TEAM_ID_HERE</string>
</dict>
<key>ArchiveVersion</key>
<integer>2</integer>
<key>CreationDate</key>
<date>2019-09-01T20:47:53Z</date>
<key>Name</key>
<string>FinalAppPrj</string>
<key>SchemeName</key>
<string>FinalAppPrj</string>
</dict>
</plist>
To check the certificate name and ID, the easiest way is to open Keychain Access.app
(Mac Finder > Applications > Utilities > Keychain Access.app
), find the certificate (you can filter by the text "Distribution") and see its details. Marked in green is the name, marked in red is the ID between parenthesis.
Then close and reopen xCode. In Window > Organizer
, if the archive is under iOS Apps, then you can Validate and Distribute the app.
Edit
To add an iOS Distribution Certificate, in xCode, click on xCode > Preferences > Accounts >
Select the team and click on Manage Certificates...
. On the Plus button
you should see iOS Distribution:
Add this certificate to the project, check in the keychain if is added there and point it into the .plist file.
As you are using a signing team, you also need to add the team to the .plist. I updated the .plist file with the needed entry.
Upvotes: 8