CocoaPods是項目依賴管理工具--提供第三方開源庫的管理。如:css
1.1 安裝CocoaPodshtml
在終端運行下面命令:git
另外mac自帶的ruby的軟件源rubygems.org由於使用亞馬遜的雲服務,因此被屏蔽了,須要更新一下ruby的源,以下:github
使用CocoaPods只須要把用到的第三方開源庫放到項目目錄下的Podfile文件中,即:web
而後在終端cd 到項目目錄下,再執行 pod install 安裝就能夠了。每次更改了Podfile文件,都須要從新執行一次pod update命名(若是遇到項目衝突,可使用:pod update --verbose --no-repo-update)正則表達式
2.1 Charles 主要功能編程
傳送門:關於charles 對於app開發的具體功能操做 --唐巧博客。json
是一款免費標註的工具,使用它能夠方便地輸出設計圖稿上的元素的大小、顏色、邊距、說明等。以下圖:後端
基於WebView的混合編程是同時使用原生的控件和WebView來展示應用界面的。ruby
1.1 何時應該用webView?
在實際開發中,webView控件接受一個HTML內容,用於呈現相應的界面。
2.1 方法一:[NSString stringWithFormat:] <img scr=http::////////> <strong> wwwww </strong> <p sssdsdsd> </p>
NSString *webContent = [NSString stringWithFormat:@"<html><head></head><body>%@</body></html>",webContent]; baseURL:nil];複製代碼
[_webView loadHTMLString:webContent];複製代碼
2.2.1 MGTemplateEngine(傳送門:mattgemmell.com/mgtemplatee…),它的模塊渲染引擎比較重量級,能夠自定義Filter。它須要依賴RegexKit,RegexKit是一個正在正則表達式工具類,提供強大的正則表達式匹配和替換功能。
2.2.2 GRMustache渲染因輕量級,匹配和替換規則是做者提供。(傳送門:下載地址)
建立文件名爲test.html
<html>
<head>
css--->%@
</head>
<body>
<h1>
{{ title }}
</h1>
<p>
{{ content }}
</p>
js->%@
</body>
</html>複製代碼
而後再代碼中把該文件讀取到內存中,在使用GRMustache的renderObject方法生成渲染後的HTML內容。上代碼:
NSURL *urlPath = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"html"];
NSString *html = [NSString stringWithContentsOfURL:urlPath encoding:NSUTF8StringEncoding error:nil];
NSDictionary *renderObject = @{@"title":@"我是標題",@"content":@"我是內容"};
NSString *content = [GRMustacheTemplate renderObject:renderObject fromString:html error: nil];
[_webView loadHTMLString:content baseURL:nil];
複製代碼
這樣,咱們使用GRMustache模塊引擎成功完成了HTML內容渲染工做。
注:renderObject的key必須和html設置的值一一對應。
app通過屢次迭代,會殘留一些被更換了的圖片。如何知道本身的工程有哪些圖片資源未被使用的呢?提供一個小工具,
連接地址:jeffhodnett-Unused 或者 LSUnusedResources(github連接)
下載完成後運行工程跟着操做便可。
按照Xcode文檔正常的操做打包是很是慢的,爲了提供效率我提供2個方法。這2個方法的原理是同樣的。
另外一個方法是有腳本進行打包。用sublime工具建立build_app.sh文件
mkdir ${appName}
mkdir ${appName}/Payload
cp -r ${appName}.app ${appName}/Payload/${appName}.app
cp Icon.png ${appName}/iTunesArtwork
cd ${appName}
zip -r ${appName}.ipa Payload iTunesArtwork
ipaName=Gemall_${version}_${environmental}_`date +20%y%m%d`_01.ipa
mv $project_path/${appName}/${appName}.ipa $project_path/${ipaName}
rm -rf $project_path/${appName}
exit 0
##
#appName 項目名字
#version 版本號
#environment 接口環境
#project_path 項目的絕對路徑
複製代碼
在終端運行 sh build_app.sh便可打包。
3.3.1 奔潰Application received signal SIGABRT
原理:在 Xcode 8 中,當你資源文件中[含有16位圖]或者[圖片顯示模式γ值爲'P3']且iOS targets設定爲iOS 9.3如下就會出現這個問題. 若是你的app須要支持廣色域顯示的話,那你必須得把target設置成iOS 9.3+,相反,若是你的app不須要支持廣色域且你想兼容 iOS 9.3 以前的項目,你就得把全部的16位的或者顯示模式爲'P3'圖片全都替換成8位模式的SRGB顏色的圖片。複製代碼
步驟:
打開assets.json並查找包含有 「DisplayGamut" : 「P3」 或者相關的內容.若是有,叫UI從新切一份。
關於iOS 性能優化梳理: 基本工具、業務優化、內存優化、卡頓優化、佈局優化、電量優化、 安裝包瘦身、啓動優化、網絡優化等---分享鏈接