Идентификатор приложения Visual Studio Cordova

Я использовал Intel XDK для создания гибридных приложений. Я использовал идентификатор приложения для PlayStore как gkg4.pro.obs.

Недавно я перешел на Visual Studio 2015 с Cordova, однако всякий раз, когда я пытаюсь использовать этот идентификатор, то есть gkg4.pro.obs, я получаю ошибку Exit Code 8 при компиляции.

если я пытаюсь использовать gkg.pro.obs, то есть без числового идентификатора, он работает нормально.

Я не могу изменить идентификатор, так как это уже работающее приложение.

Любое решение этой проблемы? Пожалуйста помоги


person Garth Sebastian    schedule 17.11.2014    source источник


Ответы (1)


Это ограничение Кордовы, Кордова требует, чтобы имя пакета выглядело как com.company.Name. Visual Studio использует Cordova CLI для сборки и упаковки приложения, поэтому идентификатор приложения не в формате com.company.Name вызывает ошибку сборки. Обратите внимание, что VS2013 CPT3.0 — это Cordova 4.0.0.

Временное решение: имя пакета Android проверяется в C:\Users\[username]\.cordova\lib\npm_cache\cordova-android\3.6.4\package\bin\lib\create.js (часть of Cordova), и вы можете изменить регулярное выражение проверки имени пакета, чтобы использовать (!/^[a-zA-Z0-9]+(.[a-zA-Z0-9][a- zA-Z0-9_]*)+$/.test(package_name)) в методе ниже.

function validatePackageName(package_name) {
    //Make the package conform to Java package types
    //Enforce underscore limitation
    if (!/^[a-zA-Z]+(\.[a-zA-Z0-9][a-zA-Z0-9_]*)+$/.test(package_name)) {
        return Q.reject('Package name must look like: com.company.Name');
    }

    //Class is a reserved word
    if(/\b[Cc]lass\b/.test(package_name)) {
        return Q.reject('class is a reserved word');
    }

    return Q.resolve();
}

После внесения вышеуказанных изменений очистите решение и перестройте проект.

Обратите внимание, что это временное исправление, и установка Cordova перезапишет этот файл.

person Abhishek - MSFT    schedule 18.11.2014
comment
Если есть такое ограничение, то почему Intel XDK может построить его в другом формате? - person Garth Sebastian; 19.11.2014
comment
Visual Studio использует Cordova 4.0.0, и я думаю, что Intel XDK использует более раннюю версию Cordova. - person Abhishek - MSFT; 20.11.2014
comment
Регулярное выражение в validatePackageName кажется чрезмерно ограничительным. Я бы отправил запрос об ошибке/улучшении в проект Cordova. - person lencharest; 25.11.2014
comment
Большое спасибо, надеюсь, они исправят это как можно скорее. - person Garth Sebastian; 03.12.2014