rejected for iap, ios and unity


I’m going through this downside with iap, within the editor all the pieces works nice however on testflight in no way.
p.s. all the pieces within the editor and on apple developer is about corectly.
listed here are the codes:

Subsequent Steps

When validating receipts in your server, your server wants to have the ability to deal with a production-signed app getting its receipts from Apple’s take a look at atmosphere. The advisable method is on your manufacturing server to at all times validate receipts towards the manufacturing App Retailer first. If validation fails with the error code "Sandbox receipt utilized in manufacturing," it’s best to validate towards the take a look at atmosphere as an alternative.

Sources

  • Discover ways to arrange and take a look at in-app buy merchandise within the sandbox atmosphere.

  • For extra info on receipt validation, see the In-App Buy FAQ.

  • In case your app makes a SKReceiptRefreshRequest name and fails, don’t retry the decision. Assume the person doesn’t have entry. Proceed by making the addPayment name.

  • In case your app makes a SKReceiptRefreshRequest name to revive beforehand bought in-app purchases, be certain the app calls restoreCompletedTransactions when the person selects the "Restore" button.

Please see hooked up screenshot for particulars. Request a telephone name from App Evaluation

At your request, we will organize for an Apple Consultant to name you throughout the subsequent three to 5 enterprise days to debate your App Evaluation difficulty.


 
utilizing System.Collections;
utilizing System.Collections.Generic;
utilizing UnityEngine;
utilizing UnityEngine.UI;
public class Store : DialogBase
{
    [SerializeField] personal DiamondPack[] DiamondPacks;
    [SerializeField] personal CoinPack[]    CoinPacks;
    [SerializeField] personal RemoveAdsPack remove_ads_pack;
    public override void Init ()
    {
        base.Init ();
     
        InitShopDiamond ();
        InitCoinPack ();
        InitRemoveAds ();
    }
    personal void InitRemoveAds ()
    {
        remove_ads_pack.Init ();
        remove_ads_pack.RefreshPrice ();
    }
 
    personal void InitShopDiamond ()
    {
        for (int i = 0; i < DiamondPacks.Size; i++)
        {
            DiamondPacks[i].Init ();
            DiamondPacks[i].RefreshPrice ();
        }
    }
    personal void InitCoinPack ()
    {
        for (int i = 0; i < CoinPacks.Size; i++)
        {
            CoinPacks[i].Init ();
            CoinPacks[i].RefreshEarn ();
        }
    }
    public override void Allow ()
    {
       base.Allow ();
 
        for (int i = 0; i < DiamondPacks.Size; i++)
        {
            DiamondPacks[i].RefreshPrice ();
        }
        for (int i = 0; i < CoinPacks.Size; i++)
        {
            CoinPacks[i].RefreshEarn ();
        }
     
        remove_ads_pack.RefreshPrice ();
    }
 
    #area Work together
    public void InteractClose ()
    {
        DialogExtension.DisableDialog (DialogEnum.DialogId.Store);
     
        SoundManagerExtension.PlayAudioSound (AudioEnums.SoundId.Fx_Touch_Button);
    }
 
    #endregion
}
 
utilizing System.Collections;
utilizing System.Collections.Generic;
utilizing UnityEngine;
utilizing UnityEngine.UI;
public class Store : DialogBase
{
    [SerializeField] personal DiamondPack[] DiamondPacks;
    [SerializeField] personal CoinPack[]    CoinPacks;
    [SerializeField] personal RemoveAdsPack remove_ads_pack;
    public override void Init ()
    {
        base.Init ();
     
        InitShopDiamond ();
        InitCoinPack ();
        InitRemoveAds ();
    }
    personal void InitRemoveAds ()
    {
        remove_ads_pack.Init ();
        remove_ads_pack.RefreshPrice ();
    }
 
    personal void InitShopDiamond ()
    {
        for (int i = 0; i < DiamondPacks.Size; i++)
        {
            DiamondPacks[i].Init ();
            DiamondPacks[i].RefreshPrice ();
        }
    }
    personal void InitCoinPack ()
    {
        for (int i = 0; i < CoinPacks.Size; i++)
        {
            CoinPacks[i].Init ();
            CoinPacks[i].RefreshEarn ();
        }
    }
    public override void Allow ()
    {
       base.Allow ();
 
        for (int i = 0; i < DiamondPacks.Size; i++)
        {
            DiamondPacks[i].RefreshPrice ();
        }
        for (int i = 0; i < CoinPacks.Size; i++)
        {
            CoinPacks[i].RefreshEarn ();
        }
     
        remove_ads_pack.RefreshPrice ();
    }
 
    #area Work together
    public void InteractClose ()
    {
        DialogExtension.DisableDialog (DialogEnum.DialogId.Store);
     
        SoundManagerExtension.PlayAudioSound (AudioEnums.SoundId.Fx_Touch_Button);
    }
 
    #endregion
}

within the editor works properly with out errors, however in testflight nope…

See also  Xcode 14 “Publishing modifications from inside view updates is just not allowed, this may trigger undefined conduct” – Donny Wals

Leave a Reply