Bug Appears in Distribution (App Store) Version of iPhone App - iphone

I created an app that has a self-built photo tool. When I test (Debug & Ad Hoc), it works fine. It is built using a UIScrollView and adds each Photo to the UIScroll view as the photo's slot is scrolled onto the screen.
But now the app is in the App Store and the left-right swipe-to-load-photo feature is not loading the photos. This is the same situation on iPhone 3G and iPhone 4.
Any ideas why / how this could happen?
ADDITIONAL INFO
Upon further inspection and thinking about how I created this, here are some other notes.
If you swipe left/right after the first image appears, the app begins to 'lazy load' the next photo in sequence, depending on which way you are scrolling. If you get to the slot where an image is supposed to load and the image has not yet loaded, you see a UIActivityIndicator.
With the App Store version, I am usually just seeing blank screens. This makes me think it is lazy loading the images but not adding them to the subview, or not bringing them to the front of the view. If I scroll fast enough to outpace the lazy loading, I can get an image to eventually appear in one of the slots - so it is probably an issue with my lazy loading - but that doesn't answer "why does this work in ad hoc but fail in the app store version?"

Clean your build, then select Build and Analyze from the Build menu.
Maybe you get some helpful information there :)

try to test your app in device by building it in release mode than install in your device and test the app. You can also try in simulator in release mode.

Are the compiler optimization settings, preprocessor defines, SDK settings, etc., identical between your Ad Hoc builds and the final Distribution build? If not, that could cause a difference in behavior between the two versions on the same device.

Related

Non-4-inch apps top-aligned when new splash included

Apple is now requiring a retina and 4-inch display Splash page (i.e. the "Default-568h#2x.png") for all apps to be submitted, which is fine. However, when I include that and then do another build, once I get into the app, instead of it being centered with dark on the top and bottom (as it was before), is now top-aligned on the screen with 2x the blank space on the bottom.. which looks really unprofessional.
Is there any way via our configuration to tell the OS to go back to centering the app, despite that it has the now-required 4" Splash page included? Ideally I'd like to be able to do this without updating every single IB view in the app to center it manually, as I feel the OS should still be able to do this somehow via configuration.
FYI, answers that say "update your entire app for 4"!" are unacceptable. There are clients who don't yet have a creative budget for this but still want to keep their existing app looking decent in the store. If it's not possible, then it's not possible, but that is why I'm asking the question.
Thanks in advance for any assistance on this, and my apologies if this has already been asked.
As of May 1 if your submitting this app to the app store you will be required to support both retina display's, and the new 4" screen size.
https://developer.apple.com/news/index.php?id=3212013b
You misunderstand. As of now, you must fully support the full 4" screen of the iPhone 5 and 5th gen iPod touch, in addition to retina and non-retina devices.
By adding the "Default-568h#2x.png" launch image (it is not a splash screen) you are telling the OS that your app supports the 4" screen.
You must update your app to fill the screen. There are countless existing posts about how to do that. There is no way around this. It is 100% required - no exception from Apple.
BTW - Apple announced this requirement on March 21st. Every registered iOS developer was notified of the requirement.
It isn't possible to do what you're asking with a single setting. Your best options are a bit of code that runs when you load a view to change the origin.y position, or, go through the XIB files and update the autoresizing rules so that the views expand to fill the space. You might not have budget to update the graphics resources in the app but you should be able to spend the small amount of time required on autoresizing.
The caveat to 'small amount of time' may apply to you - if you explicitly set the size of all of your views in code you've made life painful for yourself.

iPhone 5 Optimization Requirement - Launch image really necessary?

