在我的应用程序中,我正在存储我的令牌以访问 strings.xml 中的Web服务,但现在我想提交它(Github)而没有令牌值。
答案 0 :(得分:3)
您似乎专注于版本控制问题。如果在res/values/strings.xml
中使用该令牌对您有效,那么您可以将令牌值放在gradle.properties
中(例如,作为WEB_SERVICE_TOKEN
),并使用{从Gradle生成相应的字符串资源{1}}:
resValue
这将创建一个名为android {
defaultConfig {
resValue "string", "whatever_your_string_resource_is_called", WEB_SERVICE_TOKEN
}
}
的字符串资源,其中包含您在whatever_your_string_resource_is_called
中提供的值WEB_SERVICE_TOKEN
。然后,从您的版本控制系统中排除gradle.properties
(例如,通过gradle.properties
)。
更大的问题是:您的Web服务令牌是否真的存在于您的APK中?毕竟,you are leaking that token to anyone who wants to get it。根据应用程序的性质以及您尝试访问的此Web服务的性质,您可以尝试使用字符串资源,例如:
不使用应用中的Web服务,而是使用您自己的Web服务(例如,用户必须登录的服务)
使用应用中的Web服务,但安全地下载令牌并将其存储在internal storage上(因此只有那些根设备的用户才能获得令牌)