【问题标题】:how can I hide links within an app?如何隐藏应用程序中的链接?
【发布时间】:2017-09-21 18:32:54
【问题描述】:

嗨,我有一个在线运行的应用程序,并且服务器中有链接,但问题是有人删除了应用程序并获取链接并在浏览器上实现它们并成为应用程序内的问题有没有办法隐藏链接?

【问题讨论】:

  • 您要隐藏的链接在哪里?在用户界面中?在代码中?代码是公开的吗?您只需要将它们从公开代码中隐藏起来?
  • 示例:Picasso.with(context).load("roman-android.com" + View_stories.files + "/" + stories.images_view).into(holder.img_view);
  • 我正在努力。我知道该怎么做,但我正在努力记住一个关键步骤,哈哈
  • 好的,你能帮帮我吗:D
  • 完成,希望够清楚!

标签: android


【解决方案1】:

根据你在cmets中写的,假设你有这个:

Picasso.with(context).load("roman-android.com/" + View_stories.files + "/" + stories.images_view).into(holder.img_view);

你需要隐藏roman-android.com/

你可以这样做:

在您的 Android 项目中打开您的 gradle.properties 文件。这个文件应该是保密的,不能在线获得。

gradle.properties写下你的链接:

mySecretLink="roman-android.com/"

转到您的build.gradle(module:app) 文件并在android 下添加:

buildTypes.each {
        it.buildConfigField "String" , "MY_SECRET_LINK", mySecretLink
    }

这样你就会有这样的东西:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        //blah blah stuff
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

    }
    buildTypes.each {
        it.buildConfigField "String" , "MY_SECRET_LINK", mySecretLink
    }
}
repositories {
    jcenter()
    mavenCentral()
}
dependencies {
    //blah blah stuff
}

这将告诉 gradle 将您的 String 添加到 BuildConfig 类中,该类在构建时生成并且完全在您的代码之外。

转到您的代码并执行以下操作:

Picasso.with(context).load(BuildConfig.MY_SECRET_LINK + View_stories.files + "/" + stories.images_view).into(holder.img_view);

注意:我已尝试解释 this 并根据您的情况进行调整。我的解释基于我的一个旧代码,我这样做是为了隐藏我的 API 密钥。

显然您需要对gradle.properties 文件保密。您将只在编译时使用它的真实值,在整个编程过程中为您的保密信息(例如MY_SECRET_LINK)保留别名。

【讨论】:

  • 在你的 android studio 项目中。如果您将查看模式设置为“android”(项目选项卡的左上角),它应该在“gradle”下
  • 我找到了 :D ,但是任何人都可以打开这个文件 gradle.properties 并查看它
  • 好吧,您正在构建的机器上的任何人。如果您公开显示代码,此方法会隐藏数据。如果有人可以访问整个项目,他可以看到链接,但这是针对您应用中存储的每个字符串...
  • 在进行逆向工程时您不会看到文件?
  • 是的,任何应用程序都可以。我认为您的问题必然是隐藏代码中的数据。如果您需要保护您的应用免受逆向工程(尽管没有 100% 安全的方法),请查看:stackoverflow.com/q/13854425/3626078
【解决方案2】:

使用身份验证,这样任何人都无法在没有密码的情况下访问您的链接。

【讨论】:

  • 请问有 youtube 的例子吗?
  • 我在 google play 上有很多用户的应用程序,但有人在破坏我希望找到解决方案
  • 我只想隐藏链接
猜你喜欢
  • 2011-06-02
  • 2018-03-28
  • 1970-01-01
  • 2015-01-16
  • 1970-01-01
  • 2020-05-14
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
相关资源
最近更新 更多