1.添加第三方庫時,須要注意使用環境xcode
duplicate symbol _llvm.embedded.module in: /Users/dengw/360Cloud/xcode_code/application/OnceNote/Pods/ShareSDK3/libraries/extends/WeChatSDK/libWeChatSDK.a(MTAEvent.o) /Users/dengw/360Cloud/xcode_code/application/OnceNote/Pods/ShareSDK3/libraries/extends/WeChatSDK/libWeChatSDK.a(MTATestSpeed.o) ld: 24 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
緣由:使用的這個第三方SDK的靜態庫,就是.a後綴的文件,不支持模擬器指令集,由於模擬器是電腦的CPU, x86_64構架。app
解決方案:build或run時,選擇「iOS Device」,使用真機調試。或者,添加模擬器使用庫。框架
2.自定義日誌輸出ide
//自定義日誌輸出 #ifdef DEBUG //調試狀態 #define XLog(...) NSLog(@"%s line:%d\n %@ \n\n", __func__, __LINE__, [NSString stringWithFormat:__VA_ARGS__]) #else //發佈狀態 #define XLog(...) #endif
經過NSLog()可使用%@格式說明符來輸出對象。NSLog()處理%@說明符時,它會詢問參數列表中相應的對象以獲得這個對象的描述。從技術上講,就是NSLog()給這個對象發送描述消息,而後對象的description方法生成一個NSString並返回。以後NSLog()在其輸出中包含這個字符串。在類中添加description方法就能夠自定義NSLog()如何輸出對象。ui
3.cocoapods使用問題spa
使用pod install命令時,卡在Updating local specs repositories不動。3d
解決辦法:「pod install」 換成「pod install --verbose --no-repo-update」命令,前面的命令被牆了。調試
4.The operation couldn’t be completed. (LaunchServicesError error 0.)日誌
解決辦法:退出Xcode,退出Simulator,必定要徹底退出。code
5.包含的文件找不到
1)libxml/parser.h file not found
解決方法:在Xcode菜單 Project->Project Settings的All標籤,搜索 Header Search Path ,添加/usr/include/libxml2 便可。
6.設置UISearchBar取消按鈕
UISearchBar *searchBar = [[UISearchBar alloc] init]; //顯示取消按鈕 [searchBar setShowsCancelButton:YES animated:YES]; //設置取消按鈕的文字(默認是cancel) for (UIView *view in [[searchBar.subviews lastObject] subviews]) { if ([view isKindOfClass:[UIButton class]]) { UIButton *cancelBtn = (UIButton *)view; [cancelBtn setTitle:@"取消" forState:UIControlStateNormal]; } }
7.真機調試team ID not found問題
問題:No valid signing identities (i.e. certificate and private key pair) matching the team ID 「***********」 were found.
注:一般這種狀況出如今下載並打開別人項目時
解決方案:
1)、將Build Setting裏面的Code Signing更改成本身的證書;
2)、嘗試修改target -> General -> Identity -> Team,將其值修改成None(一般不能被修改);
3)、若2不成功,則針對項目的target複製多一份副本,
選擇Duplicate;
4)、將複製後的target的Team設置爲None;
5)、選擇當前運行target爲複製並更改後的副本,Run;
至此,該問題已經解決。
8.Xcode編譯C++
將.cpp改爲.mm
9.添加類名前綴
Build Setting頁,右側Project Document-->Class Prefix項
10.Xcode中沒法從Button到View Controller拖線
緣由:xib 或者 storyboard中的那個viewController 跟你要連接的那個Controller沒對應上。
解決方案:在xib 或者 storyboard裏,在class裏寫一下那個類名便可。
11.使用官方私有API的方式
法1.只導頭文件進去工程。
法2.拷貝私有框架進工程,再導入頭文件。
法3.使用extern方式添加聲明。
實例:
@interface NSObject ()
- (NSString *)originalString;
- (void)removeLineFromNewTextLineInfoRange;
- (id)productName;
+ (BOOL)canConvertToObjC2:(id)arg1;
- (BOOL)taskStopRunning;
@end
12.Xcode build failure 「Undefined symbols for architecture x86_64」
解決辦法:導入所引發問題的框架。
......
【掃描關注更多幹貨】
公衆號:xiaoniu