彻底搜索这个网站确实找到了我的问题(来自不同的用户),但没有答案,所以我想问自己:
背景:使用Apache Cordova 4.x和Visual Studio 2013(所有最新更新)。制作了一些应用程序 - 在Android和其他平台上正常运行 - 成功部署到Windows Phone 8.1。上传的捆绑包到手机商店,打包的应用程序ID与商店期望的不匹配存在问题。
详细信息:问题在于商店将我的应用(之前已保留)命名为" 12345myname.appname"但在Config.xml中,app id为" com.myname.appname"。将小部件ID或appid或包ID重命名为12345myname.appname"因此失败:错误48文件内容不符合指定的架构。 ' Id'属性无效......' http://schemas.microsoft.com/appx/2010/manifest:ST_ApplicationId' ...
我知道这个错误是什么,但是我已经用尽所有可能的方法来解决它(来自cordova的create.js有正确的正则表达式 - 无需更改它,在res / native / windows中删除appx清单,直接编辑appx清单,使用其他配置文件等...)没有任何作用。我必须遗漏一些绝对明显的东西。
vs:platformspecific设置确实包含正确的商店发布者ID和appid但是这不知道用于构建包,我假设对清单的构建后检查显示包上的商店ID不正确,即使我在自定义清单上覆盖它(自定义清单在重新打包时忽略)
任何人都可以提供一些见解吗?听起来像Cordova或VS构建捆绑包有问题,但我认为问题是我和我没有做的事情。
答案 0 :(得分:3)
好吧,在经历了如此简单的事情(最终)之后,我确实找到了这个问题的答案。确切的答案可以在这里找到(http://www.spdoctor.net/Pages/article.aspx?name=Using-Visual-Studio-Tools-for-Apache-Cordova),并且可以归功于那篇文章 - 非常感谢!
简而言之......在构建通用解决方案(WP8,WP8.1和Windows 8.1)后,进入BLD / RELEASE / PLATFORM / WINDOWS文件夹,您将找到一个“cordova.sln”Visual Studio解决方案。在Visual Studio中打开它(暂时忽略您自己的解决方案,只需单独打开它),您将看到包含三个目标Windows平台的共享通用项目。
每个项目目标都有一个清单文件。双击然后在设计模式下打开(执行所有三个清单)并转到打包选项卡,就像本机应用程序一样。在那里,将您的应用程序ID的名称更改为正确的商店ID(12345You.YourApp)。
然后使用visual studio(右键单击这3个项目中的一个,例如Windows Phone 8.1)并选择STORE选项,然后关联并为商店创建包 - 创建一个包包并将其上传到商店。问题解决了,如果你有一个Android或IOS目标,这不会弄乱你自己的项目。
正如作者所指出的,这里有一些与Cordova 4.x和VS CTP 3.1有关的错误,所以这似乎是解决这个问题的唯一方法。我已经安装了英特尔XDK并成功构建了我的应用程序:)我离完全放弃只有一步......
真的,这可以记录得更好但是,我不想抱怨......我对科尔多瓦来说是全新的,所以我可能完全错过了一个明显的解释...这是CTP / Beta我也会给它一个通行证......
答案 1 :(得分:1)
最简单的方法是添加以下行:
<preference name="WindowsStoreIdentityName" value="YOUR_ID" />
在config.xml
中的Windows平台标记的末尾