We recently used the ‘Remote Config’ plug-in in our project.But the version was rejected by Apple’s review team. They said we violated App Store Review Guideline 2.5.2 of the Apple Developer Program License Agreement.
It means that we’ve called some forbidden methods.The original words are "This includes any code which passes arbitrary parameters to dynamic methods such as dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations(), and running remote scripts in order to change app behavior and/or call SPI, based on the contents of the downloaded script. "
We upgraded the Unity version to ‘2018.4.29f’.And we changed the Scripting Runtime Version to ‘.Net 4.x Equivalent’.To find out reasion, we ran the following tests:
1.We imported the Remote Config 2.0.0 in Package manager.And we created an empty project that contains only contains the Remote Config plug-in.There is no forbidden methods.
2.We added a scriptto call Remote Config.
using UnityEngine;
using Unity.RemoteConfig;
public class RemoteConfigMgr : MonoBehaviour
{
public struct userAttributes { }
public struct appAttributes { }
public void Awake()
{
ConfigManager.FetchCompleted += ConfigManager_FetchCompleted;
ConfigManager.FetchConfigs<userAttributes, appAttributes>(new userAttributes(), new appAttributes());
}
public void OnDestroy()
{
ConfigManager.FetchCompleted -= ConfigManager_FetchCompleted;
}
public bool FetchNewConfig()
{
if (Application.internetReachability == NetworkReachability.NotReachable)
{
return false;
}
ConfigManager.FetchConfigs<userAttributes, appAttributes>(new userAttributes(), new appAttributes());
return true;
}
private void ConfigManager_FetchCompleted(ConfigResponse response)
{
switch (response.requestOrigin)
{
case ConfigOrigin.Default: break;
case ConfigOrigin.Cached: break;
case ConfigOrigin.Remote: break;
}
}
}
But we found it contains ‘dlopen,dlsym’.It was this problem that led to the rejection of our review.
Can you tell me what we should do now?
This is my player setting.