Re: [問題] 為什麼模擬器有時會變黑?

看板MacDev作者 (龍野南雲)時間10年前 (2014/11/06 12:38), 編輯推噓9(90123)
留言132則, 4人參與, 最新討論串2/2 (看更多)
: 推 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的聚會,直接惡補一些基本知識才不會整天鬼打牆啊... -- Luna quieres ser madre y no encuentras querer que te haga mujer -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.108.36 ※ 文章網址: http://www.ptt.cc/bbs/MacDev/M.1415248704.A.66C.html

11/06 14:14, , 1F
哪邊的 filesystem? 當我知道手機端有殘留後,我都有做
11/06 14:14, 1F

11/06 14:14, , 2F
手機端 reset,但有時沒解決,還得做 source code 這邊的
11/06 14:14, 2F

11/06 14:14, , 3F
clean..
11/06 14:14, 3F

11/06 14:15, , 4F
在測試來說,要測的是未知問題,而不是已知了才去重製
11/06 14:15, 4F

11/06 14:15, , 5F
所以我就直接認定 reset & clean 都要做,才是可承認的
11/06 14:15, 5F

11/06 14:16, , 6F
測試。
11/06 14:16, 6F

11/06 14:50, , 7F
source code的clean,就有可能是因為你提到的increment
11/06 14:50, 7F

11/06 14:50, , 8F
build (假設你講的是code的更改啦)
11/06 14:50, 8F

11/06 14:51, , 9F
如果是其他資源的話,那應該就是單純沒刪到檔案
11/06 14:51, 9F

11/06 14:51, , 10F
BTW,我講的filesystem是模擬器或者實機上,總之就是你
11/06 14:51, 10F

11/06 14:52, , 11F
裝過app,再裝新版app的時候不會把舊的資料全部刪除,
11/06 14:52, 11F

11/06 14:52, , 12F
才會導致你遇到的舊圖檔繼續存在的問題
11/06 14:52, 12F

11/07 01:37, , 13F
移除重裝可以清除資料這我知道,所以我真的是兩種都碰過
11/07 01:37, 13F

11/07 01:38, , 14F
去厘清是兩種中的哪一種也可以;那好像在替ios debug..
11/07 01:38, 14F

11/07 01:38, , 15F
(或者人家文件有說本來就這樣,不算bug;但總之不在我們預
11/07 01:38, 15F

11/07 01:39, , 16F
期),公司內有rd & qa 兩個部門,rd還可以指責'你不看文
11/07 01:39, 16F

11/07 01:39, , 17F
件',但qa可完全不理這套,他們會直接說'感覺就不好用'
11/07 01:39, 17F

11/07 01:40, , 18F
所以如果不移除就有殘留並且測過,那算一種誤測
11/07 01:40, 18F

11/07 01:41, , 19F
我只好規定,測試需以移除重裝為準去寫報告..
11/07 01:41, 19F

11/07 01:44, , 20F
因為是未上市產品,這樣測是可接受的
11/07 01:44, 20F

11/07 01:44, , 21F
萬一上市過了,qa又會多測'假設裝過舊版直接更新...'
11/07 01:44, 21F

11/07 01:44, , 22F
也就是向舊版環境相容;真有點沒完沒了..
11/07 01:44, 22F

11/07 01:45, , 23F
那我就不能要求 user 移除了;我得用程式去做
11/07 01:45, 23F

11/07 09:53, , 24F
如果是要測新安裝的情況,那本來就該用乾淨環境下去測
11/07 09:53, 24F

11/07 09:54, , 25F
吧 :p 然後你後面說的舊版更新,如果嚴謹的話也的確需
11/07 09:54, 25F

11/07 09:54, , 26F
要測,甚至1->2 2->3 1->3 等多種可能途徑都要測
11/07 09:54, 26F

11/07 13:19, , 27F
所以我鬼打牆到認為這應該是蘋果的責任啊~~
11/07 13:19, 27F

11/07 13:20, , 28F
自我進入業界後,我對軟體的看法和學生時是不同了
11/07 13:20, 28F

11/07 13:21, , 29F
我們自認沒錯但user不會使用,然後還教育 user 一堆系統
11/07 13:21, 29F

11/07 13:22, , 30F
知識.. 這樣是不允許的
11/07 13:22, 30F

11/07 13:24, , 31F
因此移除程式可解,但我就是沒移除引致問題算不算 bug?
11/07 13:24, 31F

11/07 13:25, , 32F
算,我當然認為這算 compiler bug
11/07 13:25, 32F

11/07 13:25, , 33F
哪天有興致我可能寫 mail 提出 feature 要求吧..
11/07 13:25, 33F

11/07 14:09, , 34F
如果裝新版就把舊版的資料都刪光光,看你的使用者會不
11/07 14:09, 34F

11/07 14:09, , 35F
打爆你的客服電話...
11/07 14:09, 35F

11/07 14:11, , 36F
而且安裝的行為關compiler啥事...還bug咧...
11/07 14:11, 36F

11/08 02:50, , 37F
你這說法和我們QA替自己產品圓場一樣,一個立場待久了會
11/08 02:50, 37F

11/08 02:51, , 38F
被同化。如果你只說'資料刪光光'那當然不允許;但我們並
11/08 02:51, 38F

11/08 02:51, , 39F
不覺得那是資料,我們覺得是程式的一部份。所以你是怎麼
11/08 02:51, 39F
還有 53 則推文
11/08 23:01, , 93F
另外,如果哪個RD敢跟我說測試前不用先把環境清乾淨,
11/08 23:01, 93F

