Fabric 不接受 @string/... 其 API 键在 manifest.xml 中的引用
Fabric not accepting @string/... reference for its API key in manifest.xml
我试图通过将密钥放入未跟踪的字符串资源 XML 文件中来隐藏我的结构 API 密钥以免受源代码控制。但出于某种原因,fabric 不接受清单中的关键 vie @string/FABRIC_API_KEY
引用。
XML文件如下-
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="NASA_API_KEY">abcd</string>
<string name="FABRIC_API_KEY">xyz</string>
</resources>
清单中的引用 -
<meta-data
android:name="io.fabric.ApiKey"
android:text="@string/FABRIC_API_KEY" />
而且,这是我在尝试构建时遇到的错误 -
Error:Execution failed for task ':app:fabricGenerateResourcesDebug'.
Crashlytics Developer Tools error.
我已经尝试通过 BuildConfig
访问 API 密钥,但它仍然无效。
根据面料,
您应该停止在 AndroidManifest.xml 中添加此关键字段。相反,您应该将其添加到 fabric.properties.
基本上面料库会在您合并后自动合并此密钥 AndroidManifest.xml。
REF : https://docs.fabric.io/android/fabric/settings/working-in-teams.html#android-projects
希望这对您有所帮助。
在build.gradle
中添加manifestPlaceholders
:
defaultConfig {
manifestPlaceholders = [
FABRIC_API_KEY:"Your Key"
]
}
像
一样在AndroidManifest.xml
中使用它
<meta-data
android:name="io.fabric.ApiKey"
android:value="${FABRIC_API_KEY}"
/>
好的..我自己得到了答案...这是对我有帮助的代码:
按照以下步骤操作:-
https://github.com/plastiv/CrashlyticsDemo/
大多数人不得不对 运行 gradle 命令行提出问题,因此您可以这样使用:1) 打开终端。
2) 转到您的项目工作space
3) ./gradlew
(请注意,如果权限拒绝错误,请使用此命令- chmod 744 gradlew 并再次 运行 ./gradlew)
(4) ./gradlew assemble -P apiKey=你的结构api key
现在您可以完全保密您的 api 密钥,但请记住一件事,您的 fabric.properties 看起来像那个
fabric.properties:-
apiSecret=”你的 fabric 密钥”apiKey=”你的 fabric api 密钥”
尽情享受吧!
我试图通过将密钥放入未跟踪的字符串资源 XML 文件中来隐藏我的结构 API 密钥以免受源代码控制。但出于某种原因,fabric 不接受清单中的关键 vie @string/FABRIC_API_KEY
引用。
XML文件如下-
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="NASA_API_KEY">abcd</string>
<string name="FABRIC_API_KEY">xyz</string>
</resources>
清单中的引用 -
<meta-data
android:name="io.fabric.ApiKey"
android:text="@string/FABRIC_API_KEY" />
而且,这是我在尝试构建时遇到的错误 -
Error:Execution failed for task ':app:fabricGenerateResourcesDebug'. Crashlytics Developer Tools error.
我已经尝试通过 BuildConfig
访问 API 密钥,但它仍然无效。
根据面料,
您应该停止在 AndroidManifest.xml 中添加此关键字段。相反,您应该将其添加到 fabric.properties.
基本上面料库会在您合并后自动合并此密钥 AndroidManifest.xml。
REF : https://docs.fabric.io/android/fabric/settings/working-in-teams.html#android-projects
希望这对您有所帮助。
在build.gradle
中添加manifestPlaceholders
:
defaultConfig {
manifestPlaceholders = [
FABRIC_API_KEY:"Your Key"
]
}
像
一样在AndroidManifest.xml
中使用它
<meta-data
android:name="io.fabric.ApiKey"
android:value="${FABRIC_API_KEY}"
/>
好的..我自己得到了答案...这是对我有帮助的代码:
按照以下步骤操作:-
https://github.com/plastiv/CrashlyticsDemo/
大多数人不得不对 运行 gradle 命令行提出问题,因此您可以这样使用:1) 打开终端。
2) 转到您的项目工作space
3) ./gradlew
(请注意,如果权限拒绝错误,请使用此命令- chmod 744 gradlew 并再次 运行 ./gradlew)
(4) ./gradlew assemble -P apiKey=你的结构api key
现在您可以完全保密您的 api 密钥,但请记住一件事,您的 fabric.properties 看起来像那个
fabric.properties:-
apiSecret=”你的 fabric 密钥”apiKey=”你的 fabric api 密钥”
尽情享受吧!