Simple Login Form in cocos2d - ios

It would be appropriate to include significant account-specific features from Amazon and not just an authentication method in order to be in compliance. You may also implement your own optional registration, iCloud or Game Center as another option.
Great Apple rejected my game 6 times due the above reason, first of all, they rejected my game because they said it need a user registration to save purchased data even if user changed the device and they can access all purchased things if he have a registered user id with the game, i done the user registration using amazon login sdk, and three other games approved with the amazon login, but this game rejecting showing the above reason., is there any sample login view form for cocos2d for user registration? i dont know how can we do a login with iCloud or game centre. all i want to do is a simple login form for cocos2d.IS there any samples out there how to make a login form using iCloud or game centre ,, i have some ,but they al are native iOS sample, cocos2d samples is not there.
hope anyone can help me to get rid of this situation.,

Related

Stripe: how to omit 3D Secure?

We have created an iOS app for short rental owners with the objective of holding rental deposits on a credit card during a few days. The user can decide to capture the payment if there is something broken in the flat.
This app has been made with Stripe.
We encounter the following issue: when the user enters his client's credit card in the app for holding a deposit of about 300€ for exemple, Stripe doesn't accept to continue the operation without 3D Secure verification.
While in the same time, it works perfectly without 3D Secure when doing this operation on the Stripe Dashboard, with the same credit card, the same amount and the same location.
We would like to omit 3D secure in our iOS app, just like the Stripe Dashboard.
How is it possible ?
Thanks for your help
This is not recommended, you should build your integration to support 3D Secure authentication, even when placing a hold to capture later.

Invite person from contacts who doesn't have app?

I want to let users of my iPhone app invite people from their contacts to a group they're creating. I can use deeplinks for people that already have the app installed to have an invitation automatically show up, but I was wondering if I can somehow pass custom information to someone downloading the app for the first time so after they initially open the app they'll have an invite waiting.
As far as I can tell this is impossible but I was wondering if there's any other way to somehow associate a contact with that person making an account on their own device. My application uses gmail authentication for account creation so if everybody had each other's gmails saved in their contact this might be possible, but that's not the case unfortunately. If I could get a user's phone number then it would be easy but I know that's not allowed without specifically asking the user.
Does anybody know if it's possible to do something like deeplinking for people installing the app for the first time?
You can do this with Google Firebase Dynamic Links. Google has a guide for this here:
https://firebase.google.com/docs/dynamic-links/
If I understand the question correctly, here is what I'd do:
Scenario: Send Invite
If the email invited by a user is a registered email, done.
If the email invited by user is not a registered email, store it in a separate table (pending invites)
Scenario: Sign up/ Sign in
User registers using email, store user information.
When the user logs in, check if email exists in pending invites table, if exists, present invitation.
Delete user from pending invites table
Not sure if you have it already but you might need a db table to keep the invitations sent by your users.
What you're describing is called Deferred Deep Linking (Deep Linking refers to using a link to open your app directly to a specific piece of content, and Deferred means that it works even if the app isn't installed first).
As you noted, there's no native way to accomplish this on either iOS or Android. URL schemes don't work, because they always fail with an error if the app isn't installed. Apple's newer Universal Links in iOS 9+ get closer in that they at least don't trigger an error if the app isn't installed, but you'd still have to handle redirecting the user from your website to the App Store. You can't pass context through to the app after install with Universal Links, so you wouldn't be able to present the invitation. Additionally. Universal Links actually aren't supported in a lot of places.
To make this work, you need a remote server to close the loop. You can build this yourself, but you really shouldn't for a lot of reasons (not the least of which being you have more important things to do). Free services like Branch.io (full disclosure: Branch is so awesome I work there) and Firebase Dynamic Links are designed to solve exactly this requirement, and can handle all of the backend infrastructure for deferred deep linking so you don't have to. From your perspective, as the developer, you'll seamlessly get exactly the same data to work with whether or not the app was installed when the link was clicked.