11/08 23:01, , 94F
還跟我說舊檔案存在是bug,我會直接從他頭上敲下去
11/08 23:01, 94F

11/08 23:01, , 95F
我前面有說了,我自己把檔案放進專案子目錄,自己把檔名
11/08 23:01, 95F

11/08 23:02, , 96F
放進專案,這都代表我想要 link 進 exe 啊;如果是去檔案
11/08 23:02, 96F

11/08 23:02, , 97F
系統撈檔案的話,那我不需要把檔名放進專案吧!
11/08 23:02, 97F

11/08 23:03, , 98F
為什麼沒人把所有音樂檔都編碼;這是在質疑架構,我可能
11/08 23:03, 98F

11/08 23:04, , 99F
寫了個不好的架構,但我認為我把這檔案編入 exe 啊
11/08 23:04, 99F

11/08 23:06, , 100F
又測試前清環境,這問題我前面說了:最好是做,但也得提
11/08 23:06, 100F

11/08 23:07, , 101F
防有人沒做。我不認為可以只指責一邊,所以我前面說,你
11/08 23:07, 101F

11/08 23:07, , 102F
可以指我錯,但我指對方錯時,我也覺得有道理
11/08 23:07, 102F

11/08 23:08, , 103F
我們對於客戶誤操作時會產生的問題還是一律回報
11/08 23:08, 103F

11/08 23:08, , 104F
由 PM去決定要不要攬回來;雖然多做是多幫忙,也是想增加
11/08 23:08, 104F

11/08 23:09, , 105F
產品的親和力。還有'客戶的錯絕不可以搞當我們程式'
11/08 23:09, 105F

11/08 23:09, , 106F
可以給個錯誤訊息退出,可以叫客戶找我們聯絡..
11/08 23:09, 106F

11/08 23:09, , 107F
有交代總是勝過沒交代
11/08 23:09, 107F

11/08 23:09, , 108F
但若程式當掉,原因是客戶誤操作,這算我們頭上啊..
11/08 23:09, 108F

11/08 23:17, , 109F
我這段不是說 xCode 當掉;而是舉例說明,責任不是一推
11/08 23:17, 109F

11/08 23:17, , 110F
三千里那麼容易;還是說蘋果身段比我們公司高,我們公司
11/08 23:17, 110F

11/08 23:17, , 111F
是自己愛巴結客戶,但蘋果可沒在巴結客戶的?
11/08 23:17, 111F

11/08 23:18, , 112F
那..我開始相信你了
11/08 23:18, 112F

11/08 23:18, , 113F
(xCode真的有當掉的,我不太敢用它的 refactory)
11/08 23:18, 113F

11/08 23:19, , 114F
(當要改變數名稱時是很好用,但當掉就要重來了)
11/08 23:19, 114F

11/10 09:45, , 115F
你完全沒搞懂啊...你知道所謂的"安裝"是把檔案複製到系
11/10 09:45, 115F

11/10 09:46, , 116F
統的某個目錄嗎?那,你可以告訴我有哪個OS會在你複製
11/10 09:46, 116F

11/10 09:46, , 117F
A,B兩個檔案到某個目錄的時候,發現那個目錄有A,C兩個
11/10 09:46, 117F

11/10 09:47, , 118F
檔案,然後最終行為是把A覆蓋過去,B複製,同時把C刪除
11/10 09:47, 118F

11/10 09:47, , 119F
的?另外,Mac或者iOS上的所謂Application,並不是單一
11/10 09:47, 119F

11/10 09:48, , 120F
的檔案,而是叫bundle的東西,而bundle這東西事實上是
11/10 09:48, 120F

11/10 09:48, , 121F
個照規則放置相關檔案的一個目錄。所以為什麼你的圖檔
11/10 09:48, 121F

11/10 09:49, , 122F
沒有link到執行檔去?廢話Mac上就不是這樣搞的,所以才
11/10 09:49, 122F

11/10 09:49, , 123F
會有後續一堆為什麼跟OS檔案系統有關的動作出來。
11/10 09:49, 123F

11/10 09:49, , 124F
真的,算是我個人求你,先去搞清楚一些基本的認知好不
11/10 09:49, 124F

11/10 09:50, , 125F
好?不然好歹也把你們會出貨給哪些公司講一下,讓大家
11/10 09:50, 125F

11/10 09:51, , 126F
知道該避開哪些App...
11/10 09:51, 126F

11/10 13:46, , 127F
你可以把 .app 看做是 Program Files/AppName 底下目錄
11/10 13:46, 127F

11/10 13:48, , 128F
「程式升級」的過程會是一種「合併」而不是「完全覆蓋」
11/10 13:48, 128F

11/10 13:48, , 129F
會有舊有檔案的話,當然是之前版本的App產生的
11/10 13:48, 129F

11/10 13:50, , 130F
不然遊戲升級新程式,所有進度跟內購點數都得重買 XD
11/10 13:50, 130F

11/10 13:54, , 131F
最近也要開始玩iOS了 http://i.imgur.com/1PsIdGN.jpg
11/10 13:54, 131F

11/10 16:32, , 132F
推「不然好歹也把你們會出貨給哪些公司講一下」...
11/10 16:32, 132F
文章代碼(AID): #1KMlj0Pi (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1KMlj0Pi (MacDev)