在decompiling是我的Android应用APK文件时,我在清单文件中找到了Fabric ApiKey键。如何通过APK反编译保护Fabric API密钥?
我已经完成了以下代码更改,以从清单文件中隐藏Fabric API密钥。但在APK反编译后仍然可见。
我添加了我的Fabric API密钥
FabricAPIKey=0123456789ABCDEF012345123456789ABCDEF012
在gradle.properties中。
在build.gradle(模块)
...........
def FABRIC_API_ID = FabricAPIKey
.....
buildTypes {
debug {
..........
manifestPlaceholders = [//this is used for defining the variable for manifest file
FABRIC_API_KEY:FABRIC_API_ID
]
}
release{ ..........
manifestPlaceholders = [//this is used for defining the variable for manifest file
FABRIC_API_KEY:FABRIC_API_ID
]
}
在AndroidManifest.xml中
<meta-data
android:name="io.fabric.ApiKey"
android:value="${FABRIC_API_KEY}" />
答案 0 :(得分:2)
来自Fabric的Mike。 Seva的观点应该广为人知-“只要有足够的动力,只要调试员和足够的时间,黑客就可以使用它。”
如果需要,可以将API密钥和Build secret放置在fabric.properties文件中。从您的android清单中复制您的api密钥,然后删除以下行:ConfigurationError: Original IFooBar in <module 'someproduct.interfaces' from '/plone/buildout-cache/eggs/someproduct-1.2-py2.7.egg/some/path/interfaces.pyc'> not found
然后创建一个名为fabric.properties的文件,并将此文件夹放在在模块的build.gradle中应用crashlytics的模块的根目录中,在fabric.properies文件的<meta-data android:name="com.crashlytics.ApiKey" android:value="YOUR_API_KEY_HERE"/>
完成后,刷新您的依赖项以引入更改:add:apiKey=YOUR_API_KEY_HERE
答案 1 :(得分:1)
尝试将其保存在strings.xml
中,并在此处引用。
然后清单将仅以int格式显示资源ID。
但是,如果您打开strings.xml文件,它将被检索。