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了 " target="_blank" rel="nofollow">
作者: nobody1 (無事家中坐)   2014-11-10 16:32:00
推「不然好歹也把你們會出貨給哪些公司講一下」...

Links booklink

Contact Us: admin [ a t ] ucptt.com