轉載來自於:http://www.cnblogs.com/g-ios/p/4625912.html(廣_ios博客園)
BMKGeoCodeSearch 反向地理編碼一直失敗 Location
申請的key的安全碼與代碼中build id不一樣,修改成一樣就OK了
新建一個類,將百度地圖的定位功能封裝起來以后,定位的代理方法不走
定位是要一直持續的,而我們新建這個類,如果不設置成,staic靜態變量,他就會自動銷毀,對象銷毀以后肯定不會定位了。
ios8系統 點擊設置隱私定位功能直接崩潰的問題
這個問題出現的原因肯定不是ios8系統的問題,因為其他app都好的,為什么你的APP就有問題,肯定是你加代碼的時候什么地方寫錯了。
我對照代碼找了好幾遍,終於發現有個地方和別人的不一樣,那就是設置plist文件變量的時候Type類型BOOl應該是String。估計蘋果是通過字符串對比來判斷的,所以BOOl類型就直接崩潰了。
使用cateogry如果調用不了類目里的方法
需要在被擴展的類的.m文件中,導入你所擴展的類,在類目中不能聲明變量
彈出不同步 同一時間下來上拉刷新兩次,有時數據源數組會是空造成奔潰
數據源數組采用懶加載,另外記得給數組賦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
問題原因:
之前在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即可。