I got My first app rejected By Apple please help

Hello ,

  I submitted my first app in apple store but it got rejected , It was working fine when i tested it on my Iphone 5s but they says that my app is showing blank screen , i asked for console logs but i am new programmer and could not find a solution , here are the details given to me , please help me :

Message i got :

We discovered one or more bugs in your app when reviewed on iPad running iOS 8.4 and iPhone running iOS 8.4 on both Wi-Fi and cellular networks.

Specifically, when the app is launched, only a black screen with background music displays.

Console log :
 

Jul 16 09:20:44 Tenerife kernel[0] \<Notice\>: xpcproxy[573] Builtin profile: container (sandbox) Jul 16 09:20:44 Tenerife kernel[0] \<Notice\>: xpcproxy4AE-8C48-8CE2C2AD3EE5 (sandbox) Jul 16 09:20:44 Tenerife locationd[62] \<Notice\>: Gesture EnabledForTopCLient: 0, EnabledInDaemonSettings: 0 Jul 16 09:20:44 Tenerife Toy Crush[573] \<Error\>: assertion failed: 12H143: libxpc.dylib + 71768 [C9F3C08A-8A3B-3849-A905-D24911240853]: 0x7d Jul 16 09:20:44 Tenerife Toy Crush[573] \<Warning\>: Platform: iPad / iPad4,4 / 8.4 / Apple A7 GPU / OpenGL ES 2.0 Apple A7 GPU - 53.13 / 2015.2661 Jul 16 09:20:44 Tenerife mediaserverd[20] \<Error\>: 09:20:44.766 EXCEPTION: ERROR: [com.apple.coremedia.playerserver] \>va\> 3121: kVirtualAudioObjectCategoryNotSupportedError: "Category cvcl is not supported." Jul 16 09:20:44 Tenerife mediaserverd[20] \<Error\>: 09:20:44.766 EXCEPTION: ERROR: [com.apple.coremedia.playerserver] \>va\> 3064: kVirtualAudioObjectCategoryNotSupportedError: "Category cvcl is not supported." Jul 16 09:20:44 Tenerife mediaserverd[20] \<Error\>: 09:20:44.767 EXCEPTION: ERROR: [com.apple.coremedia.playerserver] \>va\> 3356: kVirtualAudioObjectCategoryNotSupportedError: "Category cvcl is not supported." Jul 16 09:20:44 Tenerife mediaserverd[20] \<Error\>: 09:20:44.767 EXCEPTION: ERROR: [com.apple.coremedia.playerserver] \>va\> 3064: kVirtualAudioObjectCategoryNotSupportedError: "Category cvcl is not supported." Jul 16 09:20:44 Tenerife mediaserverd[20] \<Error\>: 09:20:44.767 EXCEPTION: ERROR: [com.apple.coremedia.playerserver] \>va\> 3193: kVirtualAudioObjectCategoryNotSupportedError: "Category cvcl is not supported." Jul 16 09:20:44 Tenerife Toy Crush[573] \<Warning\>: WARNING: Failed to find image 'images/splash\_screen.png' Jul 16 09:20:44 Tenerife Toy Crush[573] \<Warning\>: Runtime error ?:0: attempt to index a nil value stack traceback: ?: in function \<?:15\> ?: in function 'dispatchEvent' ?: in function 'gotoScene' ?: in main chunk Jul 16 09:20:45 Tenerife locationd[62] \<Notice\>: Gesture EnabledForTopCLient: 0, EnabledInDaemonSettings: 0 Jul 16 09:20:45 Tenerife kernel[0] \<Notice\>: 008732.712475 wlan0.A[3484] AppleBCMWLANConfigManager::configureRoamingProfile(): Received new roaming profile 3 (was 3, flag=0x0)

Hi @newtechsaga,

According to the error report, you have a Runtime (code) error involving the image “images/splash_screen.png”. Do you get the same error when you run the app on your own iPhone?

Brent

Thanks for the quick reply Brent … No i did not get any error while testing the app on my phone , it works fine . Please let me know what i can do for it , also My app is live on android and works fine there .

That’s super easy. Make sure the “splash_screen.png” is all lower case. The simulator is not case-sensitive but the device IS case-sensitive.

Thanks for the reply but its already lower case , and the build is working fine while testing in device , please let me know if anything else can be a solution as i am very confused at this .

It doesn’t have to be just lower-case.  It can be lower-case or uppercase – but they have to match exactly the same.  The call in the .lua code is lowercase but did you look at the actual physical file name?  This same exact thing happen to me before.

