• 2015-03-08

    iOS界面响应式布局方式对比

    Views: 16193 | 2 Comments

    iPhone 手机的成功, iOS 操作系统功不可没. 而 iOS 操作系统的成功, 与早期 iPhone 单一的屏幕分辨率也有极大的关系. 不客气地说, 正因为早期 iPhone 手机只有一个分辨率, iOS 操作系统和其上面的 App 才不需要关心所谓的"响应式布局", "流式布局", "自动布局"这些技术, 它们只使用绝对定位的布局 - 每一个控件的大小和位置都是定死的, 几乎不变. 这样, iOS 应用开发者把精力放在了界面外观和交互体验, 最终促成了 iPhone/iOS 的成功.

    不过, 从 iPad 的出现, 到 iPhone 5 发布, 以及后面的 iPhone 6/6+, iPhone/iOS 手机的屏幕分辨率开始多样化了, 这时, 界面布局便不能死守着绝对定位布局了.

    为了解决这个问题, 苹果的方案是"Auto Resizing"和"Auto Layout", 特别是后者, 解决了界面动态布局的问题.

    Continue reading »

    Posted by ideawu at 2015-03-08 15:36:31 Tags: ,
  • 2015-03-06

    清除Xcode静态链接库中的路径信息

    Views: 14577 | 1 Comment

    默认用 Xcode 生成的静态链接库(.a)文件中, 会带有路径信息, 如 /Users/youname/path 等等, 事实上, 这些其实是调试信息. 但是, 这些信息暴露了你的系统信息, 包括你的用户名, 你的文件目录结构, 等等.

    如果你想清除这些信息, 可以这样做:

    [ref]
    In LLVM code generation, set Generate debug symbols to No and Symbols hidden by default to Yes. For some reason, even if you tell it to strip symbols, it's not going to do it unless these are set.

    Posted by ideawu at 2015-03-06 11:59:54 Tags: ,
  • 2015-02-03

    iOS 使用 RSA 加密, 只需要公钥

    Views: 19176 | No Comments

    在 iOS 上, 加密被和安全性进行了强绑定, 所以, 你不能只做加密(至少公开文档不告诉你如何只做加密). 但事实上, 很多时候我们加密, 并不是要求 100% 的安全, 只是希望能得到加密本身所带来的安全, 既不考虑数据重放, 也不考虑第三者攻击, 也不考虑身份伪装. 我们仅仅是需要 - 加密, RSA 非对称加密. 物理上的和系统上的安全我们会想尽全部办法来解决, 不需要加密模块来管.

    但是, 苹果不公开允许这样做, 所以 iOS 上的 Cocoa API 就没有简单的这样的加密函数:

    ret = rsa_encrypt(src_data, public_key);
    

    例如, 苹果的 SecKeyEncrypt() 函数需要 .der 证书, 而公钥只是证书的一部分. 所以, 如果你只有公钥, 你是不能直接使用这个函数的. 幸运的是, iOS 可以使用自己产生的公钥, 所以, 你要做的是把你的公钥伪装成是 iOS 产生的.

    这篇文章, 介绍了如何伪装公钥. 伪装完后, 你就可以直接使用 SecKeyEncrypt() 函数来进行 RSA 公钥加密了.

    完整的代码我放在 GitHub 上了.

    Posted by ideawu at 2015-02-03 17:49:57 Tags: ,
|<<<12>>>| 2/2 Pages, 9 Results.