My app for tvos was rejected again and again, don't know how to do :(

Here is the email from Apple:

From Apple

  • ngRepeat: rejectionReason in message.qcRejectionReasons
  • 10.1 - Apps must comply with all terms and conditions explained in the applicable Apple Human Interface Guidelines: iOS Human Interface Guidelines OS X Human Interface Guidelines Apple TV Human Interface Guidelines Apple Watch Human Interface Guidelines
  • end ngRepeat: rejectionReason in message.qcRejectionReasons

10.1 Details

Thank you for your resubmission. We found that the previous issue is still present in this version: the Menu button on the Siri Remote does not behave as expected in your app.

Specifically, when the user launches the app and taps the Menu button on the Siri remote, the app does not exit to the Apple TV Home screen.

 

Can anybody help me check the code? link is here:

https://www.dropbox.com/s/azq0matrjyktsfa/scene_title.lua?dl=0

Thanks!

This is really easy to fix. When you are on a screen that you can’t “back out any further”, that is the logical action when pressing “Menu” is to return to the tvOS main screen, such as a menu screen you need to call:
 

system.activate( "controllerUserInteraction" )

When you are on any other screen that you can back up to the main menu, then you call:

system.deactivate( "controllerUserInteraction" )

and  handle the Menu button as a back button.  For instance if you’re playing a game, pressing menu should pause the game and present a small menu to the user that gives them choices, one is to back up to the level select screen (or you could just go to the level select screen). From the level select screen, the back button should take you to the menu screen.  Almost like you would handle an Android back button.

This call to system.activate( “controllerUserInteraction” )/system.deactivate( “controllerUserInteraction” ) lets your app know when to have the menu suspend your app (like pressing the Home button on an iPhone) or when you intend to use it for app navigation.

Rob

I found this in the docs after first looking at the source for Corona Cannon:

The menu button on controllers (keyName “menu”) is expected to pause the app, or move the user to the previous screen. Once the user is at the main menu, the app must use system.activate(“controllerUserInteraction”) andsystem.deactivate(“controllerUserInteraction”) to tell the operating system that a menu button press should back out of the app. See the Pew Pew sample app’s main-menu.lua for an example of how to use this.

Note that a long press of the menu button will always exit your app, and is the default method to exit the app unless changed as described above.

https://docs.coronalabs.com/guide/tvos/index.html

 

“controllerUserInteraction” is not discussed on the applicable API page yet. https://docs.coronalabs.com/api/library/system/deactivate.html

 

More about Corona Cannon can be found here:

https://coronalabs.com/blog/2016/02/02/corona-cannon-a-new-corona-sdk-sample-game/

Doh! Rob, you beat me by 1 minute! I will keep my post here anyway even though some of it is a duplicate of your post.

ouguolin, I will also add that the sample code for both Corona Cannon and Pew Pew provide examples of what Rob is describing.

thank you! Rob and Jerejigga. I did forget to add call of 

system.activate( “controllerUserInteraction” )

I have updated the code and resubmit.

 

This is really easy to fix. When you are on a screen that you can’t “back out any further”, that is the logical action when pressing “Menu” is to return to the tvOS main screen, such as a menu screen you need to call:
 

system.activate( "controllerUserInteraction" )

When you are on any other screen that you can back up to the main menu, then you call:

system.deactivate( "controllerUserInteraction" )

and  handle the Menu button as a back button.  For instance if you’re playing a game, pressing menu should pause the game and present a small menu to the user that gives them choices, one is to back up to the level select screen (or you could just go to the level select screen). From the level select screen, the back button should take you to the menu screen.  Almost like you would handle an Android back button.

This call to system.activate( “controllerUserInteraction” )/system.deactivate( “controllerUserInteraction” ) lets your app know when to have the menu suspend your app (like pressing the Home button on an iPhone) or when you intend to use it for app navigation.

Rob

I found this in the docs after first looking at the source for Corona Cannon:

The menu button on controllers (keyName “menu”) is expected to pause the app, or move the user to the previous screen. Once the user is at the main menu, the app must use system.activate(“controllerUserInteraction”) andsystem.deactivate(“controllerUserInteraction”) to tell the operating system that a menu button press should back out of the app. See the Pew Pew sample app’s main-menu.lua for an example of how to use this.

Note that a long press of the menu button will always exit your app, and is the default method to exit the app unless changed as described above.

https://docs.coronalabs.com/guide/tvos/index.html

 

“controllerUserInteraction” is not discussed on the applicable API page yet. https://docs.coronalabs.com/api/library/system/deactivate.html

 

More about Corona Cannon can be found here:

https://coronalabs.com/blog/2016/02/02/corona-cannon-a-new-corona-sdk-sample-game/

Doh! Rob, you beat me by 1 minute! I will keep my post here anyway even though some of it is a duplicate of your post.

ouguolin, I will also add that the sample code for both Corona Cannon and Pew Pew provide examples of what Rob is describing.

thank you! Rob and Jerejigga. I did forget to add call of 

system.activate( “controllerUserInteraction” )

I have updated the code and resubmit.