以前遇到的各種Xcode報(bào)錯(cuò)江兢!都放進(jìn)來(lái)了昨忆!以后還有會(huì)繼續(xù)加入!相當(dāng)于一個(gè)記錯(cuò)本划址!
打包尽超、上架 |
---|
WARNING ITMS-90076: "Potential Loss of Keychain Access. The previous version of software
has an application-identifier value of ['G3WRS4SYLU.com.MMP.LiLiVaVa'] and the new
version of software being submitted has an application-identifier of ['3FKGU7B68C.com.MMP.LiLiVaVa'].
This will result in a loss of keychain access."
??警告的原因:打包上架的應(yīng)用最近從另一個(gè)帳號(hào)轉(zhuǎn)讓到了另一個(gè)帳號(hào)评汰,這僅僅是個(gè)警告,并不影響上傳及服務(wù)器編譯枪汪。
錯(cuò)誤 |
---|
[ A ]. 本地化字符串文件不能使用胁勺。
- 【1.】清理建文件夾世澜,刪除里面的一切DerivedData文件夾(位于“/Users/個(gè)人PC用戶名/Library/Developer/Xcode/DerivedData”)路徑下的緩存文件(占很大的內(nèi)存空間),刪除里面的程序署穗,重新啟動(dòng)Xcode寥裂,重建工程嵌洼。
DerivedData文件夾 - 【2.】去項(xiàng)目目錄里,手動(dòng)地創(chuàng)建兩個(gè)“infoplist.strings”的文件封恰,第一次在“en.lproj”文件夾和第二次在“fr.lproj”文件夾麻养。
[ B ]. Apple Mach-O Linker Error
Linker command failed with exit code 1 (use -v to see invocation)
例子??:
原因:重復(fù)引用多個(gè)文件或目錄
導(dǎo)入時(shí),錯(cuò)誤地導(dǎo)入為“.m”文件:
[ C ]. installation failed诺舔,Invalid argument
應(yīng)用程序編譯通過(guò)鳖昌,但是運(yùn)行時(shí),出現(xiàn)下面的提示框:“installation failed Invalid argument”
原因:
“infor.plist”文件中的Bundle indentifier 被置為空了5挽许昨!
解決:
填寫好Bundle indentifier就行了!
報(bào)錯(cuò) |
---|
[ A ]. 未引入庫(kù)文件( .m文件)
一般是沒(méi)有引入相應(yīng)的庫(kù)文件(或“.m”文件)褥赊。在引入三方庫(kù)的時(shí)候都會(huì)提供“.a”文件或framework糕档,里面裝的是第三方庫(kù)所提供的對(duì)“.h”文件的實(shí)現(xiàn),只有加進(jìn)去了才能找到“.h”文件里面方法的實(shí)現(xiàn)拌喉。
解決辦法:檢查工程里是否已經(jīng)把對(duì)應(yīng)的文件加了進(jìn)來(lái)速那。
(PROJECT -> TARGETS -> Build Settings -> Compile Sources -> 點(diǎn)“+”,添加“WeiboApi.m”文件)
若是已經(jīng)加了尿背,則在“build phases”底下的“compile sources”中加入相應(yīng)的“.m”文件端仰,或者在“link binary with libraries”中加入相應(yīng)的庫(kù)文件。
[ B ]. 一對(duì)象被釋放多次:Thread 1: signal SIGABRT
往往是一個(gè)對(duì)象被釋放了多次(多次釋放)残家。大多是粗心所致榆俺。
有一種情況稱為過(guò)渡釋放,比較隱蔽坞淮。
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; self.myData = [userDefault objectForKey:@"myCollectData"];
這種寫法是錯(cuò)誤的茴晋!我們自己并沒(méi)有將內(nèi)存分配給myData。所以 編譯器對(duì)這塊內(nèi)存有控制權(quán)回窘,而不是我們自己诺擅!
所以,在某個(gè)時(shí)刻啡直,我們不能保證myData是否有效烁涌。更不能保證程序到最后 進(jìn)行了“[_myData release];”操作!
根據(jù) “誰(shuí)分配酒觅,誰(shuí)管理” 的原則撮执!我改寫成了如下形式:NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; NSData * my_data = [userDefault objectForKey:@"myCollectData"]; self.myData = [NSData alloc] initWithData:my_data];
確保進(jìn)行了初始化!這樣才正確舷丹!
[ C ]. 展示名字:manager start failed :
在“info.plist”中必須添加“Bundle display name”
在使用百度地圖開(kāi)發(fā)平臺(tái)時(shí)抒钱,需要直接用“source code”方式,打開(kāi)“info.plist”并添加:
<key>CFBundleDisplayName</key> <string>BaiduDemo</string>
便可以了 !D北摇仗扬!
(當(dāng)然DisplayName(展示名字)是 可變的 )
[ D ]. 權(quán)限描述
iOS10點(diǎn)擊有關(guān)權(quán)限訪問(wèn),直接Crash蕾额。并在控制臺(tái)輸出了如下一些信息:
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSContactsUsageDescription key with a string value explaining to the user how the app uses this data.
意思:你需要在“info.plist”文件中早芭,添加一個(gè)“NSContactsUsageDescription”的Key,并為其Value添加一個(gè)描述诅蝶。
步驟:
1退个,在項(xiàng)目中找到“info.plist”文件,右擊 “Open As”秤涩,以“Source Code” 的形式打開(kāi)帜乞;
2,分別復(fù)制以下Value和Key筐眷,Key是一定不能錯(cuò)黎烈,Value可以隨便填;// 相機(jī)權(quán)限描述: <key>NSCameraUsageDescription</key> <string>cameraDesciption</string> // 通信錄: <key>NSContactsUsageDescription</key> <string>contactsDesciption</string> // 麥克風(fēng): <key>NSMicrophoneUsageDescription</key> <string>microphoneDesciption</string> // 相機(jī): <key>NSPhotoLibraryUsageDescription</key> <string>photoLibraryDesciption</string>
3匀谣,在“info.plist”文件里復(fù)制上照棋,然后保存。并且Clean工程就好了武翎。
[ E ]. PNG圖片格式錯(cuò)誤
打包的時(shí)候烈炭,出現(xiàn)這個(gè)警告!
意思是:png圖片文件 失效 (png file invalid宝恶;)
重新導(dǎo)入一下png圖片就ok了符隙。但是 要知道“到底是哪張圖片”出問(wèn)題了。
[ F ]. 程序結(jié)束:Message from debugger: Terminated due to signal 9
原因:在調(diào)試的時(shí)候主動(dòng)的結(jié)束了程度垫毙。
如:上滑霹疫、點(diǎn)擊按鈕等結(jié)束了程序。
[ G ]. AFNetworking請(qǐng)求综芥、接收的格式問(wèn)題
返回的數(shù)據(jù)為非“json”標(biāo)準(zhǔn)格式丽蝎,會(huì)報(bào)如下錯(cuò)誤:
Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
原因:在默認(rèn)情況下,AFNetworking的網(wǎng)絡(luò)請(qǐng)求都是以json數(shù)據(jù)格式返回?cái)?shù)據(jù)膀藐。因此屠阻,在客戶端也會(huì)以json為默認(rèn)格式。
解決:需在發(fā)送請(qǐng)求前额各,加入下面代碼:manager.responseSerializer = [AFHTTPResponseSerializer serializer]
国觉。
[ H ]. 類型沖突:[__NSCFNumber length]: unrecognized selector sent to instance 0x8b3c310’
原因:NSNumber類型與NSString類型有沖突。
解決:將所需要的相應(yīng)屬性的NSString類型 改為NSNumber類型(將屬性類型設(shè)置為NSNumber), 而在調(diào)用時(shí)在將NSNumber類型 轉(zhuǎn)成 NSString類型即可虾啦。
[ I ]. 兩個(gè).m文件:linker command failed with exit code 1 (use -vto see invocation)
原因:導(dǎo)入了“.m”的頭文件蛉加,導(dǎo)致同時(shí)有兩個(gè)一樣的“.m”文件 在編譯蚜枢。
[ J ]. Xcode真機(jī)測(cè)試報(bào)錯(cuò):Could not launch...
解決方案一:
1.刪除“/Users/(用戶名)/Library/Developer/Xcode/DerivedData/(對(duì)應(yīng)APP程序)文件夾”里的內(nèi)容缸逃;
2.拔掉手機(jī)针饥,刪除對(duì)應(yīng)的APP應(yīng)用,完全退出 Xcode工具需频;
3.重新連接手機(jī)進(jìn)行真機(jī)測(cè)試丁眼。解決方案二:
進(jìn)行過(guò)真機(jī)抓包測(cè)試,關(guān)閉 HTTP代理昭殉。解決方案三:
1.選擇手機(jī)中“設(shè)置” → “通用” → “設(shè)備管理” → 選擇自己對(duì)應(yīng)的開(kāi)發(fā)商應(yīng)用 → “刪除應(yīng)用”苞七;
2.重新運(yùn)行Xcode中的程序,這個(gè)時(shí)候應(yīng)該還會(huì)報(bào)錯(cuò)挪丢;
3.再次進(jìn)入自己對(duì)應(yīng)的開(kāi)發(fā)商應(yīng)用 → “驗(yàn)證應(yīng)用”蹂风;
4.再次運(yùn)行Xcode中的程序就OK了。
參:《個(gè)人賬號(hào) 真機(jī)測(cè)試》
[ K ]. 數(shù)據(jù)修改:Warning! ivar size mismatch in StepUICollectionView_ of 80 bytes - can't change the superclass.
解決:
1.搜索“StepUICollectionView”乾蓬,找到“.m”文件惠啄;
2.搜索“char filler”,在“[ ]”中任内,將數(shù)據(jù)改為警告提示的數(shù)據(jù)撵渡。
[ L ]. Xib連線問(wèn)題
原因:Xib中連線出問(wèn)題
[ M ]. 沒(méi)實(shí)現(xiàn)某方法
原因:某個(gè)對(duì)象沒(méi)有實(shí)現(xiàn)某個(gè)方法
[ N ]. 網(wǎng)絡(luò)代理:nw_proxy_resolver_create_parsed_array
2017-03-15 09:03:51.941774 cuteKids[1155:34545] PAC Fetch failed with error [NSURLErrorDomain:-1004]
2017-03-15 09:03:51.942688 cuteKids[1155:34545] [] nw_proxy_resolver_create_parsed_array PAC evaluation error: NSURLErrorDomain: -1004
原因:mac系統(tǒng) 網(wǎng)絡(luò)代理問(wèn)題。
解決:系統(tǒng)偏好設(shè)置 → 網(wǎng)絡(luò) → 高級(jí) → 代理死嗦,然后關(guān)閉“自動(dòng)代理”就好了趋距。
警告 |
---|
[ A ]. 字符串格式:Data argument not used by format string
原因:“
[ stringWithFormat: ]
”里面沒(méi)有idx對(duì)應(yīng)的格式引起的。
解決:修改里面為 相對(duì)應(yīng)的格式
[ B ]. SB的屬性未刪除
Failed to set () user defined inspected property on (UILabel): [<UILabel 0x7febfcf4e7b0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key .
原因:在增加了一些屬性之后越除,卻在代碼中刪除掉了节腐,但是還是在UIStoryboard中被保留。
解決:所以需改掉(刪除)相應(yīng)的屬性摘盆。
[ C ].鍵盤遮蓋住了textview
報(bào)錯(cuò):
2017-08-11 16:33:33.293831 cuteKids[10465:317797] 0x60800014d7e0 Copy matching assets reply: XPC_TYPE_DICTIONARY <dictionary: 0x60800014d7e0> { count = 1, transaction: 0, voucher = 0x0, contents =
"Result" => <int64: 0x60800003e260>: 29
}
2017-08-11 16:33:33.294494 cuteKids[10465:317797] 0x60800014c8c0 Daemon configuration query reply: XPC_TYPE_DICTIONARY <dictionary: 0x60800014c8c0> { count = 2, transaction: 0, voucher = 0x0, contents =
"Dictionary" => <dictionary: 0x60800014c130> { count = 1, transaction: 0, voucher = 0x0, contents =
"ServerURL" => <dictionary: 0x60800014daa0> { count = 3, transaction: 0, voucher = 0x0, contents =
"com.apple.CFURL.magic" => <uuid: 0x608000249f30> C3853DCC-9776-4114-B6C1-FD9F51944A6D
"com.apple.CFURL.string" => <string: 0x60800024bee0> { length = 30, contents = "https://mesu.apple.com/assets/" }
"com.apple.CFURL.base" => <null: 0x10ac19f20>: null-object
}
}
"Result" => <int64: 0x608000037fe0>: 0
}
2017-08-11 16:33:33.294780 cuteKids[10465:317797] [MobileAssetError:29] Unable to copy asset information from https://mesu.apple.com/assets/ for asset type com.apple.MobileAsset.TextInput.SpellChecker
原因:由于鍵盤會(huì)遮蓋住textview,所以需要實(shí)現(xiàn)鍵盤彈出修改scrollview的位置翼雀。
_mytextView.autocorrectionType = UITextAutocorrectionTypeNo; //??必須添加??
_mytextView.spellCheckingType = UITextSpellCheckingTypeNo;
[ D ].未添加協(xié)議:UITextFieldDelegate
警告:Assigning to 'id<UITextFieldDelegate> _Nullable' from incompatible type '某個(gè)ViewController *const __strong'
原因:提示分配給"UITextFieldDelegate"是類型有誤的!
解決:添加<UITextFieldDelegate>
協(xié)議
[ E ].CFNetwork internal error
警告:(控制臺(tái)警告信息)
440: CFNetwork internal error (0xc01a:/BuildRoot/Library/Caches/com.apple.xbs/Sources/CFNetwork/CFNetwork-758.4.3/Loading/URLConnectionLoader.cpp:289)
解決:修改“info.plist”文件的“NSExceptionDomains”項(xiàng)骡澈!
NSExceptionAllowInsecureHTTPLoads : YES
NSExceptionRequiresForwardSecrecy : NO
NSIncludesSubdomains : YES
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionAllowInsecureHTTPLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>192.168.3.106</key> <!-- 域地址 -->
<dict>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
更多文章 (參考\總結(jié))