如何为ARM平台构建Tizen C# .NET Wearable TPK并发布到三星卖家门户?



Background

我正在尝试将我的 Tizen 可穿戴 .NET 应用程序发布到三星卖家门户。

我正在使用最新的 Visual Studio 2017 Tizen 插件,并且可以使用我的作者和分销商证书在模拟器和真实设备 (Gear Sport( 上的发布模式下成功运行我的应用程序。 我的应用程序面向 Tizen 4.0。

三星卖家门户需要发布二进制文件,但没有给出太多说明,因此我假设要获得此信息,我正在使用正确设置的证书配置文件在发布模式下重建解决方案。 结果 TPK 文件位于bin/Release文件夹中。

检查 TPK 二进制存档时,我看到了所有构建的 DLL、资源、清单等。

问题所在

一旦我将此二进制文件上传到三星卖家门户并提交以供审核,由于以下错误,它无法通过自动预审核:

[缺陷] 应用程序是由 x86 编译器构建的。X86 表示应用运行于 Tizen模拟器,不是真正的目标。

[预期结果] 请在构建时配置架构以布防 .app。项目属性 -> C/C++ 构建 -> Tizen 设置,您可以 检查应用文件名的体系结构。

例如 org.example.app-1.0.0-arm.tpk e.g. org.exapmple.ap-1.0.0-x86.tpk

【参考】一般情况下,平台架构自动选择 基于测试环境。如果测试设备通过USB连接,Tizen IDE 会自动选择手臂架构,但如果模拟器已连接 到SDB,Tizen IDE自动选择了ARM架构。

这里的说明是无用的,因为我使用的是Visual Studio和C# .NET,而不是Tizen Studio或C++。

附加到拒绝的是一个名为gear_core_architecture.txt的文件,其内容很简单:

英特尔 80386[libSkiaSharp.so]

这是有问题的文件吗?如果我检查发布二进制 TPK 存档,我会在bin/runtimes/linux-x86/nativebin/runtimes/tizen-armel/native文件夹中找到libSkiaSharp.so文件。 我根本没有在我的应用程序中使用SkiaSharp,但我的 nuget 包可能是(Tizen.NET、Xamarin 等(。 查看Tizen-CSharp示例项目,SkiaSharp 项目示例还在其 TPK 中包含这些库。


我已经在Visual Studio中到处寻找,无法更改任何解决方案或项目的平台类型arm。 现在它只为Any CPUx86x64而构建。 我已经从各个组件中添加了 ARM 和 ARM64 的C++编译器到 Visual Studio,但没有变化。 手动创建ARM构建配置不会让我这样做。

TL;博士

如何在Visual Studio 2017中构建适用于ARM平台的Tizen Wearable C# .NET应用程序,以便发布到Samsung Seller Portal?

在 Tizen 支持论坛上提出相同的问题会导致以下解决方案,如果其他人遇到此问题,请在此处回答以供将来参考。

参考: https://developer.tizen.org/forums/tizen-.net/unable-publish-c-tizen-.net-wearable-tpk-seller-portal


结果 TPK 中的linux-x86文件夹使三星卖家门户中的自动拒绝系统跳闸。

解决方案是将以下行添加到可穿戴项目的 *.csproj 文件中的属性组中,以便tizen-armel是唯一生成的行。

<RuntimeIdentifier>tizen-armel</RuntimeIdentifier>

例:

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>tizen40</TargetFramework>
<RuntimeIdentifier>tizen-armel</RuntimeIdentifier>
</PropertyGroup>

至于包括libSkiaSharp.so在内的内容,是包Xamarin.FFImageLoading.Svg.Forms

相关内容

  • 没有找到相关文章

最新更新