古詩詞大全網 - 古詩大全 - iOS 編譯報錯怎麽辦?

iOS 編譯報錯怎麽辦?

1.編譯iPad真機時,選擇了 Architetures:Standard(armv6) BaseSDK:iPhoneDevice3.2 TargetDeviceFamily:iPad.

若編譯出現如下錯誤:

Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

則修改 GCC4.2CodeGeneral區域中的ComplieForThumb為非選中.

已經有了開發者證書及私鑰後,可直接在越獄的手機上調試.

2. 編譯鏈接時, "_OBJC_CLASS_$_xxx", referenced from:可能需要重新建立某個類的文件.

或者:選擇項目名,在detail列表中的target列(顯示為壹個又圓圈),把這個文件的復選選中,或者再次選中.以把它加入到這個target裏面來.

3.在sdk4.0及以上使用RegexKitLite報'captureCount' was not declared in this scope錯誤,是在非.m文件中使用了它的原因.

4.there is no sdk with the name or path.

從網上down的開源代碼,結果運行的時候常出現這樣的錯,並且在deployment中沒有ios deployment target 選項.

嘗試 Project/Edit Active Target/ 及 Set Active SDK菜單項,來回切換壹下Active Configuration。

5. EXEC_BAD_ACCESS,EXC_BAD_INSTRUCTION錯誤,意味著這個app有內存管理的問題,壹般是因為訪問野指針對象造成的。

壹個和內存相關的崩潰壹般很難定位到源代碼,因為這個惡魔可能很早就在程序中做了壞事了。假如壹段有問題的代碼混亂了內存結構,這樣產生的蝴蝶效應可能會在之後很久才表現出來,並且總在不同的地方。所以,若有指針類型出現了不可能的變化,很可能就是因為內存結構被野指針調用混亂了。

修復壹些警告後,可能就能預防壹些內存錯誤。警告在左邊靠近行號的黃色三角指出壹個編譯警告,妳點擊那個黃色的三角形,xcode可能會彈出壹個“Fix-it”的建議。

EXC_BAD_ACCESS崩潰不像SIGABRT,將不會得到很明朗的錯誤消息。然而可以使用壹個讓人看到曙光的調試工具:Zombies!死亡對象工具。打開這個項目的scheme editor,選擇Run 選項,然後選擇Diagnosics標簽。勾上Enable Zombie Objects選項。當這個zombie工具被啟用之後,即使這個對象被釋放了,這個對象的內存也不會被清理。所以,那塊內存將會被標記為“長生不死的”。假如妳試著之後又去使用這塊內存,這個app能夠意識到妳的錯誤操作,並且app將會拋出“messagesent to daellocated instance”錯誤並且終止運行。

在工程中加入NSZombieEnabled 環境變量,並設為啟用,則在 EXC_BAD_ACCESS 發生時,XCode 的 Console 會打印出問題描述中,設置方法:雙擊Executables 下的 可執行模組,在彈出窗口中,Variables to be set in the environment,添加 NSZombieEnabled,並設定為 YES,點擊選中復選框啟用此變量。

可以再加入 MallocStackLogging 來啟用malloc記錄,以獲得更多的提示來幫助定位問題。

在gdb窗口輸入 (格式: shell malloc_history <id> <address>) shell?malloc_history1436 0x5f7fcf0, 也可以在終端中去運行 就要去掉以上的shell 指令 如 malloc_history <id> <address>

應該僅當需要調試內存時,才設置上述環境變量。

註意壹點:不應該壹直啟用zombie objects。因為這個工具將永遠不會釋放內存,只是簡單標記壹下這個內存是不死的,妳最終將會在某個時候耗盡所有的內存,因為所有分配過的內存都不會得到重用。因此應該在排查內存相關的錯誤的時候才開啟zombie objects,其他時候應該關閉它。

在xcode4中,To edit environment variables, go to Menu Product / Edit Scheme…, select the desired configuration (you probably want 'Run') from the left sidebar first and then click on the Arguments tab. Environment variables are configurable there.

6.運行壹個IPhone程序時,彈出窗口說“程序運行失敗,預置描述文件已過期” 。 解決辦法是,在Xcode中, window-> Orgnazier -> 妳的iphone ->刪除帶有紅*的該程序之前的Profile 。 然後從Xcode運行該程序.

7.?真機編譯時報 Code Sign error: The identity doesn't match any valid certificate/private key pair in the default keychain

修改工程和Targets的get info\build 中的code signing identity為空

8.調試打印

CFShow(coreFoundationThingy) will print out a description of coreFoundationThingy to the console. Output looks something like: {value = w:1186.000000 h:687.000000 type = kAXValueCGSizeType}

If NSLog() is printing something out as an NSCFType, try CFShow().

9. 編譯時報 Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1,修改C/C++ Compiler Version為gcc4.2

10.this class is not key value coding-compliant for the key viewController

可能在創建了壹個基於view的工程,而後把生成的viewcontroller刪除了,但是在.xib中還有對它的引用,在IB中直接用delete鍵刪除掉它就行了。

11.這臺電腦上已經存在壹個名為“embedded.mobileprovision”的預置文件,您是否要替換麽?

/s/blog_6907b67f0100o2vw.html

12.真機調試時報failed to upload *.app

/%CB%E6%B7%E7_1989/blog/item/9649f49f805f05aec8eaf466.html

http://www.shouyanwang.org/thread-462-1-1.html

13.記的release時,先置delegate為nil。?

壹個節點不應該保留任何對不屬於它的節點的引用。

14.模擬器

將xcode升級到4.3.1以後發現,ipad的模擬器,沒有Home鍵了。Command+Shift+H就可以實現類似點擊Home鍵的效果了。