Since the OP tested this on devices, I doubt it’s a case sensitivity problem.  Apple runs a process called pngcrush to make sure the PNG files are aligned on 4 byte bounderies and to compress them even more. This happens during the build for distribution which could account for it working on your test device.  I would make sure the image failing to load is a valid PNG file (not a JPEG renamed as .png) or some other factor that could confuse pngcrush but would allow the file to be loaded otherwise.

Rob

yes its not case sensitive problem bcz its working on device and also i crosschecked it , also all images are png , i kept all images in a folder called images should i keep it in main folder and try to overcome “Apple runs a process called pngcrush to make sure the PNG files are aligned on 4 byte bounderies and to compress them even more.” or are there any other suggestions pls .

and also pls tell me how i can check a distribution build on device before submission , as i am a new programmer i dnt have much idea of it .

thanks

You don’t want to avoid pngcrush. It makes your app run faster on devices and has smaller footprint.  Simply take the image that’s failing, Open it in an image processing software like Photoshop and save it back out, make sure its a 24 bit PNG or 32 bit if your software measures it that way. Photoshop uses the term 24 bit which is the same as 32 bit in other software packages.

Or better yet, convert it to JPEG. Since it’s a full screen image (no transparency), JPEG will be smaller in your app bundle and work just as fine. PNG files are great because they support transparency. JPEG’s are fine for non-transparent issues (and before any one goes on a rant about JPEG being lossy, yes it is, but for mobile screens it’s not a big issue, or hardly noticeable if you keep you compression ratio in the 75-80% range. Besides artifacts show up more with gradients. Images with big areas of solid color won’t be affected).

If you convert it to a JPEG don’t forget to change it from .png to .jpg in the code!

Rob

Thanks for the help Rob , sure i will do it thanks for detailed explanation.

thanks for information

Hi @newtechsaga,

According to the error report, you have a Runtime (code) error involving the image “images/splash_screen.png”. Do you get the same error when you run the app on your own iPhone?

Brent

Thanks for the quick reply Brent … No i did not get any error while testing the app on my phone , it works fine . Please let me know what i can do for it , also My app is live on android and works fine there .

That’s super easy. Make sure the “splash_screen.png” is all lower case. The simulator is not case-sensitive but the device IS case-sensitive.

Thanks for the reply but its already lower case , and the build is working fine while testing in device , please let me know if anything else can be a solution as i am very confused at this .

It doesn’t have to be just lower-case.  It can be lower-case or uppercase – but they have to match exactly the same.  The call in the .lua code is lowercase but did you look at the actual physical file name?  This same exact thing happen to me before.

Since the OP tested this on devices, I doubt it’s a case sensitivity problem.  Apple runs a process called pngcrush to make sure the PNG files are aligned on 4 byte bounderies and to compress them even more. This happens during the build for distribution which could account for it working on your test device.  I would make sure the image failing to load is a valid PNG file (not a JPEG renamed as .png) or some other factor that could confuse pngcrush but would allow the file to be loaded otherwise.

Rob

yes its not case sensitive problem bcz its working on device and also i crosschecked it , also all images are png , i kept all images in a folder called images should i keep it in main folder and try to overcome “Apple runs a process called pngcrush to make sure the PNG files are aligned on 4 byte bounderies and to compress them even more.” or are there any other suggestions pls .

and also pls tell me how i can check a distribution build on device before submission , as i am a new programmer i dnt have much idea of it .

thanks

You don’t want to avoid pngcrush. It makes your app run faster on devices and has smaller footprint.  Simply take the image that’s failing, Open it in an image processing software like Photoshop and save it back out, make sure its a 24 bit PNG or 32 bit if your software measures it that way. Photoshop uses the term 24 bit which is the same as 32 bit in other software packages.

Or better yet, convert it to JPEG. Since it’s a full screen image (no transparency), JPEG will be smaller in your app bundle and work just as fine. PNG files are great because they support transparency. JPEG’s are fine for non-transparent issues (and before any one goes on a rant about JPEG being lossy, yes it is, but for mobile screens it’s not a big issue, or hardly noticeable if you keep you compression ratio in the 75-80% range. Besides artifacts show up more with gradients. Images with big areas of solid color won’t be affected).

If you convert it to a JPEG don’t forget to change it from .png to .jpg in the code!

Rob

Thanks for the help Rob , sure i will do it thanks for detailed explanation.