移动开发技术

Jason's Blog

在新电脑上恢复Octopress

换了新电脑,如何在新电脑上继续使用OctoPress呢,只需要执行以下命令

1.首先将博客的源文件clone到本地的octopress文件夹内

1
$ git clone -b source https://github.com/username/username.github.io.git octopress  

2.将博客文件clone到octopress的_deploy文件夹内

1
2
$ cd octopress  
$ git clone https://github.com/username/username.github.io.git _deploy   

username为github用户名

iOS开发中支持实时UI调试的方法

背景

平时在开发iOS界面的过程中,如果修改了布局代码,需要重新启动模拟器,进行效果查看。如果工程较大,启动将耗时比较长,比较浪费时间。这里介绍一个工具InjectionIII,使用后可以不重启应用,保存文件后直接查看修改效果,极大提升界面开发工作的效率。

使用方法

1.在App Store下载InjectionIII

2.在应用启动函数 加入以下代码

1
2
3
4
#if DEBUG
    NSBundle *bundle = [NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection10.bundle"];
    [bundle load];
#endif

3.启动InjectionIII,重启XCode,然后用模拟器启动应用。状态栏上有InjectionIII的小图标,确认File Watcher选项已经勾选。这时候修改文件,只要保存,在模拟器界面上会立即更新效果

PS: 这个工具的缺点是只支持模拟器,原因参见原理部分。

原理

Injection:iOS热重载背后的黑魔法

用Weex实现三端开发架构和思路

基于目前项目的已有架构,若要实现Weex三端开发,设计的架构如下图:

1.iOS和Android客户端维持tcp+pb方式不变

2.新增http proxy模块,提供http接口给Weex h5访问

职责是将已有的tcp+pb方式访问的服务转换成http+json形式,提供给Weex h5调用。目前http proxy用java实现,与Android客户端网络层复用代码。

3.改造svr接入层,验证Weex h5登录态,进行openid转换

以微信登录为例,之前iOS和Android用的是App授权登录,由于Weex h5是微信公众号授权登录,两者appid不同,授权得到的openid和accesstoken都不一样,需要支持对公众号进行登录校验。校验完登录态后,将公众号openid转换为App openid,再与svr逻辑层进行通信。

Weex与原生页面间的相互跳转

我们在现有应用中集成Weex,难免会遇到Weex页面与原生页面相互跳转的问题。通常的一种场景是,某一个中间的原生页面我们用Weex来替换,这样就存在原生页面跳转到Weex页面,再由Weex页面跳转到原生页面的场景。这篇文章讲述如何实现这种场景。

利用Weex DevTool调试Native应用-iOS篇

官方的文档里说提供了一个工具DevTool,用来调试原生应用,但是写得比较简略,一直跑不起来,经过几天折腾和查资料,基本上是可以调试了,记录一下步骤和问题。

如何查看p12文件的信息

1
openssl pkcs12 -in xxx.p12 -out xxx.pem -nodes

pem文件可以直接用文本工具打开

升级到macOS High Sierra Pod不能执行的解决办法

macOS 升级到 High Sierra 后,执行pod命令出错,出错信息如下:

1
2
JUNSHAO-MC0:~ junshao$ pod
-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory

解决办法是重装cocoapods

1
2
sudo gem uninstall cocoapods
sudo gem install -n /usr/local/bin cocoapods