diff --git a/interfaces/innerkits/appverify/src/provision/provision_verify.cpp b/interfaces/innerkits/appverify/src/provision/provision_verify.cpp index c14442c6a5bfedfa84dcabdf47a5c8901aeee752..dd4d0e0fda4ec3da099099b4272647e9dad40e71 100644 --- a/interfaces/innerkits/appverify/src/provision/provision_verify.cpp +++ b/interfaces/innerkits/appverify/src/provision/provision_verify.cpp @@ -55,6 +55,7 @@ const string KEY_DEVICE_ID_TYPE = "device-id-type"; const string KEY_DEVICE_IDS = "device-ids"; const string KEY_ISSUER = "issuer"; const string KEY_APP_PRIVILEGE_CAPABILITIES = "app-privilege-capabilities"; +const string KEY_DEVELOPMENT_MODE = "const.product.developmentmode"; const string VALUE_TYPE_RELEASE = "release"; const string VALUE_DIST_TYPE_APP_GALLERY = "app_gallery"; const string VALUE_DIST_TYPE_ENTERPRISE = "enterprise"; @@ -63,9 +64,11 @@ const string VALUE_DIST_TYPE_CROWDTESTING = "crowdtesting"; const string VALUE_DEVICE_ID_TYPE_UDID = "udid"; const string GENERIC_BUNDLE_NAME = ".*"; +const string VALUE_DEVELOPMENT_MODE = "1"; const int32_t MAXIMUM_NUM_DEVICES = 100; const int32_t VERSION_CODE_TWO = 2; +const int32_t DEVELOPMENT_MODE_LENGTH = 2; inline void GetStringIfExist(const json& obj, const string& key, string& out) { @@ -291,7 +294,13 @@ AppProvisionVerifyResult ParseAndVerify(const string& appProvision, ProvisionInf if (ret != PROVISION_OK) { return ret; } - if (info.type == ProvisionType::DEBUG) { + const char *key = KEY_DEVELOPMENT_MODE.data(); + char developmentMode[DEVELOPMENT_MODE_LENGTH] = {0}; + GetParameter(key, nullptr, developmentMode, sizeof(developmentMode)); + const char *value = VALUE_DEVELOPMENT_MODE.data(); + bool isDevelopmentMode = (strcmp(developmentMode, value) == 0) ? true : false; + HAPVERIFY_LOG_DEBUG(LABEL, "Current development mode is %{public}d", isDevelopmentMode); + if (info.type == ProvisionType::DEBUG && !isDevelopmentMode) { ret = CheckDeviceID(info); if (ret != PROVISION_OK) { return ret;