【问题标题】:Visual Studio Cordova Application IDVisual Studio Cordova 应用程序 ID
【发布时间】:2014-11-17 17:19:21
【问题描述】:

我使用英特尔 XDK 创建混合应用程序。 我将 PlayStore 的应用程序 ID 用作 gkg4.pro.obs

现在我最近切换到带有 Cordova 的 Visual Studio 2015,但是,每当我尝试使用此 ID(即 gkg4.pro.obs)时,我在编译时都会遇到退出代码 8 错误。

如果我正在尝试 gkg.pro.obs,即 id 中没有数字,它可以正常工作。

我无法将 ID 更改为已上线的应用。

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

【问题讨论】:

    标签: cordova visual-studio-cordova visual-studio-2015


    【解决方案1】:

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

    解决方法: 在 C:\Users\[username]\.cordova\lib\npm_cache\cordova-android\3.6.4\package\bin\lib\create.js(Cordova 的一部分)中检查 Android 包名称,您可以修改包要使用的名称验证正则表达式 (!/^[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 将覆盖此文件。

    【讨论】:

    • 如果有这样的限制,那么英特尔 XDK 怎么能以其他格式构建它?
    • Visual Studio 使用的是 Cordova 4.0.0,我认为 Intel XDK 使用的是较低版本的 Cordova
    • validatePackageName 中的正则表达式似乎过于严格。我会向 Cordova 项目提交错误/增强请求。
    • 非常感谢,希望他们尽快修复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多