Windows Cordova App(Universal 10 Phone& 8.1 Phone)构建和打包问题

时间:2016-03-03 08:53:42

标签: cordova localization windows-phone-8.1 windows-store-apps win-universal-app

我在打包面向Windows Phone 10通用手机和Windows Phone 8.1的Cordova Windows应用时出现问题。

我的应用程序是用JS&使用Cordova定位iOS,Android和Windows的HTML。建设时在Windows上打包我有以下问题:

  1. 我无法创建一个被Windows应用程序识别为支持多种语言的软件包。我在appxmanifest中有以下资源令牌:<Resource Language="x-generate">但它只会检测我设置为de-CH的默认语言。然后我用实际的语言标记替换了这个标记:<Resource Language="de-CH"><Resource Language="fr-CH">...。在构建时,VS2015会抱怨默认语言没有资源,并且我遇到了与以前相同的问题,该应用程序只会被识别为支持1种语言。在谷歌搜索了一下后,看看Localization Example我将以下内容添加到我的CordovaApp.Windows.jsproj(WinPhone10)和CordovaApp.Phone.jsproj(WinPhone8.1)文件中:

    <ItemGroup>
      <Content Include="strings\de-CH\resources.json" />
      <Content Include="strings\fr-CH\resources.json" />
      <Content Include="strings\it-CH\resources.json" />
      <Content Include="strings\en-US\resources.json" />
    </ItemGroup>
    

    <ItemGroup>
      <PRIResource Include="strings\de-CH\resources.resjson" />
      <Content Include="strings\de-CH\resources.json" />
      ...[These two lines repeated for every other language]...
    </ItemGroup>
    

    我当然也在我的项目中创建了这个文件夹结构(strings\de-CH\...等)。 .json.resjson文件仅包含以下内容:{},因为我不使用本机本地化功能。 这确实有效,商店正确地将应用程序识别为多语言。 但是它开始构建_language-fr.appx等二进制文件并将它们添加到捆绑包中。 这个问题是我只针对arm架构,因为我使用的插件之一需要针对特定​​架构构建,并且不支持neutral目标。但奇怪的是,Windows Phone 10 Universal捆绑包现在包含编译为_language-x.appx的{​​{1}}个文件: Bundle contents on the Windows Store show neutral appx 这会破坏Windows应用商店中neutral部分的显示,因为现在会根据您查看的平台列出Supported processorsneutral, arm。我该怎么做才能解决这个问题?我需要商店识别不同的语言,但不能构建x86, x64, arm

  2. 我的第二个问题是关于Windows应用商店中的neutral部分。我在这里有一个问题:

    Supported operating systems

    有一段时间它也显示Windows Phone 10 Windows Phone 8.1 Windows Phone 8 神秘地消失了......但我仍然只针对前两个。从上面的屏幕截图中可以看出,商店正确识别了Windows Phone 8.1版本,我只上传了两个可见版本。我不想定位Windows Phone 7。对于Windows Phone 10 appxmanifest,我有以下条目:

    Windows Phone 8

    这主要是默认设置,我只调整了<Dependencies> <TargetDeviceFamily MaxVersionTested="10.0.10586.29" MinVersion="10.0.10586.0" /> </Dependencies> 并添加了MaxVersionTested(我还没有使用此Name="Windows.Mobile"属性设置构建和提交),只是为了在安全方面。 在Windows Phone 8.1 appxmanifest中,我有以下条目:

    Name

    我检查了Windows Phone 8.1的版本代码,它们看起来非常不同。这些版本看起来像普通的Windows 8.1版本代码。 Windows Phone 8.1版本代码较长,但appxmanifest中的属性仅允许具有3个位置的版本。如果我将其更改为以下内容,它会有所帮助甚至是否有效:

    <Prerequisites>
      <OSMinVersion>6.3.1</OSMinVersion>
      <OSMaxVersionTested>6.3.1</OSMaxVersionTested>
    </Prerequisites>
    
  3. 为了清楚起见,该项目的适用性是:

    <Prerequisites>
      <OSMinVersion>8.10.14147</OSMinVersion>
      <OSMaxVersionTested>8.10.15148</OSMaxVersionTested>
    </Prerequisites>
    

    如果有人可以帮我解决这两个问题,那将会很棒。非常感谢提前!

0 个答案:

没有答案