xcode常見報錯調試【原創】

 BMKGeoCodeSearch 反向地理編碼一直失敗 Locationphp

 申請的key的安全碼與代碼中build id不同,修改爲同樣就OK了html

 

新建一個類,將百度地圖的定位功能封裝起來之後,定位的代理方法不走ios

 

定位是要一直持續的,而咱們新建這個類,若是不設置成,staic靜態變量,他就會自動銷燬,對象銷燬之後確定不會定位了。數組

 

ios8系統 點擊設置隱私定位功能直接崩潰的問題xcode

這個問題出現的緣由確定不是ios8系統的問題,由於其餘app都好的,爲何你的APP就有問題,確定是你加代碼的時候什麼地方寫錯了。安全

我對照代碼找了好幾遍,終於發現有個地方和別人的不同,那就是設置plist文件變量的時候Type類型BOOl應該是String。估計蘋果是經過字符串對比來判斷的,因此BOOl類型就直接崩潰了。網絡

 

使用cateogry若是調用不了類目裏的方法session

 

須要在被擴展的類的.m文件中,導入你所擴展的類,在類目中不能聲明變量app

 

彈出不一樣步 同一時間下來上拉刷新兩次,有時數據源數組會是空形成奔潰ide

 

數據源數組採用懶加載,另外記得給數組賦nil,最好這樣作。

 

輸入框與鍵盤的彈出不一樣步

 

這代表監聽鍵盤錯誤,應該監聽的是鍵盤將要顯示的通知,而不是鍵盤顯示出之後的通知

 

問題 -[UITableView _configureCellForDisplay:forIndexPath:]

解答  由於- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 這個函數的返回值中有nil

 

問題   Xcode 工程文件打不開,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文件便可

 

問題 使用arc編寫的文件,如何不用刪release

 

解答 在build phases 的complies sources設置中將相應的文件設置爲-fno-objc-arc

 

問題:libxml/tree.h file not found解決辦法

 

解答:1.  導入libxml2.dylib 包

 

      2.設置Header Search Paths 爲 /usr/include/libxml2 如圖:

          

問題:__dns_free_resource_r_dns_free環信SDK集成EaseMobSDK

"_dns_free_resource_record", referenced from: -[XMPPSRVResolver processRecord:length:] in libEaseMobClientSDKLite.a(XMPPSRVResolver.o)

 這樣的錯誤,是因爲缺乏庫:

添加libresolv.dylib庫,就能夠了

 

使用上拉下拉刷新方法時,若是跳出該界面接記得釋放上拉下拉刷新類(老版本的MJRefresh)

不能在viewdidload中跳轉控制器

 

問題:AFNetworking請求中含中文時程序崩潰

AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];[manager GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {//} failure:^(AFHTTPRequestOperation *operation, NSError *error) {//}];

出現error:

Assertion failure in -[AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:]

須要處理urlString的編碼

 urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

 

完全解決_OBJC_CLASS_$_某文件名", referenced from:問題

http://www.cnblogs.com/g-ios/p/4625907.html 

 

Receiver type 'TableViewCellFrame' for instance message is a forward declaration

這每每是引用的問題。ARC要求完整的前向引用,也就是說在MRC時代可能只須要在.h中申明@class就能夠,可是在ARC中若是調用某個子類中未覆蓋的父類中的方法的話,必須對父類.h引用,不然沒法編譯。

 

 

程序發佈後,發現一個bug,須要在本身手機調試時,出現:a valid provisioning profile for this executable was not found錯誤.

 

原來是由於發佈的時候把schema裏的"Build Configuration"改爲了release。而release對應的provision是用發佈證書的。把"Build Configuration"改爲了debug就行了。

because the App Transport Security policy requires the use of a secure connection

 

 

 

今天升級Xcode 7.0 bata發現網絡訪問失敗。

輸出錯誤信息

 

The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

Google後查證,iOS9引入了新特性App Transport Security (ATS)。詳情:App Transport Security (ATS)

 

新特性要求App內訪問的網絡必須使用HTTPS協議。

可是如今公司的項目使用的是HTTP協議,使用私有加密方式保證數據安全。如今也不能立刻改爲HTTPS協議傳輸。

 

最終找到如下解決辦法:

 

在Info.plist中添加NSAppTransportSecurity類型Dictionary。

在NSAppTransportSecurity下添加NSAllowsArbitraryLoads類型Boolean,值設爲YES

參考:

 

App Transport Security support aka apps on iOS 9 don't work #4560

711_networking_with_nsurlsession.pdf

總結:

 

蘋果正在加大應用安全的管控,這個舉措能夠看出蘋果對信息安全的重視,也暴露出大部分應用傳輸數據時都是未通過加密的,或使用私有方式加密,以致於蘋果開始對開發者提出要求。

私有加密雖然必定程度上是安全的,可是終究不是一個長久之計。全世界這麼多安全專家在維護HTTPS安全,早日使用HTTPS確保信息安全才是王道!也省去了私有加密協議的安全隱患!

 

 

當更新xcode後,再次打開svn他將提示xcode/develop不存在,而且讓你用xcode-select切換成你當前使用的xcode。

 

以下: sudo xcode-select -switch /Applications/Xcode-beta.app/

 

這裏的路徑是最容易出錯的,我當時就被他弄迷了 搞了好長時間  記錄這個是硬盤下的application並非用戶裏的application,還有就是文件名,儘可能讓他本身提示出來,避免出錯

 

 

error: Couldn't materialize: couldn't get the value of variable result: variable not available

Errored out in Execute, couldn't PrepareToExecuteJITExpression 這種報錯更直觀的表現是,一句代碼一執行,所建立的對象將會立馬變成空,但不影響使用

 

 

 

 

 

 

 

 

 

 

 

 

 

coredata  Can't merge models with two different entities named ‘MessageModel'

 

這種錯誤是由於工程內部自動生成了一個.xcdatamodeld文件,解決辦法就是 將該文件刪除,clean,而後將軟件從測試機或真機中刪除,再運行

 

uitableView 不走datasource方法

 

代理沒掛     行數或者段數設置爲0    uitableview的frame爲0 

 

 

 

Phone開發】「此證書是由未知頒發機構簽名」解決方法

 

問題緣由:

以前在keychain(鑰匙竄訪問)中多刪了一個證書:Apple Woldwide Developer Relations Certification Authority,它是iPhone Developer證書的簽發者,若是它被刪除就會致使iPhone Developer證書被識別爲未知頒發機構簽名,而後xcode中真機調試就會出現上面的錯誤。

 

解決辦法:

從新把AppleWWDRCA放回去;從Apple官網(http://www.apple.com/certificateauthority/)下載一個,下載後拖入keychain(鑰匙竄訪問)-登陸目錄。

 

若是想從新生成證書,Apple是容許的,只要不修改App Id就Ok。

 

Code Sign error: No code signing identities found: No valid signing identities (i.e. certificate and private key pair) matching the team ID 「E9823ESPAM」 were found.

證書出現這種問題時第一反應不要認爲是證書除了問題,要查看target裏的CDL與CDLtest裏面是否設置了同樣的配置文件。

 

A valid provisioning profile for this executable was not found.  真機調試

自從XCode支持自動維護證書以後,省去了咱們手動添加設備再更新完證書以後下載的麻煩,但一直都沒有搞明白自動維護的機制,致使常常出現XCode報錯卻不自動添加設備,同時因爲證書是XCode建立的,又沒法手動修改的問題。通過一段時間的測試,終於找到了解決辦法,在這裏分享給你們。

 

正常的狀況應該是:

no provisioning profile was found for this executable

而後能夠選擇Fix Issue,這樣XCode就會自動爲咱們將新的設備添加到證書裏,再自動更新證書。可能遇到的錯誤以下:

A valid provisioning profile for this executable was not found

解決方法是

1. 在Target的General界面中將Team改成所對應的開發者帳號團隊

2. 在Target的Build Settings中的Code Signing Identity都改成iOS Developer(這裏不能選擇本身的),Provisioning Profile改成Automatic

3. 此時Clean以後再運行,就能夠出現Fix Issue的對話框,選擇Fix Issue便可。

相關文章
相關標籤/搜索