如何在保持对该应用程序正式版本发布过程的完全控制权的同时开源我的应用程序?

问题描述

我创建了一个新的Flutter移动应用程序项目,我想在GitHub上打开源代码,但是有一些敏感信息我不会公开提供,因为尽管代码本身是开放的,但我仍然需要负责发布应用正式版的一位。

公开的代码当然可以使人们为开发做出贡献,但是我不想冒这样的风险,即允许任何人使用我的密钥签署他们的非官方版本的应用程序并将其发送到商店,就好像是我发布应用程序。另外,我想使用错误报告服务来跟踪应用程序错误,但是我不想使访问令牌在应用程序的源代码中可见,否则任何人都可以复制此访问令牌并开始发送错误消息,将被报告为是从我的官方应用发送的。

解决此问题的最佳方法是什么?

我认为将敏感信息存储在侧面专用存储库中,然后设置一个构建过程以在专用存储库中查找文件(只有我可以访问),这可能会起作用。如果私有存储库在当前的构建机器上不可用,则将使用一些占位符文本来构建代码,这将阻止人们使用我的访问令牌对该服务进行身份验证。然后,参与开发的开发人员将负责提供他/她自己的访问令牌或对代码进行注释,无论在使用应用程序源代码时最适合他/她的是什么。

以上内容仅是一个想法,我不知道这样做是否是最好的方法,但是我当然需要某种方式来开放我的代码,同时仍能完全控制其正式版本的发布。该应用程序。

有人对此有经验或想法可以帮助我吗?

解决方法

最简单的方法是在构建过程中使用某种配置文件或环境变量进行发布,默认为一些示例值。理想情况下,如果未指定令牌,则该应用仍然可以正常运行而不会报告错误;这是通常的开发方法。

如果使用CI系统,则可以将这些凭据存储在CI系统的秘密存储区中,并在进行生产发行时将其用于构建和签名。