APP 开发怎么去管理正式地址和测试地址? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HEROLiX
V2EX    Android

APP 开发怎么去管理正式地址和测试地址?

  •  
  •   HEROLiX 2017-04-12 12:05:57 +08:00 13176 次点击
    这是一个创建于 3112 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如何将正式地址隐藏,只开放开发地址, Android Studio 开发
    25 条回复    2017-04-16 21:24:05 +08:00
    PPTing
        1
    PPTing  
       2017-04-12 12:47:35 +08:00 via iPhone
    没看懂楼主的意思,或者你可以设置个 baseUrl ?打包编译 release 版的时候替换掉
    graycreate
        2
    graycreate  
       2017-04-12 12:57:14 +08:00 via Android
    gradle 的 buildvariant
    HEROLiX
        3
    HEROLiX  
    OP
       2017-04-12 13:01:07 +08:00
    @PPTing 现在我们是设置的 baseurl , 现在我们是想让其他开发人员看不到我们的正式接口路径,平时开发只用 demo 的环境,防止出现 正式环境误操作
    HEROLiX
        4
    HEROLiX  
    OP
       2017-04-12 13:02:52 +08:00
    @ghui 我们是想 隐藏正式路径,比如正式路径放到一个 jar 里面,好像不确认在 app 的 build.gradle 中时候可以直接访问 jar
    HEROLiX
        5
    HEROLiX  
    OP
       2017-04-12 13:04:38 +08:00
    还有一个方案 就是 新增一个 url.properties 不放到 代码管理里面,正式地址直接去读这个文件,但是这种就限定了只有部分人可以打 release 包
    SeanChense
        6
    SeanChense  
       2017-04-12 13:26:33 +08:00
    可以写一个 secret_config 文件, Git 忽略它
    ihipop
        7
    ihipop  
       2017-04-12 13:34:42 +08:00
    我用 ros+capsman 放了多个热点, 其中一个名字是 test 的 WIFI , 然后做了 dns 劫持和流量劫持,任何设备连接这个 wifi 自动走 test 接口,平台和方案透明。
    HEROLiX
        8
    HEROLiX  
    OP
       2017-04-12 13:37:01 +08:00
    @SeanChense 这个就是我上面说的 那打正式包 只能我来打了。。
    HEROLiX
        9
    HEROLiX  
    OP
       2017-04-12 13:38:06 +08:00
    @ihipop 我们也做了这个操作,但是不排除开发人员在不注意的情况下 连接其他 wifi 或者使用移动网络
    shuax
        10
    shuax  
       2017-04-12 13:38:51 +08:00
    公司内部路由器劫持 dns 解析。
    ihipop
        11
    ihipop  
       2017-04-12 13:43:47 +08:00
    @HEROLiX 这个就看怎么实施以及实施目的是啥了,一般的测试场景都能覆盖,除了一些检测是不是移动网络的 case
    连错 wifi 这事情,谁也控制不了,但是小规开发模测试的话,还是是比较方便的了。
    nicevar
        12
    nicevar  
       2017-04-12 14:47:38 +08:00
    一般就 dns 做处理,另外就是工程代码里面配置,用 gradle 配置不同环境的,已经完全能解决问题了,你都没描述明白自己的需求是什么
    lyragosa
        13
    lyragosa  
       2017-04-12 14:54:18 +08:00
    我提供一个我之前的方案

    默认是正式环境,打开 app 之后,进入关于页面,连续按下 10 次某个地方(没有任何 UI ,一片空白的地方,要连续 10 次所以肯定不会误触),弹出对话框,输入一段字符,开启调试模式,此时就已经切到了测试环境,并且在退出测试模式之前,关闭 app 再打开也是在测试环境
    zongren
        14
    zongren  
       2017-04-12 15:09:16 +08:00
    没啥办法,除非你能控制打包这个流程
    flyingghost
        15
    flyingghost  
       2017-04-12 15:24:23 +08:00
    不限制打包人,但限制打包机器。
    代码里放默认测试环境。开发过程中开发人员在自己电脑打 debug 包 release 包都不受影响。
    打 release 包使用专门的机器,如果有做 CI 的机器更好。
    生产地址放在这台机器的环境变量里,或者 CI 传参。 gradle 里做替换。
    celerysoft
        16
    celerysoft  
       2017-04-12 16:07:54 +08:00
    lz 我觉得你的需求很奇怪

    首先你的第一个需求其他开发人员看不到我们的正式接口路径,这个其实按你说的,把正式接口的地址放在一个文件里在版本控制里忽略即可,但这个方案又让你发出了正式包只能你来打了的感叹。

    我想请问,这些『其他开发人员』连正式接口的地址都不让知道,你还打算让他们来打 release 包?
    racechao
        17
    racechao  
       2017-04-12 16:14:08 +08:00
    程序员果然越来越懒了
    chairuosen
        18
    chairuosen  
       2017-04-12 16:16:09 +08:00
    打包只在 CI 机器打
    xxstop
        19
    xxstop  
       2017-04-12 16:36:20 +08:00
    自己写一个配置,然后根据打包的常量。加载不同的配置,当初我就是这么干的。
    vjnjc
        20
    vjnjc  
       2017-04-12 16:49:22 +08:00
    用好 gradle 的变量替换嘛。
    最后 output release 的时候,你要么限定打包人,要么限定打包机器。
    如果什么都不限定的话,是无法控制别人访问 release 环境的
    HEROLiX
        21
    HEROLiX  
    OP
       2017-04-12 18:48:49 +08:00
    @celerysoft 公司要求我也很尴尬
    HEROLiX
        22
    HEROLiX  
    OP
       2017-04-12 18:49:17 +08:00
    好吧,多谢提供思路,我再与领导协商协商
    graycreate
        23
    graycreate  
       2017-04-12 19:35:00 +08:00   1
    thinkfeed
        24
    thinkfeed  
       2017-04-13 11:42:17 +08:00
    build variants 就可以啊
    rb6221
        25
    rb6221  
       2017-04-16 21:24:05 +08:00
    我直接写在 buildType 里面的……
    不过你们的这种情况还是放在 productFlavor 里面比较好……
    不同的 productFlavor 使用不同的签名文件,不同的密码,这样是比较安全的做法
    http://www.jianshu.com/p/60095eb8801d
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     847 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 82ms UTC 22:25 PVG 06:25 LAX 15:25 JFK 18:25
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86