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 性能优化梳理: 基本工具、业务优化、内存优化、卡顿优化、布局优化、电量优化、 安装包瘦身、启动优化、网络优化等---分享链接