Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

About ''dlopen,dlsym'',we are rejected by appstore review.

Discussion in 'Unity Remote Config' started by KvenLee, Nov 18, 2020.

?

Have you ever come across this problem 'dlopen,dlsym' ?

  1. yes

    66.7%
  2. no

    33.3%
Multiple votes are allowed.
  1. KvenLee

    KvenLee

    Joined:
    Nov 18, 2017
    Posts:
    1
    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.

    Code (CSharp):
    1. using UnityEngine;
    2. using Unity.RemoteConfig;
    3.  
    4. public class RemoteConfigMgr : MonoBehaviour
    5. {
    6.     public struct userAttributes { }
    7.     public struct appAttributes { }
    8.  
    9.     public void Awake()
    10.     {
    11.         ConfigManager.FetchCompleted += ConfigManager_FetchCompleted;
    12.         ConfigManager.FetchConfigs<userAttributes, appAttributes>(new userAttributes(), new appAttributes());
    13.     }
    14.  
    15.     public void OnDestroy()
    16.     {
    17.         ConfigManager.FetchCompleted -= ConfigManager_FetchCompleted;
    18.     }
    19.  
    20.     public bool FetchNewConfig()
    21.     {
    22.         if (Application.internetReachability == NetworkReachability.NotReachable)
    23.         {
    24.             return false;
    25.         }
    26.  
    27.         ConfigManager.FetchConfigs<userAttributes, appAttributes>(new userAttributes(), new appAttributes());
    28.         return true;
    29.     }
    30.  
    31.     private void ConfigManager_FetchCompleted(ConfigResponse response)
    32.     {
    33.         switch (response.requestOrigin)
    34.         {
    35.             case ConfigOrigin.Default: break;
    36.             case ConfigOrigin.Cached: break;
    37.             case ConfigOrigin.Remote: break;
    38.         }
    39.     }
    40. }
    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.
    upload_2020-11-18_16-5-11.png
     
    zhouxing likes this.
  2. vd_unity

    vd_unity

    Unity Technologies

    Joined:
    Sep 11, 2014
    Posts:
    37
    Hi @KvenLee ,
    Thanks for your feedback!
    We believe the error you encountered is not related to remote config package, but it would be great to trace back which method call actually generates dlsys call during il2cpp conversion.
    Could you provide some kind of stack trace or a log that could help us further with this issue?

    Thanks,
    Vlatko