Visual Studio Cordova应用程序ID

Visual Studio Cordova应用程序ID,cordova,visual-studio-cordova,visual-studio-2015,Cordova,Visual Studio Cordova,Visual Studio 2015,我使用Intel XDK创建混合应用程序。 我使用PlayStore的应用程序id作为gkg4.pro.obs 最近,我使用Cordova切换到Visual Studio 2015,但是,每当我尝试此ID时,即gkg4.pro.obs,我在编译时会收到退出代码8错误 如果我正在尝试gkg.pro.obs,即id中没有数字,则其工作正常 我无法更改ID,因为它已经是live应用程序 这个问题有什么解决办法吗?请帮助这是Cordova的限制,Cordova要求包名必须类似于com.company.n

我使用Intel XDK创建混合应用程序。 我使用PlayStore的应用程序id作为gkg4.pro.obs

最近,我使用Cordova切换到Visual Studio 2015,但是,每当我尝试此ID时,即gkg4.pro.obs,我在编译时会收到退出代码8错误

如果我正在尝试gkg.pro.obs,即id中没有数字,则其工作正常

我无法更改ID,因为它已经是live应用程序


这个问题有什么解决办法吗?请帮助

这是Cordova的限制,Cordova要求包名必须类似于com.company.name。Visual Studio使用Cordova CLI生成和打包应用程序,因此应用程序Id的格式不是com.company.Name会引发生成错误。请注意VS2013 CPT3.0是Cordova 4.0.0

解决方法: Android软件包名称在C:\Users\[username]\.cordova\lib\npm\u cache\cordova Android\3.6.4\package\bin\lib\create.js(cordova的一部分)中检查,您可以在下面的方法中修改软件包名称验证正则表达式以使用(!/^[a-zA-Z0-9]+([a-zA-Z0-9][a-zA-Z0-9\]*)+$/.test(软件包名称))

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的安装将覆盖此文件。

如果存在此类限制,那么Intel XDK如何能够以其他格式构建它?Visual Studio使用Cordova 4.0.0,我认为Intel XDK使用的是较低版本的Cordova。validatePackageName中的正则表达式似乎过于严格。我会向Cordova项目提交一个bug/增强请求。非常感谢,希望他们能尽快修复。