Related
I am trying to submit my first catalyst app to the Mac App Store. I have setup the App Store information in iTunes Connect, and I have confirmed that the info.plist in app has the following key in it:
<key>LSApplicationCategory</key>
<string>public.app-category.business</string>
However when I go to upload to the app store I get the message that I need to add the LSApplicationCategory
ERROR ITMS-90242: "The product archive is invalid. The Info.plist must contain a LSApplicationCategoryType key, whose value is the UTI for a valid category. For more details, see "Submitting your Mac apps to the App Store"."
I have confirmed that both public.app-category.business is correct, and I have also tried using the value "Business". I get the same error message. Is there something else I need to look at?
The key which you are adding to .plist file is wrong. Add below key-value pair. Full list here.
<key>LSApplicationCategoryType</key>
<string>public.app-category.business</string>
slicerdicer's recommendation worked for me. To add some additional detail, you can also set the App Category by going to Project / Targets / General. It's the very first option.
I had sucsessfuly upload two apps using catalyst then the third failed with that error. I found this and seemed to work.
To the info.plist add App Catagory with what ever catagory your app fits. I used Productivity.
I was converting an iOS app to a Mac app, and I was updating the file info.plist, and it was not actually updating the overarching project.
I ended up having to go to the overarching project, under the left side TARGETS tab, I selected my app, went to the Info tab, and added the App Category there.
We have an updated version of our app icon to replace the existing one, we tried to simply overwrite the old one (image file) with the new version (image file), build and then deploy, what we found on the device is still the old icon being used for our app. Is this a normal behavior, what's the "official" steps for such needs? Note that we are still in development stage, which is why we need to update our app icons based on the new art work done by our designers.
Even i faced the same issue ,& its just because the app still has the reference to the old icon file or may be it has not been deleted from the resources, you may have opted for reference only while deleting the app icon.
It's simple ,
For easy followup I have attached the Screenshots too : ;)
1) Delete your application icon.png from the app, selecting an option "Also Move to Trash" .
2) Now Clean build & all the targets.
3) Reveal in finder the resource folder in your app & first copy your New App icon over there.
4) Now, drag & drop the new application icon from application finder to your Resource folder, make sure to check the option to copy items.
5) Also, prior to submitting the application to AppStore, make sure to do changes in your .plist file.Add value icon.png value to Icon file key.
Once, you are done with all the steps, just reset your Simulator & Run the app. I am sure that would solve your problem.
First of all delete the icon.png then select the image you want to create the icon select and drag it and put the following place and clean up your project(Cmd + shift + k).
Now the run the project and it change the icon of the application.
i think it's helpful for you
do cmd+k (to clean) then cmd+r (to run)
Clean build folder first before you redeploy, Xcode cache some of the data. To clean build folder, Go to Products, and hold option, there will be an option to.
Reference Apple Technical docs, about Troubleshooting section. That technical document gives details about this icon issue.
The following is what I encounter.
Error: Invalid Image Path
Your application's information property list references one or more icon images that were not included in the compiled bundle.
If your application is using asset catalogs to manage its icons then the information property list should not include any icon related keys; they will be added at build time by the asset catalog compiler.
Open the information property list for your app's target. It can be found under the Info tab in the project editor or in the File Navigator where it will be named either -Info.plist or Info.plist, where is the name of your app.
Remove the following keys, including device specific variations.
“Icon file” (CFBundleIconFile)
“Icon files” (CFBundleIconFiles)
CFBundleIcons
My project use App Icons Source to manage app icons, but the Info.plist also contains Icon files, and images in the resources.
More ...
If you encounter following case, reference that apple docs, it will help you.
The wrong icon appears in the App Store
Your application bundle includes additional images which are being detected as valid icon images.
I've recently upgraded my Mac to Lion, and also Xcode 4.
In Build Settings, I've set "Code Signing" for "Release" to be "iPhone Distribution" which matches our Ad-Hoc provisioning file (which we've used in the past, on Snow Leopard/Xcode 3).
I have deleted the old Entitlements file (as it's apparently no longer used by Xcode 4).
In the Scheme section, I've set Archive to use the Release build.
I'm building with Product > Archive.
I'm saving the file by going into the Organiser and clicking Share, then making sure the same Ad-Hoc provisioning is selected.
I'm sending the resulting IPA file to my boss, who has previously installed this app. When he tries to install it, he gets the message "[appname] could not be added to your itunes library because it is not a valid app".
I've been trying every combination of settings I can think, but we just cannot get this to work. I can find this error only twice in Google - once from someone with a jailbroken phone and another posted in comments of an article, someone having the same issue, but there are no responses.
Any help would be really appreciated.
Edit: Same thing happens trying to drag the IPA into iTunes on the Mac that created it! :(
Edit2: Just taken another (almost identical) project and tried a build without "Modernizing" the project, or selected any of the new options in Xcode (icons, launch images, orientation etc.), and this build works. I'm going to work through each of the things I did with the original app with this one, testing at each step. Hopefully should be able to isolate which step is breaking the compiled app!
(also posted to Apple Dev Forums)
I believe I've tracked this down... It seemed to be happening really intermittently, so it's taken some time (I'd reproduce it, roll back the change, confirm it worked, then re-apply the change, for it to then work again!).
However, after much cleaning/restart/etc., I believe it's related to the "Build" version in the target settings (there are now two version fields, "Version" and "Build"). It seems that if "Build" is blank, then this error occurs.
Unfortunately, changing this value doesn't seem to rebuild properly, so sometimes if you change it, then Archive, you still get the previous value. Manually cleaning before Archiving seems to work around this.
The value gets written into the plist file as CFBundleVersion.
Recently I suffered a problem with an Ad-Hoc installation using TestFlight service, the message in the log didn't help too much:
Jul 25 12:52:39 MyiPad installd[477] <Error>: 0x10059c000 init_pack_state: Archive we've been requested to install is 0 bytes. That can't be a valid ipa.
After many tests, I found this question and the problem was the same, the Build field was empty (this answer save my day :-) )
So, if anyone else has this problem on TestFlight, I hope my answer allows to find this page easier ;-)
I also faced the same issue. After doing some research found below answers as:
App Version and Build version should not blank.
Don't put special characters in my app bundle name.
And also there was no issues with my provisioning profiles.
After debugging found that there was name mismatch in my scheme name and info.plist file name. In my project, I have 3 schemes like a,b,c and only one a-info.plist file. I was creating IPA for different scheme like 'b'.
In your scenario, if you have created multiple schemes then check your Info.plist name. That should have to be same as your scheme name (for which you are creating an IPA).
Example. The scheme name is 'myScheme' then your Info.plist file name as 'myScheme-Info.plist'.
Hope this will help you.
I got the same message ("not a valid app"). In my case, I was FTPing the built app to a web server then I would be able to OTA provision it. I was not swapping to binary mode before I was putting the file, so the .ipa file got corrupted on the way. Took me most of the evening to figure that stupid mistake out...
ok.. do one thing.. Open info.plist.. Go to bundle identifier and change bundle identifier name. It needs to be unique.. something like "com.yourcompany.projectname" and create and try to install the ipa.. It should work
I came across this question while researching a similar problem so I'll answer here even though the cases are not identical, because others will search for the same error message.
I had an ad-hoc app that everyone in the development team could install fine, except one person, who got the error from iTunes:
X is not a valid app
He had been able to install earlier versions of this app. Rebuilding the app, changing the version number and changing the build number had no effect, he still could not install but others could.
I fixed it by creating a brand new Xcode project, either copying the files or copying and pasting the content of the files from the old project to the new one, and rebuilding the app and signing it in exactly the same way as the old project. It worked.
I had a similar issue while trying to create an .ipa for adHoc distribution for one of the Old project (built a year ago by ex-developer). After a lot of research in google and following the above solutions it didn't worked out for me somereason.
Later after following this link - here. By replacing the .plist file with the existing working projects (obviously - the relevant icons/bundle display name/identifier) and renaming with the current .plist name. It worked for me.
I literally spent about 3-4 hours to fix this issue. Hope it helps some one.
environment was native - iOS app.
add......
"Application requires iPhone environment" in your info.plist or if added give it value "YES".
Check "Build" and "Version" in general are not empty....
hope this will work
Importing the project contents in to a new Project solved the issue for me.
For me, we were trying to do an enterprise build of a very old app, from iOS 5.
After confirming profiles and everything else was fine, debug builds work correctly, I noticed the general consensus was around issues with the info.plist file.
I compared the info.plist with another app and sure enough,
Application requires iPhone environment = NO
Basically this key needs to always be set to YES for iOS apps regardless whether its for iPhone, iTouch or iPad...
It may not be limited to that key for everyone but make sure the info.plist looks similar to working apps.
Bundle version
Bundle versions string, short
should always be present!
right.. but I guess it is clashing with earlier bundle identifier( this happens because you have upgraded the Xcode). Did you try and change the existing bundle identifier name and install ? I had identical problem and wasted 3-4 days.. I changed existing bundle identifier name and it worked.. Also you may want to check Bundle name and Bundle version are present in info.plist
I get the following error when I try to upload the application on iTunes Connect:
"Binary file names cannot contain a space. Please rename your binary file and try again."
If I try to Validate the Application in XCode, I get:
"My Application.ipa: filename may not contain whitespace"
So I guess I have to find a way to rename this .ipa file. I don't want to change my product name which has to stay "My Application". How can I do that?
Thanks!
This works very well (taken from here: http://developer.appcelerator.com/question/82971/filename-may-not-contain-whitespace-in-xcode-325-is-back):
1) In Xcode Organizer right click on the build date of the app and select "Reveal Archived App in Finder"
2) Open ArchiveInfo.plist in a text editor (i used Coda)
3) For me at line 12 it was creating the application with a space:
<key>XCApplicationName</key>
<string>Example Name</string>
Change that to ExampleName and save the file.
4) Once you get back to Xcode Organizer, you should be able to go through fine.
Since Xcode or the Application Loader is the only way to submit apps now, renaming the file before using the web interface isn't an option.
However, there is a workaround. From Xcode Organizer, choose Save to Disk, pick a file name without a space, and then use Application Loader (not the Xcode Organizer) to send the archive to Apple.
I ran into this and another issue when I wanted to submit an app with whitespace and a + in the name.
Application Loader did not work well for me - cryptic errors that required deleting the IPA and rebuilding.
My final solution was to set the PRODUCT_NAME to something sane, e.g. instead of My App+ it was MyAppPro. Then I set CFBundleDisplayName in Info.plist to the name I wanted, e.g. My App+.
This is in my opinion a better solution than renaming the IPA every time and using Application Loader.
I just had to rename the zip file before uploading it in the web interface. This is really silly...
Use Xcode 4.
The problem is solved in this version.
There's no need to change anything in XCode. Just rename the resulting .zip File from "My Application.zip" to "My_Application.zip". This does not affect your application name its just a way to bypass the Application Loader filename checks (which do not allow whitespaces in the uploaded zip filename).
My_Application.zip should be fine
I was able to use the Organizer, select Share, Save to disk. The went to the file and told Finder to open it with Application Loader v1.4. This is with XCode 3.2.5. I've previously used Application Loader to upload apps to the Mac app store.
I've got an iPhone app with icon file Icon.png.
This icon shows up properly when the app is on the phone itself, but it doesn't show up in the applications pane in iTunes.
What do I need to do to get it to show up properly?
The cleanest way to do this is described in the official Apple documentation, in a section called Publishing Applications for Testing. Below is the exact instructions given to you on that page:
The iTunes artwork your testers see should be your application’s icon. This artwork must be a 512 x 512 JPEG or PNG file named iTunesArtwork. Note that the file must not have an extension.
After generating the file of your application’s icon, follow these steps to add it to your application:
Open your project in Xcode.
In the Groups & Files list, select the Resources group.
Choose Project > Add to Project, navigate to your iTunesArtwork file, and click Add.
In the dialog that appears, select the ”Copy items” option and click Add.
Note that the PNG or JPEG file is just 'iTunesArtwork', with no suffix.
If you try to copy the file into the application bundle after you have built it, it will break the app signing, and you will get a verification error when trying to sync it to your device. Ensure that the artwork file is included in the "Copy Bundle Resources" folder, within your project's target in XCode (step 4, above).
Create a 512x512 png of your icon, name it "iTunesArtwork" (no extension, no quotes) and add it to your project under Resources. Then build.
More details here:
http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/000-Introduction/introduction.html
In order to make it easier for those arriving at this post, here are the actual instructions (straight from the blog post linked from the accepted answer).
There has been some talk on twitter about how to create your own IPA file for your iPhone app, so I thought I would give the instructions that I have used to build an IPA before. Enjoy.
Create a folder on your desktop called “working”. Open that and create another folder inside of it called “Payload” (case-sensitive)
Move your iTunesArtwork file into the “working” folder and your .app into the Payload folder.
Open Terminal and run the following command: chmod -R 775 ~/Desktop/working/Payload
Go into your ProgName.app folder within Payload.
Double-click the Info.plist file. Make sure there is a item called: SignerIdentity with a value of: Apple iPhone OS Application Signing. If there is not, add it.
Zip it all up. Zip the iTunesArtwork and Payload folder. (So zip up what is inside of the working folder)
Rename the zip file to have the name you want, and the extension of ipa.
Double click to install with iTunes
Actually, it is possible to provide iTUnes icons for iPhone software released as ad-hoc. See this blog post for more information.
I'll just add my recent experience. I had fooled around trying to get my ad hoc app to show up in iTunes with an icon (strictly, iTunesArtwork). Finally, I was convinced I had followed the instructions to a 'T' but it still wouldn't show up in the grid view. However, my artwork was properly displayed in the Cover Flow view. I deleted and reinstalled my app from/to iTunes to no avail. Then I quit iTunes and restarted - and, voila! - my artwork was correct in all places. It appears there is some kind of caching that is not reset in Grid view.
If you see a black square instead of you icon in iTunes, be sure that file type of iTunesArtwork in Xcode isn't "image.png". If so, in the copy resource build phase, CopyPNGFile will crash the file which invalid save for iOS divices.
Open your project in Xcode.
Copy iTunesArtwork.png file into project folder.
Edit iTuneArtwork.png file and remove .png from iTunesArtwork.
Generate build.
You can see image on iTunes.
The application icon only shows up in iTunes if your app is distributed through the app store.
I assume you are asking about a developer or ad hoc build. Those get the default black "A" icon.