0%

忙了大概 2 个月了,基本 9116 的节奏,现在临近封板了,赶紧把最近使用的一些小技巧总结下。

监听 ESC 键按下

1
2
3
4
5
6
7
8
9
10
#import <Carbon/Carbon.h>

id eventMonitor = [NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask handler:^NSEvent * _Nullable(NSEvent * _Nonnull theEvent) {
if ([theEvent keyCode] == kVK_Escape){
NSLog("ESC key down");
}
return theEvent;
}];
///dealloc 里记得移除
[NSEvent removeMonitor:eventMonitor];

商店屏幕快照和预览图尺寸

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
https://help.apple.com/app-store-connect/#/devd274dd925
https://help.apple.com/app-store-connect/#/dev4e413fcb8

屏幕快照要求:

最多 10 张屏幕快照,下列分辨率哪个都行

1280 x 800 像素

1440 x 900 像素

2560 x 1600 像素

2880 x 1800 像素

预览要求
最多 3 张 App 预览图,尺寸为 1920 x 1080 像素(16:9 宽高比)
阅读全文 »

负责的项目要大改版,字体使用平方字体。因此调研了系统支持的字体。

系统默认字体

使用系统默认字体,这个是我们开发时最常用的了,现在打出来字体的 Family 和 FontName 看下吧:

NSLog(@"%@:%@",[NSFont systemFontOfSize:14].familyName,[NSFont systemFontOfSize:14].fontName);

1
.AppleSystemUIFont:.AppleSystemUIFont
阅读全文 »

解决集成 FFmpeg 时编译报错问题

由于 FFmpeg 依赖了很多个系统框架,所以在集成过程中很可能会遇到以下问题,只需要加上缺少的库就行了。下面列举的是集成 FFmpeg 3.1.11 版本时可能遇到的。

1、缺少 Security.framework

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Undefined symbols for architecture x86_64:
"_SSLClose", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
_tls_close in libavformat.a(tls_securetransport.o)
"_SSLCopyPeerTrust", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLCreateContext", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLHandshake", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLRead", referenced from:
_tls_read in libavformat.a(tls_securetransport.o)
"_SSLSetCertificate", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLSetConnection", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLSetIOFuncs", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLSetPeerDomainName", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLSetSessionOption", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SSLWrite", referenced from:
_tls_write in libavformat.a(tls_securetransport.o)
"_SecIdentityCreate", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SecItemImport", referenced from:
_import_pem in libavformat.a(tls_securetransport.o)
"_SecTrustEvaluate", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
"_SecTrustSetAnchorCertificates", referenced from:
_tls_open in libavformat.a(tls_securetransport.o)
ld: symbol(s) not found for architecture x86_64
阅读全文 »

2018 年回顾

工作

今天是 2018 年的最后一个班了,原本计划 mac 影音 2.16 版发布的,因为公司有规定,所以只能先封板,下周再上线。

哦,是的,我现在是一名 macOS 开发者了,今年 11 月初公司人员优化后转行过来的,边开发边学习到现在基本算是 2 个月了。经过实战,我对于 macOS 开发有了一定的了解,不过还没有 iOS 开发那么熟练,毕竟桌面应用开发跟移动端是有些区别的。

再往前说的话,我学习了两个前端框架:Angular 和 React,分别写了两个小应用,部署在公司内网,部署时简单学习了 Nginx 配置。

然后就是在做小游戏开发了,去年年底一直做到今年 10 月份左右,很遗憾没有像样的产品拿出来,对于公司而言,又投入没回报;对于本人而言,无非是对微信小游戏开发 API 有些了解,cocos2d 小游戏引擎的简单使用,还有 JavaScript 语言的深入学习,以及前端开发环境搭建,前端代码调试等方面的学习罢了。

除此之外,还创建了技术 WIKI 站点,方便使用 Markdown 编写 WIKI。还有很多个Jenkins项目,实现了自动化打包发布,节省了很多时间,避免了很多人为错误。

阅读全文 »

我在编写 RxJS 入门教程的时候,折腾了大半上午都没能跑出一个 demo 来,让我感到沮丧,我知道使用 node.js 分分钟就能出现效果,可我就是想用 node 的 npm 去管理项目依赖,然后在浏览器里执行,因为我感觉使用这种方式才是做前端项目管理依赖的正确方式,而不是拿来源码,拖到 H5 工程里!我坚信我是对的,因为使用 Creator 编写小游戏时就能这么用,它是如何做到的呢?又经过一个下午的折腾,终于搞明白了全部流程,并对 JavaScript 模块化编程有的新的认识。

本文是一篇基础教程,前端大神可直接忽略;旨在学习:

  1. 浏览器如何加载 ES6 模块(Module)?
  2. 最新语法如何兼容老版本引擎(浏览器,Node…)?
  3. Node.js 如何支持 ES6 模块(Module)?
  4. 浏览器如何加载 CommonJS 模块?
  5. 代码修改后如何自动编译并刷新浏览器预览?

本文不会讲以下概念,但可以通过准备好的连接去补习:

阅读全文 »