Github 如何在保持对该应用程序官方版本发布过程的完全控制的同时开放我的应用程序的源代码?

Github 如何在保持对该应用程序官方版本发布过程的完全控制的同时开放我的应用程序的源代码?,github,version-control,open-source,credentials,release-management,Github,Version Control,Open Source,Credentials,Release Management,我已经创建了一个新的Flatter移动应用程序项目,我想在GitHub上打开souce,但是有一些敏感信息我不会公开,因为尽管代码本身是开放的,但我仍然需要负责发布应用程序的官方版本 公开的代码当然允许人们参与开发,但我不想冒险让任何人用我的密钥签署他们的非官方版本的应用程序,并将其发送到商店,就好像是我发布了应用程序一样。此外,我想使用错误报告服务跟踪应用程序错误,但我不想让访问令牌在应用程序的源代码上可见,否则任何人都可以复制此访问令牌并开始发送错误,这些错误将被报告为从我的官方应用程序发送

我已经创建了一个新的Flatter移动应用程序项目,我想在GitHub上打开souce,但是有一些敏感信息我不会公开,因为尽管代码本身是开放的,但我仍然需要负责发布应用程序的官方版本

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

解决这个问题的最佳方法是什么

我认为可以将敏感信息存储在一个侧私有存储库中,然后设置一个构建过程来查找私有存储库中的文件(只有我可以访问该存储库)。如果私有存储库在当前构建计算机上不可用,那么将使用一些占位符文本构建代码,这将阻止人们使用我的访问令牌对此服务进行身份验证。然后,贡献的开发人员将负责提供他/她自己的访问令牌或注释掉代码,在使用应用程序源代码时,任何对他/她最有效的方法

以上只是一个想法,我不知道这是否是最好的方法,但我确实需要一些方法来开放我的代码,同时仍然完全控制着该应用的官方版本的发布


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

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


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

我认为这将是解决此问题的更合适的地方。我不知道StackExchange子域。我也可以试着去问,这取决于我在这里得到的答案。谢谢你让我知道这件事。