如何在 mac 下制作 dmg 文件以进行分发的教程

在mac系统下,AppStore之外的程序在分发时,通常采用的有两种打包分发方式,一种是pkg安装包,另外一种是dmg磁盘映像,本文就接着上篇《Xcode 6下使用 Developer ID 对 mac 程序进行签名》介绍如何将开发好的程序打包成dmg映像。

本篇的最终目标:诸如我们通常都用的QQ,在mac QQ官网下载并打开dmg之后,会有一个很友好的安装提示,没错,本篇就是要教大家制作一个一样效果的。

Mac qq dmg

下面的教程中,我们以制作我们千寻影视mac版本的安装包为例

第一步:在应用程序->实用工具下打开磁盘工具

open disk utility mac

第二步:新建一个磁盘映像,放在桌面上(可随意),名称设置为temp.dmg[......]

继续阅读

Posted in mac开发 | Tagged | Leave a comment

Xcode 6下使用 Developer ID 对 mac 程序进行签名

(How to use Developer ID code sign for mac OSX apps)

mac app 程序在发布时,存在三种发布方式:

  1. 发布到mac AppStore,由苹果在2010年10月20宣布在OSX 10.6.6中发布
  2. 使用Developer ID进行签名然后自行提供给用户下载
  3. 不做签名

对应到系统的安全设定的三个级别:

osx-security-privacy

发布到AppStore上的应用,所有用户在AppStore上下载了之后就可以使用;使用Developer ID签名的应用,只能在打开了第二级安全限定了之后才可以使用;不做签名的应用,需要安全设定中选择了Anywhere才可以使用。

所以,当[......]

继续阅读

Posted in mac开发 | Tagged | Leave a comment

初始化 centos 服务器并配置 puppet

Agent 服务器

第一步:安装puppet

# 检查服务器版本 cat /etc/*-release

CentOS 5:

sudo rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-5.noarch.rpm
sudo yum makecache
sudo yum install -y puppet
sudo puppet resource package puppet ensure=latest

CentOS 6:

sudo rpm -ivh http://yum.puppetlabs.com/puppetlabs-releas[......]

继续阅读

Posted in 杂七杂八 | Leave a comment

ios下获取设备的IP地址

要获取设备的IP地址,网上随便一搜就能找到一大堆结果,但是这些能找到的代码基本上都是用C写的,并没有针对iOS做过优化调整,使用起来也不方便。就只是要获取IP地址而已,封装成一个函数调用一下然后使用起来才方便。代码比较简单,就是把网上抄来的代码做了整理和iOS适配。函数返回一个包含了所有网卡的IP地址的一个数组。

- (NSArray *)getIpAddresses {
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd < 0) return nil;
NSMutableArray *ips = [NSMutab[......]

继续阅读

Posted in iOS | Leave a comment

修复iOS7下leftBarButtonItem位置相比之前版本靠右的问题

Xcode升级到5.0版本之后,在iOS7下,通过 leftBarButtonItem 设定的左导航栏按钮会出现明显的靠右偏移的情况,就像下面图片这样:

Ios7 leftbar button item

这样的效果看起来是比较别扭的,为了让iOS7下面看起来跟以前一样,就需要针对iOS7特别处理一下了:

UIButton * backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(0, 0, 60, 44);
[backButton setImage:[UIImage imageNamed:@"b[......]

继续阅读

Posted in iOS | Tagged | Leave a comment

execute raw insert or update query and get affected row count in sequelize

Sequelize is a ORM framework for nodejs. It makes that it’s very easy to work with database in nodejs. Though it provide methods to do raw query, the raw query callback doesn’t give the useful information just like affected rows and insert id when wo do a insert or update query. But the mysql driver[......]

继续阅读

Posted in nodejs | Tagged , | Leave a comment

use jquery date picker in yii without CForm system

We know that yii framework is built with jquery ui and we can use the CJuiDatePicker class to output a date picker component. But CJuiDatePicker needs a CFormModel or CActiveRecord, and sometimes, we have to build a form without CFormModel system. In this post, I will introduce how to build a date p[......]

继续阅读

Posted in PHP | Tagged , | Leave a comment

mac osx下制作包含有16*16以及32*32两种大小的favicon.ico图标

一般来说,一个网站都会要制作一个小图标,用来在浏览器上的小角落上进行展示,像这样:

how to create Favicon

虽然上目前有一些网站提供了png转ico的服务,还有好几个大小可供选择,但是转出来的文件都是只能包含一个大小,不能既包含16*16又包含32*32大小的ico文件。

找了一些时间,发现了有一个小命令行软件可以提供这个功能,png2ico

这个网站上直接已经提供了windows下使用的exe文件,但是对于我们这些mac用户来说,只好下载代码自己编译了

wget http://www.winterdrache.de/freeware/png2ico/data/png2ico-src-2002-12-08.tar.[......]

继续阅读

Posted in PHP, 杂七杂八 | Tagged | Leave a comment

给微信iOS版SDK合并成一个真正全兼容的静态 .a 文件

微信的iOS版SDK下载下来之后,我们可以看到有四个文件,两个头文件和两个 .a 静态库文件。也不知道微信为什么要提供两个而不是把他们合并成一个,不过既然他这么提供的,那为了在使用时候更方便,我们就给这两个文件做了一下合并。

首先,我们可以用file命令看到,其中 libWeChatSDK.a 包含了 armv6, armv7, i386 三种架构,而 libWeChatSDK_armv7_armv7s.a 则包含了 armv7, armv7s, i386 这三种架构。其中,armv7 和 i386是两个 .a 文件都有的,我们在合并成一个 .a 文件的时候,可以把前面的 armv6 架构提取[......]

继续阅读

Posted in iOS | Tagged | Leave a comment

xcode4.5下编译出包含armv6架构的静态库

升级到Xcode4.5之后,新增了iPhone5的armv7s支持,但是去除了armv6的支持,也就是说用XCode4.5无论如何配置项目都是无法编译出能在iPhone3G、iTouch2上面运行的程序或者库文件的,虽然说千寻影视已经不在打算支持这些古老的机型,而TCClick作为一个开源项目,还是需要提供支持的,下面就对TCClick项目中编译打包时所使用的方法进行介绍。

在TCClick项目代码根目录下,有一个名为lipo的脚本文件,该脚本文件就是用来执行编译打包的,执行这个脚本之后就可以在release目录下生成包含了armv6, armv7, armv7s以及i386四种CPU架构的库[......]

继续阅读

Posted in iOS | Tagged | 5 Comments