-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsearch.xml
46 lines (46 loc) · 18.7 KB
/
search.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title><![CDATA[Jenkins 在MAC上的配置使用]]></title>
<url>%2F2018%2F02%2F01%2FJenkins-%E5%9C%A8MAC%E4%B8%8A%E7%9A%84%E9%85%8D%E7%BD%AE%E4%BD%BF%E7%94%A8%2F</url>
<content type="text"><![CDATA[在开发过程中编译代码进行打包测试是程序员的日常,这里就MAC电脑打包做具体的配置详解,备不时之需; 安装首先要下载JavaSE的JDK:Java-SE-JDK;和安装包:Jenkins;这里值得注意的是:1.先配置Java环境,再安装Jenkins;2.JDK要安装JDK8,不要选择最新的,因为在后面设置过程中,JDK9会有错误; 配置安装完Jenkins之后,会自动弹出浏览器,进入(http://localhost:8080) ,如果出现错误,可能是Java环境的问题,重新安装JDK; 如果正常的话就会看到下面的图片 如果不是上面的界面,而是输入用户名和密码的界面, 这个时候先不用管这些,因为这个时候Jenkins是在共享目录下面,操作权限有限制; 修改为自己用户目录下这个时候请找到目录/Library ;/Library/LaunchDaemons;/Library/LaunchDaemons/org.jenkins-ci.plist ;这几个目录请在显示简介中打开读写权限,然后再命令行中输入:12cd /Library/LaunchDaemonssudo vim org.jenkins-ci.plist 输入‘i’,进入编辑模式,找到12<key>JENKINS_HOME</key> <string>/Users/Shared/Jenkins/Home</string> 替换成12<key>JENKINS_HOME</key> <string>/Users/自己电脑的账户名字/Jenkins/Home</string> 然后点击‘esc’,再命令行输入‘:wq’,保存 重启服务这个时候要在命令行输入以下代码12345678// 关闭命令sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist // 开启命令sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist// 启动Jenkinsjava -jar /Applications/Jenkins/jenkins.war –httpPort=8080 然后浏览器输入(http://localhost:8080) ,会出现下面的个人配置图片 根据提示输入对应目录下的信息,依次操作;如果不是这个界面,请重新操作;经测试:如果多次卸载和操作/Library/LaunchDaemons/org.jenkins-ci.plist ,目录已经损坏的情况下,请先卸载Jenkins,再下载新的安装包,重新设置; 卸载方法1234卸载Jenkins的步骤是这样的:首先:找到目录 /Library/Application Support/Jenkins/Uninstall.command,双击输入密码然后:在 /用户/你电脑的用户名/.jenkins ,把这个‘.jenkins’删掉最后:清空废纸篓 配置用户和项目如果出现了上面的个人配置图片显示的页面(/Users/自己电脑的账户名字/Jenkins/Home),仔细看看是不是自己的电脑用户,是的话就是正常的,然后依次操作 最后保存; 开始点击立即构建; 构建项目 这个时候在‘ /用户/你电脑的用户名/.jenkins ’最下面会有一个名字为‘workspace’的文件夹,里面是存放项目的,把脚本放在‘ /用户/你电脑的用户名/.jenkins/workspace/项目文件/ ’里面,这个时候再次构建; 把项目需要的安装证书等等都双击到你电脑里面,能让Jenkins找到; 到这里整个操作步骤已经弄好了,这些不难,就是要注意细节,重要的是你要会写脚本; 总结: 1.先配置Java环境,再安装Jenkins; 2.注意要使用JavaSE JDK8; 3.安装好Jenkins之后,记得先修改/Library/LaunchDaemons/org.jenkins-ci.plist 4.按步骤操作完之后,就是配置应用和脚本了;]]></content>
</entry>
<entry>
<title><![CDATA[cocopod 私有库]]></title>
<url>%2F2018%2F01%2F31%2Fcocopod-%E7%A7%81%E6%9C%89%E5%BA%93%2F</url>
<content type="text"><![CDATA[pod 私有库这些是按照cocopod公共库的思路来设置的,包括两部分:索引和库; 其实这个很久之前就做了,就是没有总结,网上也有很多资料,这次自己也总结一下,以备查找,直接上干货: 私有库 先创建一个文件夹 , 运行命令行: 1pod lib create (这里是自定义的私有库名字) 依次进行设置,注意一点:库名字和最后设置的podspec文件名字要一致; 进行功能开发,开发完成之后,项目也能正常运行,这个时候,把pod功能代码放在 ‘myPod/Classes/ ’目录下面,修改myPod.podspec 文件; 12345设置好要存放私有库的云平台链接库,例如:s.homepage = 'https://git.coding.net/codeSM/podme' ; s.source = { :git => 'https://git.coding.net/codeSM/podme.git', :tag => s.version.to_s },以及‘s.source_files = 'myPod/Classes/**/*{.h,.m}’ 记得加上‘.h,.m’,要不然这里识别不到 设置好了私有库之后,再创建一个新文件夹A(或者就在工程文件下也可以,只传对应的文件,根据自己喜好而定;这里是创建个新的文件夹),和云平台的私有库进行关联,然后把 myPod库和.podspec文件放进去,上传到云平台的私有库(可以命令行GitPro,也可以客户端提交); 然后在文件夹A中,进行打tag, tag号自己根据需要进行设置;运行命令行: 12git tag -a 0.1.0 -m ‘version 0.1.0’ git push origin --tags 打完tag进行对pod校验命令行: 12pod lib lint pod lib lint --allow-warnings(如果没有明显的错误设置的提示,则运行下面的代码) 这个时候pod算是弄好了,下一步就是设置 pod私有索引了; 索引 设置私有索引,并且与私有云索引库关联运行命令行: 1pod repo add [自己定义简称 私有云库链接地址] 私有索引库定义好了之后,要把定义好的私有库的.podspec 文件上传到私有云库(这一步要在pod私有库的本地文件夹执行,这样能使用对应的tag,传到索引的也是对应的tag)运行命令行: 1pod repo push 自己定义的私有库简称 myPod.podspec (如果没有明显的配置错误,可以在后面加上 ‘ --allow-warnings ’ ) 这个时候私有库和索引都设置好了,可以使用了,在项目的podfile文件中 使用这个库的时候,要设置一下索引的地址,方便pod查找(source ‘私有索引地址’),使用的pod版本也要注明清楚,如果tag和版本是不关联的,也要注明tag号. 总结 :1234pod 私有库这些是按照cocopod公共库的思路来设置的,包括两部分:索引和库;索引:创建私有云链接,只存放 .podspec 文件库:存放 私有库和 .podspec文件,在podfile里面的引用是先从索引源里面找这个库的.podspec文件,找到后根据里面的配置地址找库,找到后进行下载; 注意一点 :1配置的时候,有不懂的命令行可以自行百度]]></content>
<categories>
<category>iOS技术</category>
</categories>
<tags>
<tag>技术文章</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Ios11适配的一些注意事项]]></title>
<url>%2F2017%2F10%2F18%2FIos11%E9%80%82%E9%85%8D%E7%9A%84%E4%B8%80%E4%BA%9B%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9%2F</url>
<content type="text"><![CDATA[ IOS11发布很久了,最近项目要适配新系统和新设备,主要是在IPhoneX中的适配,适配的过程中也是搜了很多资料,但是网上的信息很零碎,要亲自实践才能找出问题究竟出在哪里;至于说刘海怎么适配就不介绍了,网上一搜一大把的方案,这里记录tableview的适配,以备参考: * UITableView:默认开启Self-Sizing, Headers, footers, and cells都默认开启Self-Sizing,所有estimated 高度默认值从iOS11之前的 0 变成了UITableViewAutomaticDimension1@property (nonatomic) CGFloat estimatedRowHeight NS_AVAILABLE_IOS(7_0); // default is UITableViewAutomaticDimension, set to 0 to disable 如果在IOS11不手动设置为0,tableview的contentSize和contentOffset会发生错误,UI会频繁出现问题,请注意如果在iOS11下不想使用Self-Sizing的话,请把这三个属性置为默认值0。123self.tableView.estimatedRowHeight = 0;self.tableView.estimatedSectionHeaderHeight = 0;self.tableView.estimatedSectionFooterHeight = 0;]]></content>
</entry>
<entry>
<title><![CDATA[iOS Crash Log 解析]]></title>
<url>%2F2016%2F09%2F18%2FiOS-Crash-Log-%E8%A7%A3%E6%9E%90%2F</url>
<content type="text"><![CDATA[ 写程序难免出现Crash,如何应对Crash,相信每个程序员都有自己的一套方案,如何查找,如何定位,如何解决…… 对于iOS开发来讲,我们也有一套解决Crash的逻辑,请往下看:获取crash log的方法有三种: 用户把设备连接到电脑上,打开xcode-window-organizer,,选中Devices-当前连接设备-Device Log,就可以查看所有当前设备的crash log,这个时候打开每一份crash的时候,发现这些文件的部分地址都会被转换成,类名,方法名和行号等。设备上的日志只用刚刚查看过都会被同步到organizer种,在LIBRARY下的Device Log可以查看; 如果应用已经上线,开发者可以通过iTunes Connect(Manage Your Applications - View Details - Crash Reports)获取用户的crash日志。不过这并不是100%有效的,而且大多数开发者并不依赖于此,因为这需要用户设备同意上传相关信息,详情可参见iOS: Providing Apple with diagnostics and usage information摘要; 上线的应用,还可以自己捕获crash信息;把捕获到的日志信息,用邮件或者其他方式发送到你方便操作的指定的地方,查看并解析,最后定位到根源,并解决问题; 有部分log能够直接显示奔溃信息,如果能定位到问题就能直接解决;一般的log都是十六进制的地址,很难读懂,需要做进一步的解析; 方法1 使用XCode 首先需要找到上传应用的.app和.dSYM文件,切记每次发送新版本都要保留这两个文件,不然没有办法解析Crash Log的;可以先把这两个文件拷贝到桌面的某一个文件夹中,然后把.crash的文件也拷贝的同一个文件夹下,具体操作如下:12345打开Xcode的Window菜单下的organizer,然后点击Devices tab,然后选中左边的Device Logs;然后把.crash文件拖到Device Logs或者选择下面的import导入.crash文件。这样你就可以看到crash的详细log了。 方法2 使用命令行工具symbolicatecrash有时候Xcode不能够很好的符号化crash文件。我们这里介绍如何通过symbolicatecrash来手动符号化crash log。在处理之前,请依然将“.app“, “.dSYM”和 “.crash”文件放到同一个目录下。现在打开终端(Terminal)然后输入如下的命令:1export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer 然后输入命令:1/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash appName.crash appName.app > appName.log 现在,符号化的crash log就保存在appName.log中了。 方法3 使用命令行工具atos 如果你有多个“.ipa”文件,多个”.dSYM”文件,你并不太确定到底“dSYM”文件对应哪个”.ipa”文件,那么,这个方法就非常适合你。 每一个可执行程序都有一个build UUID来唯一标识。Crash日志包含发生crash的这个应用(app)的 build UUID以及crash发生的时候,应用加载的所有库文件的[build UUID]。 1.查看 xx.app 文件的 UUID,terminal 中输入命令 :1dwarfdump --uuid xx.app/xx (xx代表你的项目名) 2.查看 xx.app.dSYM 文件的 UUID ,在 terminal 中输入命令:1dwarfdump --uuid xx.app.dSYM 3.crash 文件内第一行 Incident Identifier 就是该 crash 文件的 UUID。 用atos命令来符号化某个特定模块加载地址命令是:1atos [-o AppName.app/AppName] [-l loadAddress] [-arch architecture] (下面3行选任意一行执行都可以达到目的,【其中0x1234是模块的加载地址,也就是奔溃所出现的类名或方法名】)123xcrun atos -o appName.app.dSYM/Contents/Resources/DWARF/appName -l 0x1234 -arch armv7xcrun atos -o appName.app.dSYM/Contents/Resources/DWARF/appName -arch armv7xcrun atos -o appName.app/appName -arch armv7 这样就找到了应用种到底是哪个模块导致的crash问题. 总结 获取crashLog的方法有三种:用户把设备连接到电脑上,用Xcode导出;如果应用已经上线,用iTunes Connect获取用户设备上传的奔溃日志;还可以在应用中植入捕获日志的代码,上传到自己方便查看的地方,进行解析; 解析log,少不了 xx.app、 xx.app.dSYM 和.crash文件,三者放在一个文件夹下,使用工具进行解析,比对出出现问题的类或者方法,进而帮助解决问题。]]></content>
<categories>
<category>iOS技术</category>
</categories>
<tags>
<tag>技术文章</tag>
</tags>
</entry>
<entry>
<title><![CDATA[搭建自己的博客总结]]></title>
<url>%2F2014%2F11%2F14%2F%E6%90%AD%E5%BB%BA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2%E6%80%BB%E7%BB%93%2F</url>
<content type="text"><![CDATA[ 写日记是上学的时候老师交给我们的,每天总结下日常经验,问题,或者重要的事情等等,留作备份,方便以后查看和归纳;写博客是自互联网时代的到来,衍生出来的一个产物,记得最初注册邮件可以免费开通博客,现在也有不同的平台或社区提供注册使用博客,很方便,到现在博客不仅仅是自己看,技术博客还能帮助别人解决遇到的类似问题,从助人为乐的角度看,功德无量。 这篇从hexo和github配合搭建免费的博客,个人自由管理,界面简洁,之前写了些博客没有坚持,这次整理出来这个步骤,方便自己和看到这篇文章的人快速搭建环境,下面是具体的操作 如果是新电脑,没有安装过node,和Git的需要安装下,我是使用homebrew安装的; homebrew安装指南,打开https://brew.sh/,复制网页中的命令,在终端执行,比如:12/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"brew install node node安装后,会附带npm工具,npm即node package manager,用来搜索、下载、管理node.js相关的套件。1npm install hexo-cli -g 下一步可以在桌面上创建一个文件夹,主要放博客内容,假设命名为‘blog’123cd bloghexo initnpm install hexo的环境已经下载好了,如果想用hexo不同主题请参考 https://hexo.io/themes/ ,点进去按照步骤操作,就ok了,这里主要讲讲Next主题的具体配置,终端执行下面命令,把next下载到本地1git clone https://github.com/iissnan/hexo-theme-next themes/next 然后是Git的操作,如果没有github的账号请注册个账号,然后再创建个仓库,名字要和注册账号的名字一致,比如名字为‘xiaoming’,仓库的名字应为‘xiaoming.github.io’,这是仓库的创建; 硬件准备好了,这个之后需要配置了,主要有三个方面:提交的ssh配置;博客的_config.yml配置;主题的_config.yml配置。 提交的ssh配置: 1.在终端命令行输入下面命令12cd ~/.sshls 这两个命令就是检查是否已经存在 id_rsa.pub 或 id_dsa.pub 文件,如果文件已经存在,那么你可以跳过步骤2,直接进入步骤3。2.创建一个 SSH key1ssh-keygen -t rsa -C "[email protected]" 一路enter,创建ssh key成功3.添加到github的ssh里面,把第一步目录下的id_rsa.pub文件打开,复制里面的所有内容,粘贴到github的ssh里面,title自定义,保存就行了测试一下这个ssh key1ssh -T [email protected] 当你输入以上代码时,会有一段警告代码,如:123The authenticity of host 'github.com (207.97.227.239)' can't be established.RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.Are you sure you want to continue connecting (yes/no)? 这是正常的,你输入 yes 回车既可。如果你创建 SSH key 的时候设置了密码,接下来就会提示你输入密码,如 注意:输入密码时如果输错一个字就会不正确,使用删除键是无法更正的。密码正确后你会看到下面这段话,如:12Hi username! You've successfully authenticated, but GitHub does notprovide shell access. 博客的_config.yml配置,打开博客的blog目录下的_config.yml文件,查找这些个设置下 123456789theme: nextscheme: Pisceslanguage: zh-Hansdeploy:type: githubrepository: [email protected]:zhchnchn/zhchnchn.github.io.git/// 仓库的链接直接复制 验证主题12hexo ghexo s 在网页输入http://localhost:4000/;查看效果,当书写完博客之后,不着急发布,先按照这个步骤看看效果,有问题即时修改 主题的_config.yml配置,这个是在next文件夹下面的_config.yml 关于两个_config.yml的配置不详细说了,按照这篇博文操作,快速高效–http://www.cnblogs.com/sqlsec/p/hexo.html,这位博主的配置很详细,请注意空格问题,不要多敲,也不要少敲 下面还有一些使用过程中遇到的问题,请参考:https://github.com/iissnan/hexo-theme-next/wiki/%E5%88%9B%E5%BB%BA-%22%E5%85%B3%E4%BA%8E%E6%88%91%22-%E9%A1%B5%E9%9D%A2,这里面有详细的配置博文结构的方法;终端输入以下的命令,安装必要的插件12345npm install hexo-generator-feed --savenpm install hexo-deployer-git --savenpm install hexo-generator-searchdb --savenpm install hexo-generator-seo-friendly-sitemap --savenpm install hexo-generator-baidu-sitemap --save 过程步骤比较多,请耐心配置,等到所有都弄好了,输入自己的博客链接,一敲回车,出现久违的画面,内心也满满的幸福!]]></content>
<categories>
<category>总结</category>
</categories>
<tags>
<tag>经验</tag>
</tags>
</entry>
</search>