浮生猎趣

ls *.fun

Invalid Binary, the Binary Is Missing Architectures[arm64] - iTunes Connect的Bug

| Comments

从昨天开始,网上iOS开发者哀鸿一片,因为提交App到AppStore的时候,都遇到了这样一个错误:

「Today I cannot submit the binary to App Store, with the error “Invalid binary, the binary is missing architectures[arm64]”.」

国内开发者也遇到了同样的问题:
现在提交的新应用貌似必须支持arm64了

上传项目到APPstore,遇到的问题

公司内部这两天可能刚好不需要提交App,但是这是迟早的事,而项目中大部分引用的库都不支持arm64,未免开始紧张地修改工程编译选项,推动依赖库支持64位架构,沟通、协调、改错,乱成一团蚂蚁。

结果……苹果告诉我们,不好意思,让你们受惊了,这是我们的一个Bug!

从储蓄罐到实现财务自由

| Comments

博多·舍费尔的《小狗钱钱》和《财务自由之路》这两本理财入门书在各大社区、论坛都可以看到很多人推荐,口碑良好,最近抽时间看完,虽然有干货,能给人很大的启发,但是废话太多,读者很浪费时间。

其实两本书的内容,可以稍作总结如下:

在Godaddy上使用PHPMailer通过SMTP发送邮件的方法

| Comments

对于个人站点的“留言”、“评论”功能,除了把用户的发言保存到MySQL数据库中以外,管理员往往还希望在用户留言的同时发送一封邮件到指定邮箱,方便查看。

这个功能用PHP+MySQL实现很简单,PHP语言有一个mail()方法,只需配置好SMTP服务器、发件人的邮箱密码、收件人的邮箱,就可以自动发送邮件。

但是,mail()方法过于简洁,需要用户作很多其他配置,比如在php.ini里设置stmp服务器地址、端口等信息,同时使用也不太方便,比如没法便捷地使用抄送、添加附件等功能。

于是有了PHPMailer,简化了发送邮件的配置。

在Mac系统上简便地启用Http Server

| Comments

在本地调试Html等简单网页的时候,经常需要启动一个Web服务器,但又不想或不方便安装Apache或者IIS之类的软件,那么可以使用简单的方法:在Python或Php命令行下启用Http Server。

由于在Mac系统下,Python和Php都是默认安装好的,所以不需要额外的软件支持。具体方法如下:

将已存在的Octopress博客部署到一台新机器(OSX)

| Comments

适用情形

已经通过另一台电脑基于octopress搭建了一个博客,现在换到一台新电脑,或者想在两台电脑同时更新博客。本文针对的是Mac电脑,OSX系统。

步骤简述

与新搭建一个octopress博客的过程大同小异,都是需要安装Git、安装Ruby、安装Octopress,只是从git中clone已有数据的地方有所不同。

在C++中使用七牛C-SDK,给QINIU_ACCESS_KEY和QINIU_SECRET_KEY赋值失败的解决方法

| Comments

七牛云存储为广大开发者提供了数据云存储的免费使用空间,对于个人开发来说完全足够了。并且提供了各种语言的SDK,方便开发。

在C++工程中使用C-SDK的时候,遇到了一个问题,下面语句在运行时,提示:0x00401005 处未处理的异常: 0xC0000005: 写入位置 0x0040ab42 时发生访问冲突

1
2
3
4
5
6
7
8
9
10
11
12
extern "C"
{
#include "qiniu/conf.h"
#include "qiniu/rs.h"
#include "qiniu/io.h"
}

void Class::_initQiniu()
{
    QINIU_ACCESS_KEY = "my-akey";
    QINIU_SECRET_KEY = "my-sKey";
}

以上语句是官方文档给出的例子代码,但是我用了各种方法,都无法赋值成功,绝望……

在网上找有没有人遇到类似的问题的时候,看到了这篇问答:七牛C-SDK中,QINIU_ACCESS_KEY和QINIU_SECRET_KEY应该怎么赋值?,虽然没有给出解决方案,但是至少可以知道,七牛官方提供的C-SDK由于没有在qiniu.def的导出变量后面加上DATA关键字,导致无法在别的C++工程中直接修改变量值。
在回答中还看到,原来七牛还有一个Cpp-SDK,尝试下载,发现有28M,没有了继续使用的欲望。

那就继续折腾C-SDK吧。既然官方提供的C-SDK无法直接修改QINIU_ACCESS_KEYQINIU_SECRET_KEY,在不重现编译DLL和Lib的情况下(Windows下编译不方便,还得配置各种cURL和OpenSSL的头文件路径),解决方法如下:
不直接给那两个变量赋值,而是自己参考源码写生成uptoken的方法。

在程序运行时获取被调用的DLL的本地文件路径

| Comments

很多时候,DLL都是被别的进程所调用,所以在运行时,下面方法获取到的实际上是EXE所在的文件路径:

1
  QCoreApplication::applicationFilePath();//Qt

但是我们实际上想要获得的是DLL本身的路径,因为运行的EXE与被调用的DLL不一定在同一个目录,比如,当把abc.dll注入到notepad.exe进程,很明显abc.dll是不在notepad所在的目录的。在dll代码中调用上述语句,返回的实际上是notepad的EXE路径。

那么,我们要获得abc.dll真实路径,有两个方法。