I'm integrating GameCenter leaderboards into my iOS game. The game has a home screen with a play and "High Scores" button, the game screen itself, and a finished screen with you score, another "High Scores" button, and some other stuff.
When installing the GameCenter package it recommended that you call the authentication function as soon as the device is ready. In this case, if a user that is logged into GameCenter opens the app it immediately says "Welcome back XX" and the player can continue like normal. However, if a user is not logged in, as soon as they open the app they are greeted with the GameCenter login page, which to me is a bad user experience.
The alternative is to only do the initial authorization when the user clicks to see the high scores, if they are logged in it takes them to the leaderboard, if not it prompts them to log in. The problem with this is if they don't try to view high scores until the game is over it would not have saved their score to the leaderboard (as I have it automatically submit if logged in on Game Over).
Which of these two choices is the best? I don't see the first option occur too often as I'm rarely/never greeted with a GameCenter login as I enter a game. Although number 1 is recommended by the plugin I installed. Should I have a dedicated "Sign in" button?