Issues testing on store builds (testflight and Android Internal test)

Hi,

Testing works fine in editor however when I build the game to store, it does not work. Are there permission setting that I need to set?

e.g. (This is from iOS Certificates, Identifiers & Profiles).

Also, does remote update change the compliance export questions for iOS.

There are no special permissions. Can you define “does not work”, how are you debugging? You mention “on the store”, when you build directly to a device locally, does it work then? You generally want to test on an actual device locally before publishing to the store. This may help with debugging https://discussions.unity.com/t/748729/14 and https://discussions.unity.com/t/700551

Thanks for the info. As far as the store goes, I was testing through testflight. I will revert back to local device test (android) to see if the issues persist.

What I meant by “not working”, is that the information was not being updated, while in editor test the information was being updated via remote config.

Please share your code that demonstrates the information that is not being updated.

Well, working now, user fault with regards to no internet access and a > sign would have been a < sign (which comes into play when there is no internet).

Here is my code, warts and all, for the sole purposes of critique.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Services.Core;
using Unity.Services.Authentication;
using Unity.RemoteConfig;
using UnityEngine.SceneManagement;

public class RemoteGameOverrides : MonoBehaviour
{

    public RemoteUpdateSO remoteUpdateSo;

    private bool gotRemoteConfigs = false;
    private float counter = 0;
    public struct userAttributes
    {
       
    }
    public struct appAttributes
    {
       
    }

    async void Start()
    {
        await UnityServices.InitializeAsync();
        if (!AuthenticationService.Instance.IsSignedIn)
        {
            await AuthenticationService.Instance.SignInAnonymouslyAsync();
        }

        ConfigManager.FetchCompleted += ConfigManager_FetchCompleted;
        ConfigManager.FetchConfigs(new userAttributes(),new appAttributes());
        StartCoroutine(LoadScene());
    }

    void ConfigManager_FetchCompleted(ConfigResponse configResponse)
    {
        switch (configResponse.requestOrigin)
        {
            case ConfigOrigin.Default:
                Debug.Log("Default Values");
                break;
            case ConfigOrigin.Cached:
                Debug.Log("Cached Values");
                break;
            case ConfigOrigin.Remote:
                Debug.Log("Remote Values");
                remoteUpdateSo.adRewardsGiven = ConfigManager.appConfig.GetInt("RewardAmount");
                Debug.Log("B " + remoteUpdateSo.initialPopUpString);
                remoteUpdateSo.initialPopUpString  = ConfigManager.appConfig.GetString("InitialPopUpString");
                Debug.Log("A " + remoteUpdateSo.initialPopUpString);
                remoteUpdateSo.popUpOnStartup  = ConfigManager.appConfig.GetString("PopUpOnStartup");
                remoteUpdateSo.popUpOnStartupVersion  = ConfigManager.appConfig.GetInt("PopUpOnStartupVersion");
                remoteUpdateSo.popUpOnStartupLastVersion  = ConfigManager.appConfig.GetInt("popUpOnStartupLastVersion");
                remoteUpdateSo.minDifficultyLevel  = ConfigManager.appConfig.GetInt("minDifficultyLevel");
                remoteUpdateSo.difficultyLevelJump  = ConfigManager.appConfig.GetInt("difficultyLevelJump");
                remoteUpdateSo.difficultyTimerMinimum  = ConfigManager.appConfig.GetInt("difficultyTimerMinimum");
                remoteUpdateSo.maxDifficultyTimer  = ConfigManager.appConfig.GetInt("maxDifficultyTimer");
                break;
        }
        gotRemoteConfigs = true;
    }

    IEnumerator LoadScene()
    {
        while (!gotRemoteConfigs && counter < 2)
        {
            counter += Time.deltaTime;
            Debug.Log(counter);
            yield return null;
        }
        SceneManager.LoadSceneAsync("MainGame");
        yield return null;
    }
}

most of it originally taken from the remote config example.

Glad you got it working! Remember that the Get* methods all take a second parameter which is a default value.