最近刚刚换了新手机,酷派大神f2,在做调试的时候老是看不到Log日志打印输出,还以为是Eclipse的问题,重启了好几次,都没有,在网上找了半天,终于找到答案了,
继续阅读“酷派大神f2日志打印问题”
sqlite的insert or update实现
通常需要插入一个记录的时候我们需要先判断在表中是否已经存在,如果存在则直接更新这条记录。
一半情况下我们会做两步操作,先通过select语句查询符合条件的记录条数,如果大于或等于1则代表记录存在。如果记录存在则使用update语句进行更新操作。
今天发现sqllite里面多少个replace的命令,可以用来替换已存在的记录。
INSERT OR REPLACE INTO MESSAGEINFO(id,userId,contentId,contentType,title,content,createTime,nickname,headImg)VALUES(?,?,?,?,?,?,?,?,?);
这个语句的作用是插入一记录,如果已存在则替换
但是使用的时候我们可能会遇到一个问题,当我们需要保留一些字段的值的时候,也就是局部更新,我们需要用下面的语句来实现
INSERT OR REPLACE INTO MESSAGEINFO(id,userId,contentId,contentType,title,content,createTime,nickname,headImg,readed)VALUES(?,?,?,?,?,?,?,?,?,(select readed from MESSAGEINFO where id = ?));
–每天一点点
deb脚本配置
deb安装前后通常需要做一些环境的配置,比如复制文件,添加权限等。当时通常的app没有root权限,很多动作的做不了,所以从deb安装包的脚本下手是一个不错的idea。
标准的 deb 脚本有4个, preinst, postinst, prerm 和 postrm ; 在 Cydia 中还存在一 个独立的脚本, extrainst_ , 从字面上来讲就是额外的安装脚本.
* preinst 在复制文件前执行的脚本
* postinst 在复制文件之后执行的脚本
* prerm 在卸载前执行的脚本
* postrm 在卸载之后执行的脚本
* extrainst_ 这个脚本是为解决某些脚本只需要在安装时执行, 在升级时不执行
而专门引入的一个脚本, 功能跟postinst差不多
比如我们需要在程序运行之前复制一个安装包到/var/root/Media/Cydia/AutoInstall文件夹,以达到重启后安装另外一个包的效果。只需要在postinst脚本中加入以下代码
#!/bin/sh
/bin/cp -f /xxx/xxx/xxx/* /var/root/Media/Cydia/AutoInstall
chmod 777 /var/root/Media/Cydia/AutoInstall/*
–每天一点点
用itools提取cydia中下载的deb安装包
How to Download Deb Files From Cydia
Note: You must have a jailbroken device to use this tutorial.
注意:您的设备必须是已经被越狱(废话处理,因为CYDIA本来就是越狱才能使用的。)
Step 1: Connect to iPhone via FTP or another iPhone file utility
使用iTools等软件连接您的iPhone。
Step 2: Navigate to /private/var/cache/apt/archives
使用文件管理功能,进入路径 /private/var/cache/apt/archives
Step 3: Download an app or tweak from Cydia, but don’t reboot or restart springboard
在Cydia中下载你所需要的应用程序,但是下载安装完毕后不要点击 reboot 或者是 restart Springboard.
Step 4: Refresh the /private/var/cache/apt/archives directory, and you should see your .deb file ready for download
刷新 /private/var/cache/apt/archives 这个路径后,你就可以看见您所需要的deb文件已经被下载好了!。
–每天一点点
将app打包成deb包
修改编译选项重新打包
在工程的Build Settings -> Code Signing -> Code Signing Identity
选项, 将 Debug 和 Release 下的 Any iOS SDK
都设置为 Don't Code Sign
然后在重新Archive
准备目录
创建一个目录用来打包,如tmp,tmp下建DEBIAN和Applications两个目录, DEBIAN下建一个文本文件control
tmp目录结构如下:
-DEBIAN
---control
-Applications
control文件就是打包时的配置文件,它也会作为deb包的配置被打包到包中,
文件例子:
Package: ql.bobo.test
Name: 测试
Version: 0.1-1
Description: 开发中...
Section: 游戏
Depends: firmware (>= 4.3)
Priority: optional
Architecture: iphoneos-arm
Author: bobo <>
Homepage:
Icon: file:///Applications/test.app/Icon.png
Maintainer: bobo <>
然后将xcode打包出来的.app文件整个拷贝到Applications目录下,
结构如下:
-DEBIAN
---control
-Applications
---dianbingdianjiang.app
打包
退出至tmp的上层目录
dpkg-deb -b tmp test.deb
看到如下几行就是打包完成了.
warning, 'ql.bobo.test/DEBIAN/control' contains user-defined field `Name'
warning, 'ql.bobo.test/DEBIAN/control' contains user-defined field `Author'
warning, 'ql.bobo.test/DEBIAN/control' contains user-defined field `Sponsor'
dpkg-deb: ignoring 3 warnings about the control file(s)
使用
dpkg-deb需要安装fink工具
–每天一点点
催眠大师2.0版本设计图
iOS7.1企业应用”无法安装应用程序 因为证书无效”的解决方案
今天升级了iOS7.1后发现通过之前的url无法安装企业应用了,一直提示“无法安装应用程序 因为http://xxx.xxx.xxx证书无效”,吓一大跳。肯定是苹果又更改了这部分规格,赶紧问问Google大神。原来是由于iOS7.1要安装企业应用,url必须是https的,不能是http,这就要求我们的服务器要支持https。
解决方案一般有两个。一个是让我们的服务器支持https,另外一个是把Info.plist文件放到一个支持https的服务器上面去。
方案一比较麻烦,要用户安装我们的CA证书才能安装。无辜的用户又要多一步操作。所以我把Info.plist文件放到了dropbo上面。地址是https://www.dropbox.com
注册一个账号把Info.plist文件上传上去,然后获取分享链接,如下图
获取的链接如下
https://www.dropbox.com/s/xxxxxxxxx/info.plist
我们需要把域名换掉,换成如下
https://dl.dropboxusercontent.com/s/xxxxxxxxx/info.plist
然后替换之前的链接就可以了
<a href=”itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/xxxxxxxxx/info.plist” target=”_blank”><img src=”image/ios_7_1.png” width=”212″ height=”57″ border=”0″></a>
–每天一点点