iOS開發運行報錯、常見問題

來源:互聯網
上載者:User

標籤:

一、報錯與警報 1、錯誤碼:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)

build 這個target的時候命令列報錯。可以在 build setting 中,搜尋bitcode,並吧 enable bitcode 設定為 NO.

  2、ld:framework not found IOKit

終端輸入以下2行內容 

 
123 cd/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/IOKit.framework sudo ln -s Versions/A/IOKit .

其中,如果不行,從檔案夾中慢慢開啟看下路徑對不對,如果像有修改Xcode名稱的,注意如 “xcode 5” [有空格” “的記得在終端中加上 “”這個符號];

3、程式沒問題,運行報錯:Directory not empty

位於/Users/你電腦名/Library/Developer/Xcode/DerivedData下的快取檔案占很大的緩衝空間,如果長時間不刪除xcode下的快取檔案,就會導致硬碟空間越來越小直到Directory not empty。刪除了快取檔案再運行就不會再報錯。

或者,直接clean一次就可以了。

4、如果遇到編譯錯誤類似:Undefined symbols for architecture armv7:

OBJC_CLASS$_ASIHTTPRequest”,先檢查上述的依賴代碼是否已加入編譯列表,如未加入,依次點擊Target->Build Phases->Compile Sources,點擊底部“+”添加上述代碼。

如果遇到編譯錯誤類似:Undefined symbols for architecture armv7: “_inflateEnd”, referenced from,則應該是缺少依賴libz.dylib,添加方法:依次點擊Target->Build Phases->Compile Sources,點擊底部“+”,在彈出的列表中輸入libz,添加搜尋結果中最新版本即可。

5.but did not return a nonzero exit code to indicate failure

日誌類似:

解決:

選擇 Build Settings 菜單,把compress PNG files 改成NO。

6.Undefined symbols for architecture i386:

日誌類似:(缺少BJGKPaintMapViewController檔案的引用)

原因:xcode項目import檔案時,會根據project.pbxproj來尋找,尋找不到檔案的引用則會有上述的錯誤。圖中就是BJGKPaintCommand檔案對BJGKPaintMapViewController類的引用找不到。常常在多人合作開發的時候,svn提交不規範導致的project.pbxproj發生錯誤,使得檔案的引用不在project.pbxproj檔案中。

解決方案:

a.點擊Build Phases,如果是缺少的xxx是類名,則在Complie Sources中加入該檔案。若缺少類庫,則在Link Binary With Libraries中加入該類庫。例中是缺少 “BJGKPaintMapViewController”,這個是類名。

b.或者直接把需要引用這個缺少類/庫的原檔案去掉引用,筆者就是多調用了BJGKPaintCommand類檔案,所以把它去掉,也就不需要補上BJGKPaintMapViewController類的引用了。

7、問題: ld/ warning/ directory not found for option從項目中刪除了某個目錄、檔案以後,編譯出現警告資訊:_ld: warning: directory not found for option“XXXXXX”:

有時候已經從項目中刪除了檔案和檔案夾還是報這個警告,雖然沒有發生錯誤,但是看著很不舒服。。

去掉警告的辦法如下:

1選擇工程, 編譯的 (targets)

2選擇 Build Settings 菜單

3如下尋找 Library Search Paths 和 Framework Search Paths, 刪掉編譯報warning的路徑即OK。

 

 

更新–>

 

 

二、常見問題:1.模擬器的目錄:

點擊“Finder->前往->資產庫->Developer->Xcode->DerivedData”,【看不到“資產庫”?點擊“前往”,看到功能表列時,按“Option”就看到了.】

或者點擊“Finder->前往->前往檔案夾”,輸入:

”/Users/你當前登陸的使用者名稱/Library/Application Support/iPhone Simulator/“

2.Xcode構建項目多,記憶體佔用大,如果清除緩衝?

a.App被XCode Build在這裡:

點擊“Finder->前往->資產庫->Developer->Xcode->DerivedData”,

或者,點擊“Finder->前往->前往檔案夾”,輸入: “/Users/你當前登陸的使用者名稱/Library/Developer/Xcode/DerivedData”(冒號沒有的)

b.串連真機產生的檔案,可以全部刪掉或者把不常用的版本刪掉,再次串連裝置會自動產生:

“~/Library/Developer/Xcode/iOS DeviceSupport”

c.app打包產生的檔案,可以刪掉不需要的項目打包檔案:

“~/Library/Developer/Xcode/Archives”。

以上都可以把不需要的app項目刪除。或者定時刪除舊的項目。

3.Xcode項目模擬器上png格式的本地圖片正常顯示,真機調試不顯示:

可能有2個原因:

(1).圖片的初始狀態,不是png的,被自己直接就改成png了。這樣模擬器OK,真機就有問題。

可以使用Mac 系統內建的圖片預覽匯出一下,(就是雙擊圖片,點擊左上方:檔案->匯出->png格式),再重新匯入就行了。

(2).真機上檔案名稱是區分大小寫的,而模擬器上面是不區分的,所以模擬器可以,真機不行;

 

更新–>

4.項目更改一部分資源或者修改部分資料後,再次運行模擬器還是原來的效果,沒有發生變化:(例如提示找不到某些標頭檔。)

按一下:Product -> Clean ,應該是清除一下再編譯;

每次項目有資料修改,重新運行前,我都會clean一下,避免因為緩衝出現的錯誤…這個經常用,但是clean真正的意思我還沒讀懂它.

iOS開發運行報錯、常見問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.