iOS publishing via Intel XDK experts needed

0 favourites
From the Asset Store
Forget about default textbox restrictions, you can create sprites atop of the textbox
  • Hi everyone,

    My game is finished, but there is still one last big problem that keeps me from publishing : IAP are not working on iOS. I really, REALLY need your help to get over this.

    To give you a few indications about my problem :

    I'm exporting with Intel XDK for both iOS and Android version.

    -The game works perfectly on Android (IAP are working)

    • I use the exact same events to manage IAP on Android and iOS (product IDs are the same)
    • I'm currently exporting the Game with adhoc provisionning profile. Up to now, I am unable to build in XDK with a production provisionning profile (despite the fact I added one. The build always fails)
    • The sandbox environment works on my device.
    • The test device is connected to the internet (ads are working)
    • All IAPs are approved by Apple and seem to be correct in iTunesConnect
    • The game plays perfectly on my test device except that...

    - The "Request store listing" action always returns "Store listing failed".

    Can you see what could be wrong?

    So to resume, I have 4 questions :

    1) To test an iOS game's IAPs in sandbox environment, do I need a "production" provisionning profile, or could an "adhoc" one work?

    2) Does publishing an iOS game to the Apple App Store requires a "production" provisionning profile, or could an "adhoc" one work, given there are IAP in it?

    3) How could I build successfully with a "production" provisionning profile in Intel XDK? I created one, but the build always fails.

    4) Is it normal that in a game running in sandbox environment, exported with an adhoc provisionning profile, "Request Store Listing" always returns "Store Listing Failed"?

    Many, many thanks in advance to anyone who could help me on any of these points.

  • testing doesn't not requires publishing which means it should all work with the adhoc version .

    A production provisioning is required to publish to the store. you should try making a new one the xdk has a tutorial the shows the proper way to go about making it. as for the Request store listing i know there had been a problem with that working on ios im not sure if newer build have been released fixed that issue yet

  • Hi

    You can definitely use an adhoc build to test IAPs.

    Are you sure you have signed out of your iTunes account in the device Settings, and signed in with your sandbox account credentials?

    You need to go to iTunes connect and set up a sandbox user account for IAPs.

    If you purchase using the sandbox account, the store remembers the purchase.

    [Edit] I've recently done a production build with the XDK, so that bit is working fine. volkiller730 suggestion is good, redo the production profile in Developer Center. Should take only 2 minutes to remake and download it.

    One other side note about Apple identifiers, is that they allow you to use dashes (com.me.my-game) However! The Intek XDK will fail to build if you use dashes in the identifier. This has nothing to do with IAPs however...

  • Hi and thanks a lot for the replies!

    aquinn

    When I launch the game, I receive a notification :

    "Welcome Back, (username)

    ***SANDBOX***"

    So I suppose the sandbox is correctly configured. Or could it tell me this message even when there is a problem with the sandbox account?

    I already made at least 3 production profiles, and followed each time the step by step instruction from Intel XDK "build" tab. I'm probably missing something there, so I guess I'll delete all the profiles I created and make a new one.

    But I also understand that the wrong provisionning file is not the cause of the problem, as you both pointed out it should work in sandbox environment...

    I also have no dashes in my app ID, but thank for the side note, it's good to know!

    volkiller730

    Oh no, I hope this is not a bug, and that I will be able to get the store listing succeed.

    Can anyone confirm he has a game published with this feature working on iOS?

    In case it really can't work, is there a workaround?

    I had multiples cases of people paying for an IAP and not getting the stuff they paid for (!!!) when I was not using this action on Android. Now I launch the shop only when the store listing is successful and it's all good. But I really would like to avoid such problems on iOS.

    Maybe using C2 IAP plugin rather than phonegapIAP may help?

    StormHo

    Sure, I have business licence

  • Rable I think the "Welcome back ***Sandbox***" is Game Center automatically logging in, not related to IAP. You need to create a completely new test account with a different email to your developer account to test IAPs. (AFAIK - this works for me)

    I got IAPs to work in Jan, using the Intel XDK and cranberry's Phonegap IAP plugin.

    This was back in January when iOS8.0/8.1 was the latest version. Since then we are up to iOS 8.3 I have found the iOS part of the native/cranberry Admob pluging is broken on iOS 8.2/8.3 so maybe there is a bug with the IAP plugin (this is pure speculation BTW!) -I suspect the problem is not logging in to iTunes with a test account.

  • aquinn Maybe I was unclear on that point, but I already created a different account based on a new email address, which was not used by any Apple account, as specified on Apple's website, and created a sandbox account based on this email.

    I struggled a bit to create a,d activate it, but I'm confident that it should be a test account that I specified in iTunes Connect. Is there a way to check this?

    I'll still try to create a new sandbox account based on a new email adress and see how it goes.

    Did you manage to have store listing success in january? Because i'm stuck on this problem since janurary! And I could tell you I had the exact same behavior back in january (store listing failing).

    Thanks!

  • Rable Thanks for clarification.. .It sounds like you have set up the test account OK. If the account is displayed in iTunes Connect>Users and Roles>Sandbox Testers, and you can log in to iTunes on the device, then that bit all seems valid.

    Yes, store listing was working fine in Jan. You probably know this already but the event process is something like this:

    1. On start of layout, add the product IDs.

    2. Then, also on start of layout, request store listing (you are prompted to login on the device I think if not logged already...)

    3. It can take a few seconds for it to come back with a store listing result.

    4. But once triggered listing success, write to a text box with 'Listing Success' so you know what's happening.

    5. Also, use the condition "Is Store Available" to write 'YES' to a text box, so at least you know the store is available.

    ^^Sorry if that is too basic, but sometimes the small things matter!

    I use an initialisation layout&event sheet that does the product IDs and store listing before going to the main home screen layout&event sheet.

  • aquinn Thanks a lot for the reply! This is very, very useful!

    The sandbox tester account is definitely created in iTunes Connect, but I am accessing iTunes with my main Apple account (this (non-sandbox) address appears in the device's settings, when touching "iTunes Store and App Store"). Should I log in to iTunes with my Sandbox account? (I guess I heard this may delete the sandbox account, but I'd like to be sure this first step is done correctly)

    The only thing I can see that is different from what you tell me is that I'm not launching the store listing at the start of layout, but when touching a button. Actually the "store listing success" condition is used to launch the shop layout. That's how I'm doing it on Android.

    I did it this way because accessing the shop without "store listing success" resulted on Android in some people purchasing IAP and not receiving what they paid for... :-/

    I'm already displaying a text when store listing is successful or failed, that's how I know it always fails.

    However, I did not use the "is store available" condition to know if it is available. That's an interesting thing to try, and I'll do this as soon as possible!

    I'll also try to create a new layout + event sheet to get the store listing, just in case it NEEDS to be at the start of layout on iOS.

    Thanks again!

    EDIT : One thing that I didn't tell is that back in January, I had approval from Apple, and released the game (in Belgium only) for a few hours, to check if everything was working. And IAP weren't working (despite Apple's approval!), so I deleted it from the store in order to fix it. This leads me to think that my problem is probably not (only?) a sandbox account problem.

  • better add group (disabled at start)

    and for example when the player

    • push button set the group to active

    in the group you add these event

    for example :

    • when touch button > add product id then wait for 2 seconds > request store listing (you can add an "please wait" animation
    • on store listing success > purchase product ""
    • on product purchased success > destroy the "please wait animation" + disable the group event + put what youwant

    this avoid that on game start to try login and force the player buy or to login (people hates that)

    then the iap event are activated only when the user push the button

  • aquinn

    Just checked, my sandbox account is working properly. No doubt.

    matrixreal

    Thanks for the ideas!

    In my case, I request Store listing only when touching the "shop" object rather than at the beginning of the layout, or when touching the object to purchase.

    I'll try to put these events in a disabled group as you suggest. Sounds like it could fix my problem.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • aquinn matrixreal

    Ok, I just tried both your solutions. I first created a deactivated group with the following events :

    add product IDs

    wait 2 sec

    Request store listing

    wait 2 sec

    Deactivate the group

    in another part of my code I have

    • On store listing success --> do something
    • on store listing failed --> do something else

    And the store listing always fails...

    Then I created another Capx that redirects the player to a "Shop Listing" layout when he clicks on the shop button

    The layout is empty and the dedicated event sheet is as follows :

    trigger once :

    Add product IDs

    wait 2 sec

    Request store listing

    On store listing success : do something

    on store listing failed : do something else

    The store listing also always fails... (((

    I'm really lost, I'm completely unable to make the store listing to succeed.

    You can confirm that I have to enter the product ID in Construct, and not the Apple ID, right? (i.e. "potions" rather than 89456456484864 or whatever)

    Still need to try this "is store available" thing...

  • Yes, confirmed, you enter the text name for the IAP, not the code, e.g. "coins".

    I'm not sure what else to suggest..

  • From the last test I made, "is store available" triggers. What does it implies?

    Does it mean that I can use the "purchase" action without needing to have the store listing to success? (and without running the risk of having my users buy something and not receiving it, like I had on Android before I was using store listing)

    I'll triple check the product IDs tonight, but as the IDs are the same than in the Android version, and it works fine on Android, I don't have much hope...

    Maybe I'll retry the C2 IAP plugin rather than cranberrygame's.

  • I made an additional test using C2 IAP plugin instead of Cranberrygame's. The behavior is different.

    When I start the game, I get the following message (translation from french, could be slightly different in english):

    Connect to the iTunes Store.

    If you have an Apple ID, please connect.

    (environment : Sandbox)

    Cancel Purchase

    I touch "cancel" (I'm afraid that "purchase" may disable my sandbox account, I've read a few things about that)

    Then I have another message :

    "index.html

    IAP error (only reported in test mode):

    restore failed with code 4983503

    THEN I got the message that my sandbox account connected to the game.

    I closed the game, reopened it, and everything was exactly the same.

    Then I disconnected from my non-sandbox account in the device's settings an re-run the game

    I've been prompted to enter my sandbox account, which I did, and the game connected correctly to the sandbox environment.

    So I tested if the store listing was successful, and... the store listing request actually never got a response... Neither "on store listing success" or "on store listing failed" triggered.

    So I made a new test to see whether or not "is store available" triggers, and it triggered both for C2 IAP and Phonegap IAP.

    Conclusion :

    C2 IAP :

    Store available

    Store listing never get a response

    Phonegap IAP :

    Store available

    Store listing always fails.

    I'm currently making a blank project with just the store listing actions and conditions to see if a basic test works or not.

    EDIT :

    I copied and pasted my "add product IDs" action in a new project which is as follow :

    Only one layout, with one event sheet :

    at the start of layout :

    add product IDs

    Request store listing

    On store listing success : set text to "success"

    On store listing failed : set test to "failed"

    Then I exported the project as the newest version of Healer Quest in XDK then in App Loader, tested it in sandbox mode...

    And it succeeded!!!!!!

    Incredible! I guess the conclusion is that the only thing problematic is the way my events are dispatched into the code. Even thought it works on Android, it seems like iOS has further restrictions. I'll try to make further changes to my code in order to make it work.

  • I'm still struggling with the store listing problem.

    From the last tests I've made, in the following capx :

    the store listing is always successful! It doesn't either wait for me to log on with my sandbox account! As long as I am connected, the Store Listing immediately success. Actually it doesn't even wait for me to touch the sprite!

    In my second test, I took the exact same capx, but added a first layout with a sprite object. Touching the sprite objet leads to the above layout.

    On this layout the only difference is that I checked 2 has product conditions then (on the same level, not as a sub-event of the "has product" ) I set text to "success" and go to layout 2

    In this case, the "Request store listing" never has a reply. i.e. it never succes and never fails.

    So that's about it. I'm still unable to find the correct way to check if the store listing is succesful or not. Depending on the way my event are placed it may succeed, fail or never get an response. Even if I put "request store listing" at the start of layout, on the first layout, in some other tests, the store listing never has a response.

    Does anyone knows what are the exact requirements to have the store listing succeed?

    cranberrygame ? Ashley?

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)