我在打包面向Windows Phone 10通用手机和Windows Phone 8.1的Cordova Windows应用时出现问题。
我的应用程序是用JS&使用Cordova定位iOS,Android和Windows的HTML。建设时在Windows上打包我有以下问题:
我无法创建一个被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}}个文件:
这会破坏Windows应用商店中neutral
部分的显示,因为现在会根据您查看的平台列出Supported processors
或neutral, arm
。我该怎么做才能解决这个问题?我需要商店识别不同的语言,但不能构建x86, x64, arm
。
我的第二个问题是关于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>
为了清楚起见,该项目的适用性是:
<Prerequisites>
<OSMinVersion>8.10.14147</OSMinVersion>
<OSMaxVersionTested>8.10.15148</OSMaxVersionTested>
</Prerequisites>
如果有人可以帮我解决这两个问题,那将会很棒。非常感谢提前!