Re: [问题] 为什么模拟器有时会变黑?

楼主: Blueshiva (龙野南云)   2014-11-06 12:38:21
: 推 HuangJC: clean & reset 模拟机 11/04 01:51
: → HuangJC: 我曾写了某个元件,后来把元件 rename;这时取用不存在元 11/04 01:51
: → HuangJC: 件应该会执行错误,但事实上旧元件还是能取得,还会跑 11/04 01:52
: → HuangJC: 也就是说,元件是被注册进手机里的,不因我改source code 11/04 01:52
: → HuangJC: 而消失;必需要 reset 模拟机 & clean 才能杀干净 11/04 01:53
: → Blueshiva: 元件?注册进手机里?能注册到手机里面的也只有schema 11/04 20:34
: → Blueshiva: 吧...楼上的讲法实在很诡异啊... 11/04 20:35
: 推 HuangJC: 那是实测的结果;而且你可能对专有名词很要求? 11/06 03:07
因为名字乱叫,没人知道你在指什么啊...
: → HuangJC: 我测到发生在几种不同类型的资源,比如 png 11/06 03:08
: → HuangJC: hello.png 先 build 进程式,用 uiimage 去取用,后来 11/06 03:08
: → HuangJC: rename 成 hello1.png;source code 先不改,故意想看到错 11/06 03:09
: → HuangJC: 误讯息,结果偏偏没有错误的跑了起来;你可能不想把 png 11/06 03:09
: → HuangJC: 叫元件吧,那叫资源也好
你这个地方,问题在于png类的资源,就只是放在filesystem的档案而已
然后这些档案你装新版本的时候不会删除,也就是说,以你的情况来说,
你的档案会有 hello.png 和 hello1.png 两个档案同时存在,那当然就
不会有错误发生
这种情况要在模拟器或实机中先把app移除再安装就可以了
11/06 03:09
: → HuangJC: 而 compiler 为了加快 build 速度,有时会用 inc.. build 11/06 03:10
: → HuangJC: 也就是说,仅针对新增的.m, png, ... 去build,但移除的呢 11/06 03:10
: → HuangJC: 它没写移除就是没移除了,这种残留可以想像,clean就好 11/06 03:11
你是说 incremental build?那不会去管png这类档案啊...
: → HuangJC: 但一个例子就麻烦了;敝公司有写 fb 的讯息通知模组,也 11/06 03:12
: → HuangJC: 就是程式跑一跑可以送讯息到脸书,苹果管很严,这个要申 11/06 03:12
: → HuangJC: 请个bundle id;因为公司有做 oem,所以一支程式就多申请几 11/06 03:13
: → HuangJC: 个 id 给不同客户。在新 id 权限还没下来之前程式会跑不 11/06 03:13
: → HuangJC: 动。但我先 run 个可以跑的旧id,再更动到新 id,照理应该 11/06 03:14
: → HuangJC: 不能动,却动了!!这让我在找问题上遇到困难,我还以为 11/06 03:14
: → HuangJC: 新ID也过了,来来回回鬼打墙很久;程式也 clean 了却没用 11/06 03:15
: → HuangJC: 最后才想到清手机,那你说它把权限放在哪,这个叫资源? 11/06 03:15
: → HuangJC: 总之很多抽象的东西,没找到正式文件前就说个大概.. 11/06 03:16
这个bundleid也是放在plist之类的档案中,一样要移除app重新安装才会
更新到...
所以你的问题一直都是没有找个比较熟的人来协助你们,也不去找文件才会产生
的啊...
你还是多去Cocoaheads的聚会,直接恶补一些基本知识才不会整天鬼打墙啊...
作者: HuangJC (吹笛牧童)   2014-11-06 14:14:00
哪边的 filesystem? 当我知道手机端有残留后,我都有做手机端 reset,但有时没解决,还得做 source code 这边的clean..在测试来说,要测的是未知问题,而不是已知了才去重制所以我就直接认定 reset & clean 都要做,才是可承认的测试。
楼主: Blueshiva (龙野南云)   2014-11-06 14:50:00
source code的clean,就有可能是因为你提到的incrementbuild (假设你讲的是code的更改啦)如果是其他资源的话,那应该就是单纯没删到档案BTW,我讲的filesystem是模拟器或者实机上,总之就是你装过app,再装新版app的时候不会把旧的资料全部删除,才会导致你遇到的旧图档继续存在的问题
作者: HuangJC (吹笛牧童)   2014-11-07 01:37:00
移除重装可以清除资料这我知道,所以我真的是两种都碰过去厘清是两种中的哪一种也可以;那好像在替ios debug..(或者人家文件有说本来就这样,不算bug;但总之不在我们预期),公司内有rd & qa 两个部门,rd还可以指责'你不看文件',但qa可完全不理这套,他们会直接说'感觉就不好用'所以如果不移除就有残留并且测过,那算一种误测我只好规定,测试需以移除重装为准去写报告..因为是未上市产品,这样测是可接受的万一上市过了,qa又会多测'假设装过旧版直接更新...'也就是向旧版环境相容;真有点没完没了..那我就不能要求 user 移除了;我得用程式去做
楼主: Blueshiva (龙野南云)   2014-11-07 09:53:00
如果是要测新安装的情况,那本来就该用干净环境下去测吧 :p 然后你后面说的旧版更新,如果严谨的话也的确需要测,甚至1->2 2->3 1->3 等多种可能途径都要测
作者: HuangJC (吹笛牧童)   2014-11-07 13:19:00
所以我鬼打墙到认为这应该是苹果的责任啊~~自我进入业界后,我对软件的看法和学生时是不同了我们自认没错但user不会使用,然后还教育 user 一堆系统知识.. 这样是不允许的因此移除程式可解,但我就是没移除引致问题算不算 bug?算,我当然认为这算 compiler bug哪天有兴致我可能写 mail 提出 feature 要求吧..
楼主: Blueshiva (龙野南云)   2014-11-07 14:09:00
如果装新版就把旧版的资料都删光光,看你的使用者会不打爆你的客服电话...而且安装的行为关compiler啥事...还bug咧...
作者: HuangJC (吹笛牧童)   2014-11-08 02:50:00
你这说法和我们QA替自己产品圆场一样,一个立场待久了会被同化。如果你只说'资料删光光'那当然不允许;但我们并不觉得那是资料,我们觉得是程式的一部份。所以你是怎么不知不觉被同化了?我们程式有用到 SQL,像这种累积的东西我会承认是资料但在我 source code中,我自己摆进程式子目录,并且自己把档名放进专案档,这样我是认为是程式的一部份的你再说明ios的做法是把它当档案的话,就是被它同化去了在我们公司,一个有成就的主管,在开会时底下没人会反驳因为反驳他就显得自己无知,拜托,他在公司是神耶..问题是客户真的不是这样看我们产品的;我就觉得很有趣,为什么声音总是无法传给该听到的人这只有我们公司吗?和其他人聊过,大家都有这个问题..今天如果说因为成本考量,做得出但耗资太大,我可以接受但如果主管说:我觉得客户不会这样想.. 那我就不以为然因为我私下去问客服,客服都会说出不一样的话 XDDDDD而在开会时,代表(模拟)客户立场说话的就是QA,却被同化了,所以声音都传不到;(那客服为何不来开会?....)正式版安装是在 app store,和 compiler 无关,但开发时是 compiler 一条龙作业直接安装,没错吧..所以你叫我去适应它,也不是不行;我说它有 bug,也不算说错..
楼主: Blueshiva (龙野南云)   2014-11-08 21:26:00
呃...我是不知道哪种机器可以把png或jpg读进来执行啦..我想你需要先去了解一下程式(program)的定义,另外,你就算是从App Store安装,一样是把相关的档案复制到机器中,而复制的方式就是有新的复制新的,有重复的会覆蓋旧有的不会删,你也不用针对iOS,自己在Windows试试看把多个档案圈起来复制到别的地方,它也是这种行为至于你后面说的同化,QA,客服,主管,完全不知所云,就不回应了
作者: HuangJC (吹笛牧童)   2014-11-08 22:45:00
那我们来谈 win 程式的撰写好了;我可以把 png 拷进执行子目录,并且在程式中读取它;但我也可以把档名在 rc 档描述,然后 link 进 exe.这样 exe 会长很大,但我不需要准备一个分离的 png 档。完全可以想像吧?所以你不需要说什么执行 png,我没表达过那个意思我比较担心你说'ios就是不一样,别拿以前的经验来套'之类因为你这样就放了个大绝,而这大绝我完全无法承受我后面你所看不懂的部份,就是跟你说明立场同化这种事难不成你是个体户?我以为 ios 下的工程师大概都靠公司因为它有一堆资源申请的部份;如果你待公司应该很容易懂别说 QA 被主管拉走,光是我RD都不敢跟 QA讲太多因为我如果把技术层面讲完,肯定可以说服QA但接下来我会发现这QA都不从客户角度发言了,对我们没帮助。我们就是要QA从客户视角来指出软件哪里不好用而不是要QA体谅RD为什么写不出来;QA不该被RD说服..因为产品是想卖出去的,不是说服QA就好,所以不该自断言路..
楼主: Blueshiva (龙野南云)   2014-11-08 22:53:00
你那种link的做法,在iOS上也可以这样搞啊,把png档base64写到code里面去一样可行,只是...如果这样是"正常"做法,那为什么没有公司的产品把所有的图档音乐档全部base64编到code里面去呢?而如果你后面说的那段QA的话是指你希望QA依照一般使用情况来使用测试的话,那你前面在说为什么档案没有主动被删掉,还说这是个bug,就完全的不知所云。然后这种行为居然会被认为是bug,除非...好吧,它的确是没有依据"设计者的预期运作",不过在这个case,我会倾向这是"设计者根本搞不清楚状况"另外,如果哪个RD敢跟我说测试前不用先把环境清干净,还跟我说旧档案存在是bug,我会直接从他头上敲下去
作者: HuangJC (吹笛牧童)   2014-11-08 23:01:00
我前面有说了,我自己把档案放进专案子目录,自己把档名放进专案,这都代表我想要 link 进 exe 啊;如果是去档案系统捞档案的话,那我不需要把档名放进专案吧!为什么没人把所有音乐档都编码;这是在质疑架构,我可能写了个不好的架构,但我认为我把这档案编入 exe 啊又测试前清环境,这问题我前面说了:最好是做,但也得提防有人没做。我不认为可以只指责一边,所以我前面说,你可以指我错,但我指对方错时,我也觉得有道理我们对于客户误操作时会产生的问题还是一律回报由 PM去决定要不要揽回来;虽然多做是多帮忙,也是想增加产品的亲和力。还有'客户的错绝不可以搞当我们程式'可以给个错误讯息退出,可以叫客户找我们联络..有交代总是胜过没交代但若程式当掉,原因是客户误操作,这算我们头上啊..我这段不是说 xCode 当掉;而是举例说明,责任不是一推三千里那么容易;还是说苹果身段比我们公司高,我们公司是自己爱巴结客户,但苹果可没在巴结客户的?那..我开始相信你了(xCode真的有当掉的,我不太敢用它的 refactory)(当要改变量名称时是很好用,但当掉就要重来了)
楼主: Blueshiva (龙野南云)   2014-11-10 09:45:00
你完全没搞懂啊...你知道所谓的"安装"是把档案复制到系统的某个目录吗?那,你可以告诉我有哪个OS会在你复制A,B两个档案到某个目录的时候,发现那个目录有A,C两个档案,然后最终行为是把A覆蓋过去,B复制,同时把C删除的?另外,Mac或者iOS上的所谓Application,并不是单一的档案,而是叫bundle的东西,而bundle这东西事实上是个照规则放置相关档案的一个目录。所以为什么你的图档没有link到执行档去?废话Mac上就不是这样搞的,所以才会有后续一堆为什么跟OS档案系统有关的动作出来。真的,算是我个人求你,先去搞清楚一些基本的认知好不好?不然好歹也把你们会出货给哪些公司讲一下,让大家知道该避开哪些App...
作者: EShensh (萧易玄)   2014-11-10 13:46:00
你可以把 .app 看做是 Program Files/AppName 底下目录“程式升级”的过程会是一种“合并”而不是“完全覆蓋”会有旧有档案的话,当然是之前版本的App产生的不然游戏升级新程式,所有进度跟内购点数都得重买 XD最近也要开始玩iOS了 http://i.imgur.com/1PsIdGN.jpg
作者: nobody1 (无事家中坐)   2014-11-10 16:32:00
推“不然好歹也把你们会出货给哪些公司讲一下”...

Links booklink

Contact Us: admin [ a t ] ucptt.com