Xcode开发的常见问题与解决方案
Xcode是最常見的開發工具,我們在用其進行開發和調試的時候,經常會遇到各種各樣的問題,在這里我就將這些錯誤梳理一下,并附上相應的解決方案,希望能幫到有需要的人。后續,我將會一直進行更新自己在開發中遇到的問題,如果大家有更好的解決方法,歡迎隨時與我交流或者給我留言,希望我們能共同在IT的道路上進步與成長,不勝感激。
Xcode工程文件打不開,出現“cannot be opened because the project file cannot be parsed”的錯誤。
問題原因:在svn上更新代碼后,打開xcode工程文件,會出現 xxx..xcodeproj cannot be opened because the project file cannot be parsed。這是因為.xcodeproj工程文件沖突了,然后還是會強制更新,內部文件出現了沖突,所以解析不了文件。如下:
.<<<<<<< .mine
9ADAAC6A15DCEF6A0019ACA8 .... in Resources */,
.=======
52FD7F3D15DCEAEF009E9322 ... in Resources */,
.>>>>>>> .r269
解決方案:
1.對.xcodeproj文件右鍵,點擊“顯示包內容“;
2.雙擊打開project.pbxproj 文件;
3.找到以上類似的沖突信息(可以用commad + f 搜索);
4.刪除“<<<<<<<,======,>>>>>>”這些行;
5.保存后退出;
6.重新打開.xcodeproj文件即可。調試時出現了Certificate identity ‘iPhone Developer: XXXXXXXX’ appears more than once in the keychain. The codesign tool requires there only be one。
問題原因:多次為同一臺計算機生成私有證書,并且每次都生成了proversionning文件,下載并按照到同一個iOS設備上,那么再次編譯程序到設備上的時候就會出現這個問題。
解決方案:在Xcode中,選擇菜單Window->Organizer,在LIBRARY下面,選擇Provisioning Profiles.找到前面幾次生成的Provisioning profiles.刪除。在系統的keychains,即鑰匙串管理程序中,在登錄下面,我的證書,刪除早期的私有證書,再次編譯即可。Xcode Cannot run using the selected device
No provisioned IOS devices are available.Connect an IOS device or choose an IOS simulator as the destination. 如下:問題原因:雖然提示沒有認證文件,可是認證文件確實是存在的。打開另一個項目用真機調試竟然可以。最后找到了原因:調試手機的sdk版本低于了編譯項目的SDK版本。
解決方案:修改IOS Deployment Target,不要高于真機的版本。編譯可執行文件時,報object file format invalid or unsuitable的錯誤。
解決方案:
打開終端
sudo su
查看/usr/bin目錄下是否存在codesign_allocate程序,如果存在,執行改名操作。
sudo mv /usr/bin/codesign_allocate /usr/bin/codesign_allocate_old
將xcode目錄下的codesign做一個軟鏈接
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate /usr/bin。真機編譯時報“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為空。在Archive項目時,出現了“Your build settings specify a provisioning profile with the UUID….. however, no such provisioning profile was found”的出錯。
解決方案:
1.找到項目中的**.xcodeproj文件,點擊右鍵,show package contents(打開包內容);
2.打開后找到project.pbxproj文件,用文本編輯器打開,其實就是右鍵,點擊open就好了;
3.打開這個文件后,按command+F,在這個文件中查找“PROVISIONING_PROFILE”,找到和這個“
PROVISIONING_PROFILE = “487F3EAC-05FB-4A2A-9EA0-31F1F35760EB”; “PROVISIONING_PROFILE[sdk=iphoneos*]” = “487F3EAC-05FB-4A2A-9EA0-31F1F35760EB”;”類似的都刪除。
4.然后保存文件,重新打開項目。xcode會提示你重新下載安裝provisioning profile文件,下載后安裝上就可以。
注意:如果上面的步驟還沒有解決問題,有可能是Provisioning Profile中選擇不正確,查看并選擇當前工程對應的Profile然后運行。如下圖:
在Xcode中,在更新了證書而再重新編譯程序,真機調試會出現“Your build settings specify a provisioning profile with the UUID‘XXX’, however, no such provisioning profile was found. Xcode can resolve this issue by downloading a new provisioning profile from the Member Center.”
解決方案(先確保證書設置沒有問題):
1.關閉項目,找到項目文件XXXX.xcodeproj,在文件上點擊右鍵,選擇“顯示包內容”(Show Package Contents),會新打開一個Finder。
2.在新打開的Finder中找到project.pbxproj,并且打開,找到所有包含報錯的UUID‘XXX’的行(包含UUID后面的一串數字的行,可能不包含”UUID”),整行刪除。
3.保存,重新啟動項目,再編譯。The working copy is locked due to a previous
使用CornerStone工具update最新SVN代碼報的錯,不僅無法上傳,也無法更新,錯誤提示被鎖。如圖:
解決方案:
1.在CornerStone找到本地代碼工程--右鍵--點擊clean即可。
2.如果cleanup沒有效果的話只好手動刪除鎖定文件。在終端中cd到svn項目目錄下,然后執行如下命令del lock /q/s,就把鎖刪掉了。“OBJC_CLASS_$_某文件名”, referenced from:的問題
解決方案:
1.首先檢查改文件名下面的類(.h和.m)是否全加進去了,如果沒有,手動加進去;
2.其次,如果1還沒有解決,在Build Phases里的Compile Sources 中添加報錯的文件;
3.再次,如果2沒有解決的話,檢查.framework文件有沒有導入,靜態庫編譯時往往需要一些庫的支持,查看你是否有沒有導入的庫文件,同樣是在Build Phases里的Link Binary With Libraries中添加。
4.最后,如果3沒有解決,可能是重復編譯,你之前復制過兩個地方,在這里添加過兩次,刪除時系統沒有默認刪除編譯引用地址。在Build Settings里搜索Search Paths 將里面Library Search Paths 中沒有用到的地址刪除。
總結
以上是生活随笔為你收集整理的Xcode开发的常见问题与解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS之获取手机的系统信息
- 下一篇: iPhone之横竖屏与自动旋转