App rejection for User registration

I recently submitted a multiplayer trivia app to the app store. There are 2 versions of the app but they are essentially the same thing just for different trivia.
One app was accepted but the other rejected
Here is the rejected reason
17.2 Details
We noticed that your app requires users to register to access non account-based features. Apps cannot require user registration prior to allowing access to app content and features that are not associated specifically to the user.
My app has followed the process that is similar to other major apps like trivia crack and words with friends.
The user gets a screen to sign in with facebook or sign in with email. When they click on sign in with email it brings them to a screen where they enter their email. We then create an account for them in the app.
This is required so that we can keep track of the user in each of the games they are playing and who they are playing against we also keep stats for that user based on how many questions they get wrong and how many right, also how many wins. We are storing all of this on our webserver so that the user can also use his account on a different device so that they can play their games on their iphone, ipad, ipod and so on.
We ask for nothing other than email, and if we dont have them register then we cant maintain all this information for them, especially if moving from device to device. Again, this is how almost ALL other larger multiplayer apps in the store do it. I mimicked them exactly.
I dont get it. Plus, one reviewer accepted one of the apps and another rejected the other app.
Should I appeal?
Yes, you can appeal.
You can explain your position to reviewer, we had similar problem and after we've created appellation application was published.

Retrieve Apple ID in Cordova

Maybe someone knows, there are some plugin cordova, allowing to determine the user's Apple ID on iOS? I need to use this account to identify the user in the application, if it is, for example, decides to change the device to another. I would be very grateful for any help for two days looking for on the Internet, can not find anything. Sorry for my english
there is no way in iOS SDK to get AppleId (email or password) or any information about it this type of data is very sensitive and I hope well secured ;) So no plugin for Cordova.
To identify an user in your application you can use other ways, for example Game Center Account or Facebook login to identify user. I suggest you to find more information about these steps:
Allow user to sign using game center or facebook for iOS applications
Store obtained identifier at your server
Store app/game data at your server with obtained identifier
When user sign back to your app you can identify him at your server
You may restore some app/game data from your server after user sign on other device
Depends on your needs what you need to store and restore when user sign back.
Also I suggest read some parts from https://developer.apple.com/app-store/review/guidelines/ like 17.2, 22.7 before you made final decision about what and how you will ask user for some credentials or other private dat.
To identify a user across devices the only real solution is the implement an authentication system of some kind. There is nothing accessible through the API to uniquely identify the user.

Game Center achievement behavior for multiple account game

Let's say that you develop an iOS game that allows the user to login and log out of different accounts using in-house account system. For example, you could login using Facebook, or email/password combination.
What is the best way for this game to handle Game Center achievements? How should situations with logging in and out handled?
Regardless of your in-house account management system, the associated user will need to login to Game Center. Unfortunately you cannot force a Game Center logout via iOS; this is something the user will need to do on their own.
As far as tracking achievements goes, let Game Center handle all of that. Your real challenge is going to be getting the user to explicitly launch the Game Center standalone application to sign-on & sign back in, either within the GC app or via your app's GC [login] presentation.
In order to ensure proper achievement progress is reported across users' accounts, the user logged into your app with their in-house account must also be logged in with their Game Center account. One way to at least ensure you don't cross the streams regarding achievement tracking & reporting is to have the user enter their Game Center display name while logging in via the in-house system.
Once past the in-house authentication, let Game Center player authentication take place, retrieve the local player's playerName and compare. If they match, flag this and track / report achievement progress normally.
If they don't match, it's up to you whether to prompt the user again for this information to check again. At the very least you should communicate to them that the in-house account does not match the Game Center account, and to move forward they will need to launch the Game Center app to logout & login. Otherwise, flag the mismatch, and use this logic to bypass achievement reporting (and potentially other GC functionality).
There's a post here with some more ideas.
Good luck!

Resources