ios - xcode模擬器安裝app - xcode模擬器錄影




iOS-在模擬器上測試時出現奇怪的錯誤 (20)

  1. 關閉模擬器
  2. 停止應用程序在xCode中運行。
  3. 打開Activity Monitor並蒐索使用您的App NAME 運行進程
  4. 在Activity Monitor中終止這個過程
  5. 重建你的項目,你應該全部設置好

當它在點擊UIAlertView的按鈕時崩潰時,我正在模擬器上測試我的應用程序。 我停止調試,對代碼進行了一些更改並重新構建了應用程序。 現在,當我運行該應用程序時,在控制台中出現此錯誤

無法在引導服務器上註冊com.myApp.debug。 錯誤:未知的錯誤代碼。 這通常意味著此過程的另一個實例已在運行或掛在調試器中。程序接收到信號:“SIGABRT”。

我嘗試從模擬器中刪除應用程序,做一個乾淨的構建,但當我嘗試運行應用程序時仍然出現此錯誤。

我應該怎麼做才能在我的模擬器上再次運行應用程序?


Lion上的Xcode 4.2.1發生了很多變化。 更新到4.3.2,它不再發生。 很高興他們修好了。


原因

在之前運行的應用完全停止之前,在模擬器中運行您的應用。

修正

等到看到“停止”按鈕再次運行之前再次激活。

(我正在使用Xcode 4.2.1。當我升級到OS X Lion時,這個問題非常頻繁發生)。


狀態:最近被視為Mac OS 10.8和Xcode 4.4。

tl; dr:這可能發生在兩種情況下:在設備上運行時以及在模擬器上運行時。 在設備上運行時,斷開並重新連接設備似乎可以解決問題。

邁克阿什建議

launchctl list|grep UIKitApplication|awk '{print $3}'|xargs launchctl remove

這不是一直工作。 事實上,它從來沒有為我工作,但它在某些情況下顯然有效。 只是不知道哪些情況。 所以值得一試。

否則,解決此問題的唯一已知方法是重新啟動用戶launchd。 重啟會做到這一點,但有一個不太激烈/更快的方式。 你需要創建另一個管理員用戶,但你只需要做一次。 當事情發生時,以自己身份註銷,以該用戶身份登錄,然後終止屬於主用戶的launchd,例如,

sudo kill -9 `ps aux | egrep 'user_id .*[0-9] /sbin/launchd' | awk '{print $2}'`

用您的主用戶名替換user_id 。 當您的普通用戶讓您回到理智狀態時再次登錄。 有點痛苦,但不如完全重新啟動。

細節:

Lion / Xcode 4.2已經開始出現這種情況。 (就我個人而言,在這個組合之前,我從來沒有見過。)

該錯誤似乎在launchd中,當調試器停止調試而不殺死它時,該錯誤會繼承應用程序進程作為子進程。 這通常表示應用程序成為殭屍,具有ps的進程狀態Z.

核心問題似乎在launchd中實現的引導程序名稱服務器中。 這個(就我的理解而言)將app id映射到mach端口。 當錯誤被觸發時,應用程序將會死亡,但不會從引導程序服務器的名稱服務器映射中清除,因此引導服務器拒絕允許另一個應用程序實例以相同名稱註冊。

有人希望(見評論)迫使launchd wait()殭屍會解決的事情,但事實並非如此。 殭屍狀態並非核心問題(這就是為什麼一些殭屍是良性的),但引導程序名稱服務器並沒有已知的方法來清除這個短暫的殺死launchd。

看起來這個錯誤是由Xcode,gdb和用戶launchd之間的不良事件觸發的。 我只是通過在iPhone模擬器中運行一個應用程序來重複楔子,讓它在gdb中停止,然後進行構建並運行到ipad模擬器。 它似乎對開關模擬器(iOS 4.3 / iOS 5,iPad / iPhone)非常敏感。 它不會一直發生,但是當我切換模擬器時會頻繁發生。

當您登錄時啟動殺死會導致您的會話。 註銷並重新登錄不會終止用戶啟動; OS X保持現有的流程。 重啟會解決問題,但這很痛苦。 以上說明速度更快。

我向蘋果提交了一個bug,FWIW。 rdar:// 10330930


嘗試退出並重新啟動模擬器? 如果“糟糕的情況變得糟糕”,您可以隨時嘗試重新啟動:根據我的經驗,這應該可以解決問題。


噢,我 - 我嘗試了上面列出的所有事情和其他帖子。 重新安裝了Xcode,重新啟動了我的機器,將所有丟失的文件複製到了正確的文件夾中......最終,我備份了我的iPhone,並將其擦除並恢復,並且工作正常!

