I've set all the icons to use in MonoDevelop (including the correct resolutions). The icon for my app shows up in the simulator correctly as it does show up correctly on my iPhone device.
However after I build the app for distribution I've noticed when I browse the .app package has blank png files titled 'icon', so there's a blacnk Icon-small.png, Icon-Small#2x.png, Icon#2x.png and Icon.png.
I'm guessing these icons sould actually be the icon images?
Since it works on the device, I believe the contents of the app package are encrypted so that if you view it on your mac you won't see anything. The encryption would have to be stripped for you to see the contents.
Edit: I don't know if this actually true though - I looked at an ad-hoc build I have here and I see the same blank icons, however I do see dimension information (60x60) when I get-info in Finder. Presumably if it couldn't read the file at all, it wouldn't be able to see the dimension information? Also I can read the plists in the app just fine.
The answer is in another SO post: "Show Package Contents" of iPhone build release reveals blank PNGs?
Related
Trying to upload my app, the app sends fine but I get this error via email once the binary has been sent.
'Dear developer,
We have discovered one or more issues with your recent binary submission for "MyApp". Before your app can be reviewed, the following issues must be corrected:
Corrupt PNG File - The PNG icon file Icon#2x.png appears to be corrupt.
Once these issues have been corrected , go to the Version Details page and click Ready to Upload Binary. Continue through the submission process until the app status is Waiting for Upload and then use Application Loader to upload the corrected binary.
Regards,
The App Store team'
I've tried replaced the Icon#2x.png and re-submitted but I got the same email
This is a problem with Xcode 4.3.1. The solution is to disable PNG compression.
Project > target > Build Settings > Show All > first item under the Packaging header
I searched for "pack"
Toggle Compress PNG Files to NO
While you're at it, go dup rdar://11046386 and rdar://11035448 on Apple's Bug Reporter
Further discussion on the Apple Dev Forums
I had the same error again and again, I couldn't upload my App because of a corrupted PNG.
I though it was because I failed to uncheck the transparency box when exporting the PNG in Photoshop (which you should/must do) but it appears that there was a layer in my Photoshop image that caused the problem and corrupted my file when exporting in PNG. If ever you think of "save as" and then specify PNG format in your Photoshop, it will not solve the problem either.
You must remake this buggy layer and export your image again. As Domsou said before you can use ImageOptim to verify that your new PNG is not corrupt... and optimize its size at the same time (Actually it does not check it but if the file is corrupted it won't be able to optimize it). I've done what I just said and now my App is waiting for review :) Good luck (hope your image does not have 30 layers...mine had 2)
Are you sure your image covers all the requirements?
It seems to be a problem in the info.plist file !!!!
When removing icons from the app, on record is keeping in place.
I removed it from those 2 nodes :
- Icon Files
- Icon files (IOS 5)
i don't know again if that worked but i didn't received mails for this moment...
This is what worked for me :
Click on those 4 images :
- the icon
- the icon#2x
- the default
- the default#2x
in the right window 'Identity and Type' select this File Type : 'Icon'
If you Build application for Archiving you'll probably see the warning saying you have mismatched icon settings.
I've got this error when i've submitted app using xCode 4.3 with deploy target set to iOS 3.0.
My app bundle had Icon.png and Icon#2x.png, after i've added new icons they were named Icon57.png & Icon114.png, old ones were not deleted automatically.
This is how i've solved this problem:
1) removed old Icon.png & Icon#2x.png from project;
2) new Icon57.png & Icon114.png renamed to Icon.png & Icon#2x.png
3) in *-info.plist i've corrected icon records from Icon57.png & Icon114.png to Icon.png & Icon#2x.png
4) Added CFBundleIconFile row with value Icon.png
That's it! =)
I had the same problem with an icon today. The icon was saved as an interlaced PNG. I re-saved it as non-interlaced, resubmitted and it wasn't rejected.
That works for me, too. Just change icon72.png and icon144.png file type to "Icon", then App Store accept the submission.
#Phatblat's solution will work, but it doesn't fix the root of the problem. The primary cause is probably that "Interlaced" was enabled when exporting the app icons from Photoshop. Disabling PNG compression will prevent the rejection, but it will often increase the size of your IPA. If you disable Interlacing and resave all of your icons in Photoshop, you can re-enable PNG compression and should be able to submit your app without issue.
This is what happened to me with my app Pillboxie, which as tons of images. I needed PNG compression to keep my file size low.
I understand many different sized icons for my app are required for App Store Submission according to Apple's Documentation. However, I am unsure on how to include them? Do I just add them as Icon.png to the Binary?
This is much easier to handle in xcode4 if you have it, just click on your project (should be at the top of the project navigator window) then go to the summary tab, and you can select the icons from there. Then when you build your app, they will be included in the binary
You include them in your project and reference them from your info.plist file under the icon files section.
Here is an updated list of the filenames and sizes you can add: http://www.weston-fl.com/blog/?p=840/
Some recent version of iOS caused my app icon to turn white. I've gone through everything in regards to images and can't find the issue. I'm running Xcode 3.2.5 with sdk 4.2. I do have an entry for "Icon files" in Info.plist with 5 keys:
Item 0 myapp.png
Item 1 myapp#2x.png
Item 2 myapp-72.png
Item 3 myapp-Small-50.png
Item 4 myapp-Small.png
Item 5 myapp-Small#2x.png
All the above have proper dimensions.
I see the image in 'Copy Bundle Resources' and also in the .app file for the simulator version. It is properly reference by name in 'Icon files', Item 0. It is not named Default.png since it is referenced by name in Item 0.
Any suggestions?
You just need those 3 Files:
Icon.png
Icon#2x.png
Icon-iPad.png
Put the names into the Info.plist under Icon Files.
EDIT: Clean your target if it still won't work!
That is what helped me (project summary - app icons are ok, iOS simulator - app icons are ok, iPhone device - blank icon).
Just reconnect your icons to project by dragging them from project navigator to App icon section in project summary.
When does it turn white? If you upgrade an app when it's running, sometimes it appears with a white icon in the "task" bar. This applies to apps you're developing and those download from iTunes. The fix is usually just to kill the app and restart.
That's the simplest answer, but I suspect might not be the solution.
Does the case of the file names in your Info.plist match the actual file names? The Simulator is not case sensitive but the iOS is.
You might also like to make a completely clean build. Don't just do a "Clean" in Xcode, instead manually clear out your build folder.
Finally, when the iPhone 4 first came out I had some issues with the order of the icons referenced in the Info.plist. I never saw white icons (usually just the non-Retina version) but this may be something worth playing with if nothing else works.
The icon file name may be too long if it is a custom file name. This is just a guess, and I hate guessing, but this appears to have been the problem I just had.
I have four targets using the same code but with different icons. I named the icons differently based on the app name, so I could store them in the same directory.
For example:
Icon.png
Icon_second.png
Icon_alternate.png
Icon_second_alternate.png (or Icon_secondalternate.png in case underscores were an issue)
This nomenclature was used for all of the icon names (there's 8 icon files to support iPhone, iPad, retina, etc).
The last one was giving me a problem. Despite a hundred clean/rebuilds, deleting the schema entirely and creating a new one, fruitless efforts, it suddenly occurred to me to try renaming it.
You should be able to name the icons differently, as I still use the first three versions. They are listed in the plist file and render in the project summary, and on the simulator, just fine. The last one rendered in the summary as well. However, I think the length of the file name was too long for the simulator. There must be a length limit. I renamed the fourth one to use the standard Icon.png naming but added it to the fourth target only (images are stored in a separate folder).
CONCLUSION: If you have more than one target for your app, use the standard naming system for all of your icons but add them to separate folders, and then when adding to Xcode just set the build target appropriately.
If you still have the default icon entry (even blank), this can happen, remove that entry in info.plist.
Also, Default.png would be your splash screen.
Load the icons into the Preview application, and make sure they are really png format (and not just named such) by doing a "Save As..." specifying PNG format in the save dialog. Do a Get Info to check the sizes. Make sure the case of all letters in the name match your plist entries.
I had the same problem recently - the Icons I was using were created in GIMP. When I opened them in Photoshop on the development Mac it complained about an ICC color profile. After re-saving the PNGs in Photoshop the Icons worked like a treat.
P.s. I just repeated my steps in creating the images in GIMP, but when saving unticked every extra option that GIMP - by default - was trying to add into the image when saving it. The icons worked perfectly this time around.
If you believe your icon configuration is correct, then you may simply be seeing a bug in Xcode.
As a workaround…
"Clean" your project. Choose Xcode > Product > Clean.
Delete the app from your simulator, or even reset the Simulator by choosing iOS Simulator > Reset Content and Settings.
Quit both the iOS Simulator and XCode apps, then restart them.
I had a localized universal application. I copied a bunch of resources (XIB) files from an old project into the appropriate locations (English.lprog) directories for both iPhone (Filename~iPhone.xib) and iPad (Filename~iPad.xib). I added them to the project, and they all appear correctly in Xcode, as localizations, etc. I can open the localized files for each device in XCode/IB, and everything appears correct.
Now, when I run the project - everything is completely haywire. In short, when I run in English on the iPad simulator, I get the Chinese version of the iPhone XIBs!!!
I can't figure out what the problem is - any idea how to dig deeper?!
Few things fixed this:
Total clean build of project
Erase old application from device and/or simulator before reinstall.
Just because the icon in XCode looks like an IB icon, and double-clicking opens in IB, it still MUST have an ".xib" extension visible on the file.
Simulator is NOT case sensitive, but iPhone IS. This includes differences like MyClass~iphone.xib (works) vs. MyClass~iPhone.xib (doesn't work).
These steps have worked for me: In Xcode,
Check the location of folders for every language
Build > Clean all targets
Build > Compile
alt-R
During the work on my iPhone application the icon changed from time to time. Colleagues or management came with fancy new ideas and .pngS and all I did was changing the Icon.png in the file system. Most times the new icon was distributed to simulator or device with the very next build, sometimes I had to delete and add th icon.png in Xcode (images), but it worked.
Then, the other day I added the UIPrerenderedIcon element to the info.plist to eliminate the icon's shine (it worked) and since I did, I've problems with bringing new icons to the device:
Simulator shows new icon when in debugging mode
Simulator doesn't present new icon in release mode (only when debugging was used before)
Never new icons on any iPhone or iPod
Whenever icon distribution fails, a white square or (even stranger to me) an old icon (corresponding .png is completly eliminated from the file system) is shown
Any ideas?
Try cleaning all targets, that is most likely the case of the old icon showing up.
Also, this happened to me a few times (with in app images)...
The simulator is case insensitive to file names, but the device IS case sensitive.
So, if in the info.plist you say your icon file is: ICON.png
But the actual file is named: icon.png
Then, the simulator will display the icon, However, the device will not.
When ever you change the icon image Try deleting the old application from the simulator/iPhone and thenm reinstall it.. Some times such problem occur with me too.. and also
FOR icon on iTunes
Make the icon image 512 x 512 JPEG or PNG file named iTunesArtwork. Then go to get info and remove the extension. 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).
Then drag and drop your app file to the iTunes for cross checkin whether you have done all things correct or not.
Hope this helps..
Start Application in xcode
1 Change the name of the icon.png to icon1.png
2 Remove the app from the simulator or the device
3 Clean all targets
4 Change icon1.png back to icon.png
5 Run app again