MacOS+GitLab+Jenkins构建iOS自动化打包平台教程

一、Jenkins

Jenkins是一个Java项目,依赖于Java环境。在命令行中输入java -version,如果安装过就会出现对应的Java版本。没有则进入JavaSDK官网下载安装。

1. 安装

Jenkins安装方式有好几种,建议使用homebrew方式来进行安装Jenkins。因为用dmg方式安装的Jenkins默认会生成一个Shared的jenkins用户,且安装路径为/Users/xx/Shared。

more >>

VPS搭建个人博客/相册教程03_zing-gallery个人相册配置

zing-gallery是github上一个基于node.js开源的web相册,完美适配了移动设备。


1、clone zing-gallery到本地,修改远程仓库地址为自己的服务器上gallery仓库地址,push代码

1
2
3
4
5
6
7
1. # git clone https://github.com/litten/zing-gallery.git
2. # git remote rm origin
3. # git remote add origin git@xx.xx.xx.xx:repo/gallery.git # 修改远程仓库地址为自己服务器上创建的git仓库
4. # git remote -v # 查看远程仓库地址
5. # git add .
6. # git commit
7. # git push

more >>

VPS搭建个人博客/相册教程02_hexo静态博客配置

hexo是一个很牛皮的用于生成静态网页的博客框架,且对MarkDown语法支持的很好。比较酷的是,它还有很多主题和插件支持,目前使用最多最受程序员欢迎的一个静态博客框架。


本机环境:macOS10.12 、node:v9.2.0、npm: 5.5.1

1、本地部署

1.1 安装全局的hexo命令行工具

1
npm install hexo-cli -g # -g表示全局安装

more >>

VPS科学上网教程:SS搭建+bbr加速

一、SS安装

1. root用户ssh登录vps

2. 安装Shadowsocks一键安装脚本(四合一)

1
wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh && chmod +x shadowsocks-all.sh && ./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log

3.安装完成

四个版本可选,我就直接安装python版本的。提示输入密码,端口,加密方式等。

more >>

AtomSDK分享(安全模式及crash保护)

Atom.jpg

前言:
APP的Crash率一直是评估app稳定性的一个重要指标,也是程序员的噩梦。每次提测之前跑完用例,都是信誓旦旦的”放心,代码不可能存在bug。”。在iOS还存在热补丁的时候,大部分iOS程序狗都有过半夜写着JSPatch代码的体验,那个时候确实可以做到不存在bug。然而热补丁被苹果大大封杀了,我们就开始焦虑了。KPI怎么搞?问题来了,如果App出现不可挽救的闪退怎么办?比如启动就崩溃,随便点点就闪退。怎么办?怎么办?怎么办?

more >>

日常开发02:砸壳+Hook

项目中或多或少都需要接入一些三方sdk,那种静态库。然而产品就经常会提出那种无理的需求,让我们去改sdk的东西。要知道去改一个不知道源码的东西,还要在不影响原有功能的情况下去插入自己的逻辑在里面。是件很危险的事情。所以…

ed372f2eb9389b50f7c73c348c35e5dde6116e87.gif

more >>

React Native 03:换肤支持

因为原生这边有个换肤功能,用户下载对应的皮肤包,用户切换皮肤之后,会触发一个全局的通知,需要支持换肤的UI视图对象会注册通知这个通知监听,然后重新渲染。某一天产品跑过来说,RN的页面也要支持换肤哦。呵呵。。。

思路

1.先看看原生那边换肤是怎么玩的。

  • 点开app下载一个皮肤包。会从服务器请求一个zip压缩包。

  • 解压缩打开,一份色值表配置json文件,若干替换图片。
    看代码。大致实现是换肤库提供了很多的UIKit组件的分类,提供了相关设置色值,图片的方法。并且会去注册监听换

    肤通知。一般我们写业务代码的时候,都会使用那些分类所提供的支持换肤的方法。并且部分页面需要主动监听换肤通知的从而实现主动渲染。当触发换肤的时候,页面重新渲染,就会从对应的皮肤包里获取对应的图片,以及色值。从而实现的换肤。

    more >>

React Native 02:原生容器类封装

RN中的JS部分的页面组件最终是在原生这边生成一个RCTRootView类的实例,且RN是在view层做的页面生命周期管理。好像不适合以单页面的形式接入到项目中,所以RN能不能像WebView那样的方式来使用?组件渲染有delegate回调给native?并且可以通过url来请求对应RN页面资源文件并且加载RN页面?能不能提供自动重新渲染页面的方法给原生调用?….

思路

1.继承RCTRootView

2.数据通信

1.容器–>RN(RN页面要用的参数:如请求参数,埋点,自定义等等)

more >>

React Native 01:学习笔记

React Native是Facebook弄出来的一款用来开发真正原生、可渲染iOS和 Android移动应用的JavaScrit框架。它其实就是基于Javascript和React的基础上来开发原生应用。并且一份代码可以同时支持iOS和Android,也就是能够做到真正意义上的跨平台。React Native和React的区别在于,React是将浏览器作为渲染平台的,RN则是将移动设备作为渲染平台。代码上的体现就是用web思想去写原生的代码。所以ReactNative具有Native的一个最大的优势,它可以做到热更新,也就是不需要发包就可以改点东西

IDE

Nuclide:Nuclide 是 Facebook 推出的一套基于 Atom 的开发工具集。提供自动完成和JavaScript类型检查,内建React开发支持,并支持 Facebook 最新的 React Native 库,支持 Facebook 的 Flow JavaScript 类型检查器。
PS:推荐使用Atom配合Nuclide来搞RN开发。反正是好用。

more >>

Rui,<br>.....。