我認為可能是因為閱讀這些內容而導致的結果是,我的iPhone白屏正在使用性能工具捕獲洩漏。 或者一些這樣的事情。

啊,大大的鬆了一口氣。


如果你發現你的問題是由於殭屍進程:

ps -el | grep 'Z'
(如之前的評論https://.com/a/8104400/464289 )並且只是想立即解決問題,您可以在不重新啟動或查殺任何內容的情況下執行此操作。 只需重命名項目目標可執行文件

  1. 點擊左側窗格中的項目
  2. 在中間窗格中選擇Build Settings
  3. 在“ 包裝 ”下,將“ 產品名稱 ”從$(TARGET_NAME)更改為$(TARGET_NAME).1

簡單!


如果在iPhone上進行測試時發生這種情況。 只需重新啟動手機。 從我被告知手機或模擬器仍然認為有一個應用程序正在運行的實例,所以當它是最後一次運行它沒有正確地終止做或者在你的代碼中的錯誤或手機/模擬器只是想有一個呻吟。


您可以在函數或選項卡中分配變量。 如果您的功能或選項卡退出,它將解除分配。 所以你必須聲明它的成員變量或全局變量。


我一直得到這個錯誤,直到我停止信任運行對話框中的“停止”按鈕。 在嘗試運行之前,我總是在工具欄中停止,但我還沒有遇到任何殭屍進程。


我只是遇到了這種情況:我只在我的設備上看到錯誤,模擬器工作正常。 我最終不得不重置我的設備,錯誤消失了。


我在iPhone 4上調試我的應用程序時出現此錯誤。硬重啟iPhone解決了我的問題。 (關掉iPhone的電源......)

我的Mac上沒有任何殭屍進程,重新啟動Mac並未解決問題。

也許這個錯誤可以在模擬器和實際設備上體現出來?


我有一個遞歸設置器,它通過堆棧並以我不得不啟動iPad的方式殺死了我的應用程序。 它可以在代碼中修復。


我有殭屍進程提到的@jyap問題。 清除它們的唯一方法是重新啟動。 然而,我注意到我的朋友在同一個項目上工作會得到同樣的問題,但可以在不創建殭屍進程的情況下殺死模擬器。 我完全卸載Xcode並重新安裝它,雖然我仍然遇到錯誤,但它不會創建殭屍進程,所以我不必重新啟動。

在我這樣做之前,我正在使用這個非常醜陋的解決方法:更改您的應用程序ID並再次運行。 您最終會在模擬器中看到應用程序的垃圾副本,但您可以暫時停止重新啟動。


我的問題不需要重建或重新安裝,在我的情況下,嘗試在iPhone上運行應用程序時出現錯誤。 模擬器工作正常。

解決方案:關閉手機應用程序,冷啟動手機,現在一切正常。


我認為這是由於在Xcode中按下停止按鈕之前強制退出iPhone上的應用程序所致。 有時當你在Xcode中按下停止按鈕時,如果掛起的話,它需要額外的時間來退出應用程序。 但只要有耐心,它最終會退出大部分時間。


我遇到過這樣的問題,在我的情況下,這就是我所做的

  1. 從模擬器中刪除應用程序。
  2. 刪除派生的數據文件夾。
  3. 通過選擇產品菜單在項目中執行清理操作 - 清理
  4. 重置模擬器。
  5. 退出Xcode。
  6. 現在嘗試運行該項目,如果其工作正常,否則請轉到步驟7
  7. 重複從1到5的所有步驟,然後重新啟動機器。

在大多數情況下,我得到它在第6步極端情況下運行,我不得不重新啟動我的機器。


此錯誤用於iOS模擬器的舊版本,因為正在關閉的其他設備中較舊的作業實例可能會與新實例發生衝突。

iOS 6.0和更高版本不應該遇到像這樣的問題,因為iOS 6.0引入了引導子集的使用,並且iO​​S 7.0引入了與主機的引導服務器完全隔離的專用引導服務器(launchd_sim)的使用。


那麼,沒有答案,但至少還有一個測試要做。 打開終端並運行以下命令:“ps-Ael | grep Z”。 如果你有兩個條目,一個是“(叮噹聲)”,另一個是你的應用程序或公司名稱,那麼你會重新啟動。

如果您是開發人員,請輸入一個簡短的錯誤,並告訴Apple絕對惱人的重新啟動是多麼的煩人,並且提及他們可以將此錯誤複製到我剛剛輸入的“rdar:// 10401934”。

大衛


重新啟動設備,工作! :d

謝謝大家的偉大建議。





ios-simulator