Why does my XCode project include the wrong icon file for my iOS Application? - iphone

I am creating a lite version of my app, and used Chris Fletcher's blog here as a guide to setting up an Xcode project for multiple apps. I have everything working great except for the icon file.
Here is an overview of what I have:
2 info.plist files (One for each version of the application)
In my paid info.plist, I reference the icon "IconPaid" for the Icon entry. In my Xcode project, I have added IconPaid.png and IconPaid#2x.png.
In my lite info.pist, I reference the icon "IconFree" for the Icon entry. In my Xcode project, I have added IconFree.png and IconFree#2x.png.
When I go to build both apps, my lite app shows up with the paid icon. I took a look at the package contents of my lite app, and sure enough the IconPaid files were included but not the IconFree files. I took it a step further, and printed out the value for the CFBundleIconFile in my app, and it correctly shows up as "IconFree".
So my question - Where else is the icon file referenced in a Xcode project besides the plist file? I thought that was the only place...

It sounds like your free target is copying the paid version of the icon instead of the free version. Look under Targets/Project-Name/Copy Bundle Resources and check that the free version is copying the correct icon file.
I'm not sure why the IconPaid.png is showing in the free app (assuming your build settings of your free target are referencing the proper info.plist). You may want to clean all targets and delete your intermediate build files too, and delete the old version from your simulator or device.

Related

how to update app icon for my iPhone app?

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.

Where is my latest build for my iPhone app?

This seems very strange, I recently upgraded to Xcode 4.2 and I'm about to release an updated version of my app. When I go to the Build folder non of the builds seem to have changed and they are all dated from before I updated to Xcode 4.2
My code has todays date but I cannot see where the lates builds are. Does Xcode 4.2 store the builds in a different place or am I missing a setting in Xcode?
Click on the "Log Navigator" icon (speech bubble) in the left pane, and select the log entry for your build.
The log will contain the full path to your build. Often it's something like:
/Users/user/Library/Developer/Xcode/DerivedData/App-cmxgycqjtykiurgecgrmvvavwwjq
/Build/Products/Debug/App.app/Contents/MacOS/App
If you are doing a production build, I recommend using the "Archive" feature, which will do a clean build with all the right compiler optimisations, and then present you with the build in the organiser window.
You can then click "share" to save the app in whatever format you prefer (pkg, app, ipa, etc). In the case of an iOS app, this will also offer to embed the provisioning profile in the app, which is nice for ad-hoc deployment.

Icon is not changed after update of an app

I have created a new version of iPhone app. I wanted to change the icon, so:
I added the icons in different sized to the Resources folder of my Project in XCode:
I specified the icon files in the info.plist file:
in iTunes Connect I added new version of my app and replace the old icon with the new one. The new icon is now visible when I log in to iTunes Connect.
The effects:
I can see the new icon when I run my app on simulator.
I can see the new icon when I visit AppStore with iTunes on my Mac.
I can see the OLD icon when I visit AppStore on my iPhone.
I can see the OLD icon on my iPhone after upgrading my app to the new version.
Any ideas why the old icon is still visible in some of the places?
kind regards,
Jakub
Use "Build > Clean all Targets" and then build and run. Xcode doesn't always see that images have been updated, and leaves them out of incremental builds. Cleaning before building makes Xcode build the app file from scratch, and will pick up any images it's failing to get.
Why it's inconsistent is that different build types (simulator vs device) are different build targets, and got built with different versions of your images. Not unusual.
The one thing that this WON'T address is the old icon on the iPhone's app store app. You might need to update your app store submission with fresh images.

Changing the .ipa file artwork of compiled iPhone application [duplicate]

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.

Xcode Naming Executables

Ok.
So I got my first app approved by Apple, it goes on sale this week. With that out the door, I wanted to create a Lite version of the app.
I did a branch in SVN, and created a new working directory.
Original app is Trak4, Lite version is obviously Trak4 Lite
I noticed that when I build, the .app file that Xcode creates is still Trak4.app even though in the plist file, I've changed the Executable name to Trak4Lite, the project was renamed to Trak4Lite, etc.
In Products it says the Product is Trak4 Lite, but at the build step it's generating Trak4.app.
What am I missing? Why is the executable name wrong?
I'm running OS3.0 GM. I'm not running Snow Leopard yet.
Keith
For free versions of my apps, I create a second target in the same project, rather than creating a branch. After you duplicate the target, you just need to change the Product Name setting for that target. I also create a new Info.plist, and point to that in the target settings.
You need to change the Product Name (PRODUCT_NAME) in your target's Build Settings, and you might want to point to a different Info.plist also.
alt text http://web3.twitpic.com/img/13461715-4c0d84c623011739cca45f9b3f44abc3.4a3e605a-full.png
I always get tripped up by that. I've used Rename Xcode Project to help me out.