Question: I'm using Titanium Studio. All I want are some icons in my iphone app. 

In my tiapp.xml is this section:

```
<ios>
<plist>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>appicon.png</string>
<string>appicon@2x.png</string>
<string>appicon76.png</string>
<string>appicon76@2x.png</string>
<string>appicon72@2x.png</string>
<string>appicon72.png</string>
<string>appicon72@2x.png</string>
</array>
</dict>
</plist>
</ios>

```

Somewhere in the file is also this:
 appicon.png

All necessary files are in a folder called iphone, 72 dpi png, exactly measured.

Although there are 8 icon entries in my tiapp, after I built the app the info.plist contains only these two icon file entries:

```
Item 0 string appicon.png
Item 1 string appicon@2x.png

```

And Xcode complains about the missing icons:
"Missing required icon file. The bundle does not contain an app icon for ipad of exactly 72 x 72 pixels in png format."

Obviously it does contain that file, together with all the other ones mentioned in the tiapp.

I tried to edit info.plist by hand, to no effect. I checked and checked upper and lower case, I even mad this icon files again but still no luck. How do I do this?

Last week I had a similar excercise, and after renaming everything to lowercase ("appicon...") it was accepted by Xcode 5.1. The only thing I changed are the icons, everything else is the same and xcode keeps me awake for days.

Answer: 
You have a `while` loop that closes `readr` on every pass. The next time it gets to the `try` block, `readr` is closed. Perhaps you intended to put the `try/catch` block around the `while` loop?
You are closing the reader inside the loop that reads from it. You need to close it outside of the loop:

```
try {        
    String line;
    while (data.serverStarted() && ((line = readr.readLine()) != null)) {
        try {
            data.updateConsole(line);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
} finally {
    try {
        readr.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

```