当前位置:  开发笔记 > 编程语言 > 正文

如何在Xamarin中处理"$ {applicationid}"?

如何解决《如何在Xamarin中处理"${applicationid}"?》经验,为你挑选了1个好方法。

我正在尝试为Zendesk库创建绑定,但我遇到了一个问题.

Zendesk Belvedere库(belvedere-1.0.2.1.aar)在其清单文件中包含一个文件提供程序:



        
            
        
    


当Gradle用作构建工具时,它会将其放在APK文件中,${applicationId}.belvedere.attachmentscom.your_package_name_here.belvedere.attachments在合并的清单文件中替换它.没关系.

但是,Xamarin以不同的方式处理它.这是我在最终APK的清单中找到的内容:



            
        
        ...
        ...
    

显然,dollar_openBracket_applicationId_closeBracket不是我需要的.

似乎一切正常,但是不可能安装几个使用这些绑定的Xamarin应用程序,因为所有这些应用程序都会有相同权限的冲突提供程序(并且用户会收到INSTALL_FAILED_CONFLICTING_PROVIDER错误).

是否有办法改变dollar_openBracket_applicationId_closeBracket清单?

编辑:显示问题的小样本:https://gitlab.com/lassana/ZendeskXamarin/



1> SushiHangove..:

当前Xamarin.Android清单合并构建任务(包括版本)在合并清单7.1.0.19中不提供任何bundeID/ApplicationID(${}}替换gradle.

这只是清单处理/合并任务的一个限制,因此dollar_openBracket_applicationId_closeBracket您最终会在最终清单中结束,并且必须自己更正两个清单.

当前唯一的解决方案让我知道要避免清单合并任务,它的局限性是:

    从'.aar`的清单中删除文件提供程序条目

    添加应用程序清单的完整文件提供程序条目

注意:您必须执行这两个步骤

取决于.aar更改的频率以及.aar从中获取文件的位置:

手动解压缩aar,删除条目并重新压缩aar(最快的方式)

使用bash或powershell cmds通过shell脚本在构建步骤中自动执行此操作

编写一个基于MSBuild C#的任务来完成它.

请求aar上游更改清单(不太可能发生;-)因为它工作正常w/gradle)

仅供参考:我个人已经看过${applicationId}你有几次这个问题.我已经编写了构建脚本(bash/.ps1)来执行清单修复,因为它似乎总是在.arr我正在处理的清单中的一些特殊情况.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有