When trying to upload a binary to App Store, I get the following response in an email:
"iPhone 5 Optimization Requirement - Your binary is not optimized for iPhone 5. As of May 1, all new iPhone apps and app updates submitted must support the 4-inch display on iPhone 5. All apps must include a launch image of the appropriate size. Learn more about iPhone 5 support by reviewing the iOS Human Interface Guidelines."
Also, the status of the app is "Illegal binary".
I've read that I must include a launch image called "Default-568h#2x.png". Question is: My app was not intending to have a launch image at all. Am I really required to have a launch image now?
Yes you must include one. Not only does the launch image give the hint to the OS about the app's iPhone 5 (4" screen) support, but launch images in general are required:
From Apple's Interface Guidelines
To enhance the user’s experience at app launch, you must provide at least one launch image. A launch image looks very similar to the first screen your app displays. iOS displays this image instantly when the user starts your app and until the app is fully ready to use. As soon as your app is ready for use, your app displays its first screen, replacing the launch placeholder image.
Furthermore:
Generally, design a launch image that is identical to the first screen of the app.
So really, making a launch image that is about the same as the first screen of your app (e.g. if the first screen is a UITableViewController with a toolbar and navigation bar, perhaps the screen looks like an empty navigation bar, an empty toolbar, and an empty table view, which then suddenly all become populated as soon as your app really gets going), is the way to go for the best user experience.
If really you don't want or need this, then make the default images just be black.
Yes, as stated, as of May 1, 2013, all new apps and app updates must provide support for the new iPhone 5 4-inch display.
The way to indicate that your app supports (has been tested with) the new iPhone 5 resolution is to simply include the launch image for that device.
You can simply create a black .png image (which is what your other default launch images are anyway) that is 640 x 1136 pixels and use that as the launch image for that device.
Simply including the new splash screen image (Default-568h#2x.png) is not enough
You must re-build your project with the iOS 6.0 SDK (or newer) - which supports iPhone 5
So if you're still using an older SDK, update your XCode in the App Store first
Yes. from 1st May, you can't upload application with out including Default-568h#2x.png in your application.

Corona SDK, build for iOS device works not correctly

I build my Corona app for iPhone Simulator, and it running well. But if I installed my app on my device(iPad), and i have many issues(no scrollview and tabbar working) buttons is visible only.
How to solve the problem?
Look at what happens when you run it in the iPad simulator- Do you get any errors in the console if you check it while running the app on your iPad? If so this could shed some light on the issue. One possibility is a corrupted image, or an incorrect image format.
If only the buttons are visible it sounds like you app has an error that is preventing all of the display objects from loading. (Just based on the fact you mention your buttons display but nothing else.)

How do I get rid of sticky iPad splash screens?

Initially I developed my app as Universal. Then I designed splash screens separately for iPad. Recently I decided to deploy my app in iPhone device mode only. My app has no fancy graphics and it just looks well and works perfect on iPad either in 1x or 2x mode.
To do so I set Devices to iPhone at TARGET/Summary/IOS Application Target pane. I dragged new splash images I created for iPhone into Launch images placeholders, one for non-Retina and one for Retina displays.
However when I launch my iPhone app on the iPad, either through debugger or stand alone, the old iPad splash screens I no longer use come up. They look bad because the image centre appears to be moved down-right as they were originally created for iPad.
I went back to XCode and momentarily changed the Device type to Universal or iPad. I deleted the images both from Launch images placeholders and physically from the file system.
Unfortunately the iPad splash images I created earlier still come back when I build my app in iPhone device mode and deploy it on my iPad. How can I get rid of them once and for all and get the app use the iPhone launch images I created and setup recently?
If you deleted the images from the disk, Clean all targets (in Xcode Product->Clean) and rebuild. There should be no way after doing this that the old image will appear (if it does it means it was not deleted properly from your project).
Clean your project (Command+Shift+Option+K)
Close Xcode, go to ~/yourCurrentUser/.Library/Developer/Xcode/DerivedData
Find the folder for your project, and delete it.
Delete the app in your simulator or test device.
Now build and run the app, and that must work; if not, delete the final images once more, and repeat the above steps.
Don't forget to check your info.plist file for Icon Files key. Sometiems splash screen images get added to the Icon Files key for no clear reason! You must remove them from there.

Default.png problem with iPhone OS 4?

What should Default.png contain? Currently it seems that iPhone OS makes snapshots of the screen before closing the app, and next time it launches with that exact snapshot as "splash screen image".
A guy here in Russia told me that this is only happening when Multitasking works on the device.
What would I show in Default.png now? I don't want that the app launch sucks for users without multitasking, and I don't want it to suck for users with multitasking where the app had to hardcore-launch anyways (i.e. first launch at all). So what would that contain? A screenshot of the app screen how it looks after a hard launch from scratch? But what if my app is clever and saved state, and the UI looks completely different after launch?
What are you guys putting in Default.png and why?
If fast-app switching is working on the app as part of multi-tasking, you are correct in stating that the OS will take a snapshot and restore your app to this state after it comes out of the background. If the OS is saving state for you, then coming out of the background doesn't "suck" since it brings you app back into view looking just like it did when it left. It's almost like minimizing a window on Mac OSX and then maximizing it again... you just pick up from where you left off before.
Be advised though that the app could get killed at anytime in the background without warning or notifications being sent to you. In that case, you should still save state and try to create a splash screen that works with all of your views (i.e. has a tab bar at the bottom, or a nav bar at the top, etc). If you can't do that, you might consider just doing what Jesse has done with a company or app splash screen (even though Apple doesn't endorse this, but they won't reject you for it either).
As Jesse stated, Apple recommends creating an outline of the main elements to familiarize the user with your app and to give the appearance of faster loading. More information is here
For iPhone splash screens I am still using a company logo splash. for iPad, a basic "outline" of what the screen i am coming into will look like (a splitview basically, depending on orientation). The fact that default.png isn't editable does make this tricky though.