- 方法1:下載dSYM工具分析
- 方法2:終端cd文件反編譯
由于這類的崩潰信息通常難以重現(xiàn), 沒有任何的重現(xiàn)步驟,所以我們得找到發(fā)布該版本時(shí)的原始代碼娶牌,可能會(huì)需要回朔到以前的SVN或者Git版本。
然后找到當(dāng)時(shí)上傳代碼時(shí)使用的DYSM文件,這文件通常在.xcarchive文件中迟几。
對(duì)于成功生成archvie的項(xiàng)目, 在這個(gè)archive的包中栏笆, 是可以通過顯示包內(nèi)容类腮, 看到DSYMs文件夾和一個(gè)products文件夾, 繼續(xù)顯示DSYMs文件夾下蛉加,可以看到一個(gè)xxx.app.DSYM文件蚜枢,繼續(xù)對(duì)它顯示包內(nèi)容,可以看到Contents/Resources/DWARF/xxxx文件针饥, 這個(gè)文件是編譯后的二進(jìn)制文件厂抽,通過它可以進(jìn)行反編譯,從而找到二進(jìn)制對(duì)應(yīng)的源碼位置丁眼。
查找.xcarchive文件位置
finder--右鍵--前往文件夾
~/Library/Developer/XCode/Archives
顯示包內(nèi)容:看到DSYMs文件夾和一個(gè)products文件夾筷凤, 繼續(xù)顯示DSYMs文件夾下,可以看到一個(gè)xxx.app.DSYM文件户盯,繼續(xù)對(duì)它顯示包內(nèi)容嵌施,可以看到Contents/Resources/DWARF
使用終端cd 到文件位置
cd /Users/heqin/Downloads/xxxMovie2.0.0_apps_0605_2104\ 13-6-5\ 下午9.02.xcarchive/dSYMs/xxxx.app.dSYM/Contents/Resources/DWARF
找到打開DWARF文件后執(zhí)行 atos -arch armv7 -o xxxx 0x1153b9.
就可以看到這處內(nèi)存地址反編譯回來(lái)的源碼行.
CoreData: Cannot load NSManagedObjectModel.nil is an illegal URL parameter
這是因?yàn)樵诠こ讨蠧oreData的命名和AppDelegate中使用的命名不同造成的饲化,可能是自己修改了CoreData文件但是忘記修改AppDelegate中相應(yīng)的字符串。
將圖片中的字符串改成和CoreData文件名一樣就可以了吗伤。
No such file or directory ......
找不到某個(gè)文件 首先復(fù)制文件名 在Build Phases下找
淺白色說(shuō)明文件找不到了
linker command failed with exit code 1(use -v to see invocation)
文件沖突 左下角搜文件
通常有兩種情況 1.有兩個(gè)相同文件 2.只有一個(gè)的時(shí)候command+shift+f 搜索 ~~.m 看是否引入.m
Application tried to push a nil view controller on target
試圖推出空的試圖控制器
must pass a class of kind UITableViewCell
注冊(cè)方法是否對(duì) 打全局?jǐn)帱c(diǎn)
分區(qū)頭亂竄
可能是view的問題可能是frame=頭的frame 所以頭在相對(duì)于tableView偏移的基礎(chǔ)上再偏移一次 改為bouns相對(duì)于自己
tableView 有自己頭試圖和尾視圖 區(qū)的頭尾有方法實(shí)現(xiàn)可以注冊(cè)重用池也可以不用重用池[有內(nèi)存問題不能釋放view]
輪播圖: 上下滾動(dòng)時(shí)輪播圖不走
因?yàn)槎〞r(shí)器是默認(rèn)狀態(tài)下是defaultMode 所以在滾動(dòng)UITrackingRunLoopMode時(shí)好像暫停了一樣
在定時(shí)器中添加下面一段話:
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
定時(shí)器不參與引用計(jì)數(shù) 直接置空
真機(jī)測(cè)試時(shí)無(wú)法運(yùn)行吃靠。報(bào)錯(cuò)如下:
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library
- 我用的是Xcode7.1 可能是第三方庫(kù)不兼容。7.0以上默認(rèn)開啟 ENABLE_BITCODE
三方庫(kù)編譯的時(shí)候沒有 ENABLE_BITCODE
解決辦法:
有兩種: 1.修改工程設(shè)置 2.修改第三方庫(kù)
第二種沒研究足淆,以后涉及會(huì)補(bǔ)充巢块。
第一種:
在build setting 中搜索 enable bitcode 修改為NO
真機(jī)測(cè)試 could not find developer disk image
stackoverflow上得答案
我用的是Xcode7.1 手機(jī)是9.2 真機(jī)的系統(tǒng)過高
解決辦法:
- 更新Xcode
- 或者將 將9.2的文件添加進(jìn)去 路徑 /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
![7.1]
(https://www.dropbox.com/s/dledmlnhb6my5x3/Xcode7.1%E6%96%87%E4%BB%B6%E5%A4%B9.png?dl=1)
下載地址
修改相對(duì)路徑
方法:
** $(SRCROOT)** /AutoLayoutAnimation/EaseUI/EaseUI-Prefix.pch
tableView Crash:
'UITableView (<UITableView: 0x7fd26b090a00; frame = (0 94; 320 568); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x7fd26abdc0b0>; layer = <CALayer: 0x7fd26ab4a4e0>; contentOffset: {0, 0}; contentSize: {320, 44}>) **failed to obtain a cell from its dataSource** (<FiestViewController: 0x7fd26954c500>)'
先循環(huán)使用了cell,后又創(chuàng)建cell
treating unicode character as whitespace
可能是因?yàn)榭崭駟栴} 重寫一遍就好了
CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 9.1'
證書問題
1.選擇工程->Build Settings -> Code Signing -> Code Signing Identity -> Debug -> Any ios SDK 將選項(xiàng)改為:iPhone Developer
2.重新下載你的證書巧号,或者修改通配符族奢,或者說(shuō)修改你的appid 。選擇工程 -》Bundle Identifier 修改為最新的appid 丹鸿。造成這種原因是因?yàn)槟阈薷牧四愕腶pp sdk版本
16/03/26
**CUICatalog: Invalid asset name supplied: **
項(xiàng)目中搜索UIImage imageNamed:
Local declaration of 'XXX' hides instance variable
因?yàn)楸镜刈兞扛瘮?shù)參數(shù)變量同名
'invalid nib registered for identifier (cell) - nib must contain exactly one top level object which
檢查nib文件內(nèi)是否拖拽了兩個(gè)cell 或者其他的什么越走。
-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "XXXView" nib but the view outlet was not set.'
nib文件與ViewControler沒有關(guān)聯(lián)成功
1, 打開nib文件
2, 點(diǎn)擊"File's Owner", 按command+4,設(shè)置Class為xxxViewControler
3, 按Control+"Files's Owner", 里面有個(gè)默認(rèn)的IBOutlet變量view, 看一下后面有沒有做關(guān)聯(lián),如果沒有就拉到下面的View和視圖做個(gè)關(guān)聯(lián)
今天運(yùn)行百度鷹眼Demo的時(shí)候鷹眼dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from:
按照網(wǎng)上說(shuō)的刪除緩存文件重啟仍沒辦法解決
后來(lái)發(fā)現(xiàn)問題是沒有serviceID AK 及 安全碼的問題
[None of the input catalogs contained a matching launch image set named "XXXXX".]
缺什么就Assets.xcassets上右鍵新建什么就OK啦靠欢。
NSUserDefaults報(bào)錯(cuò)attempt to insert non-property list object
value的數(shù)據(jù)是 NULL
if ([Value isEqual:[NSNull null]])
{
Value = @"";
}
-[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]’
NSArray或NSDictionary插入數(shù)據(jù)為空而造成的
'-[__NSCFString count]: unrecognized selector sent to instance 0x7ff57bee12d0'
快速定位出錯(cuò)位置:采用僵尸斷點(diǎn)和全局?jǐn)帱c(diǎn)
-[NSObject(NSObject)doNotRecognizeSelector:]
系統(tǒng)已經(jīng)設(shè)置中文廊敌,app內(nèi)仍提示英文及復(fù)制粘貼也為英文
在Supporting Files 中的info.plist 中將 Localization native development region改為China即可
The certificate used to sign "app名" has either expired or has been revoked. An updated ....
證書失效 重新生成
Supported orientations has no common orientation with the application
檢查橫屏
Local declaration of 'XXX' hides instance variable
變量名重復(fù)
Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x12763b340> was mutated while being enumerated.'**
遍歷數(shù)組的同時(shí)對(duì)數(shù)組進(jìn)行修改
“App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file”
修改HTTP
1、在Info.plist中添加 NSAppTransportSecurity 類型 Dictionary ;
2门怪、在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 類型Boolean ,值設(shè)為 YES;
Pushing the same view controller instance more than once is not supported
stackoverflow上的解答
意思就是網(wǎng)絡(luò)極差的環(huán)境下在推出一次的情況下再次推出相同界面導(dǎo)致程序crash
解決辦法就是先判斷棧頂Controller是不是你要推出的界面
iOS10關(guān)于相機(jī)crash問題
相機(jī)權(quán)限問題
plist文件中添加Key:Privacy - Camera Usage Description
The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
終端里刪除workspace 重新install
rm -rf MyProject.xcworkspace
pod install
關(guān)于Xcode8 日志打印
在Edit Scheme-> Run ->Arguments 中添加 Name:OS_ACTIVITY_MODE Vlue:disable
sdk不完全支持BitCode
ld: bitcode bundle could not be generated because '/Users/karen/Desktop/******/Tools/umeng_ios_social_sdk_4.2.5_arm64_custom/UMSocial_Sdk_4.2.5/libUMSocial_Sdk_4.2.5.a(UMSocialHTTPRequestOperation.o)' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build for architecture armv7
libUMSocial_Sdk_4.2.5.a第三方庫(kù)不包含bitcode
BitCode?
bitcode是被編譯程序的一種中間形式的代碼骡澈。包含bitcode配置的程序?qū)?huì)在App store上被編譯和鏈接。bitcode允許蘋果在后期重新優(yōu)化程序的二進(jìn)制文件掷空,而不需要重新提交一個(gè)新的版本到App store上肋殴。
如果一個(gè)工程里面有靜態(tài)庫(kù)的引用,那么所有的靜態(tài)庫(kù)也需要打開Bitcode后重新編譯坦弟。
Bitcode. When you archive for submission tothe App Store, Xcode will compile your app into an intermediate representation.The App Store will then compile the bitcode down into the 64 or 32 bitexecutables as necessary.
解決辦法:
- 將enable關(guān)掉
- 給靜態(tài)庫(kù)的工程增加一個(gè)選項(xiàng)“-fembed-bitcode”
pod search 提示Unable to find a pod with name, author, summary, or descriptionmatching “****”
解決辦法:
rm ~/Library/Caches/CocoaPods/search_index.json
Attempt to set a non-property-list object
保存數(shù)據(jù)類型出錯(cuò)NSUserDefaults支持的數(shù)據(jù)類型有NSString护锤、 NSNumber、NSDate酿傍、 NSArray蔽豺、NSDictionary、BOOL拧粪、NSInteger、NSFloat等系統(tǒng)定義的數(shù)據(jù)類型沧侥。
Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:]
是由于cellForRowAtIndexPath:返回null
React Native Xcode 8.0 報(bào)錯(cuò) Ignoring return value of function declared with warn_unused_result attribute
RCTSRWebSocket.m SecRandomCopyBytes(kSecRandomDefault, sizeof(uint32_t), (uint8_t*)mask_key)
做處理可霎,只需在該處加上(void)即可。如(void)SecRandomCopyBytes(kSecRandomDefault, sizeof(uint32_t), (uint8_t *)mask_key);
今兒遇到個(gè)大麻煩,公司項(xiàng)目要遷移到新的svn宴杀,不知道為什么CornerStone就一直連不上提示
cornerstone The operation could not be completed 查了好久怎么都不行癣朗,換一臺(tái)電腦就可以。
后來(lái)將鑰匙串中關(guān)于這個(gè)項(xiàng)目的密碼刪除刷新后就好了旺罢。