2018-05-20周问题汇总

pod init报错

错误信息如下

1
RuntimeError - [Xcodeproj] Unknown object version. #7697

在issues中的讨论中给出了很多解决方案,最终我的解决方案是修改项目的配置,我的Xcode版本是9.3
修改项目配置
具体讨论参考:Github

libuv移植的iOS平台

libuv是一个跨平台的,高性能的,事件驱动的I/O库。具体教程见libuv

具体步骤:

  1. 安装Python
  2. 下载libuv源码
  3. 在终端中进入libuv目录。
  4. 创建build目录。mkdir -p build
  5. 下载gyp https://chromium.googlesource.com/experimental/external/gyp
  6. 执行 ./gyp_uv.py -f xcode,会在在output目录生成uv.xcodeproj
  7. 打开uv.xcodeproj,修改配置如下:

    1
    2
    3
    4
    BaseSDK:Latest IOS
    Architecture : armv7,armv7s,arm64
    supported platform: IOS
    valid architecture: arm64 armv7 armv7s
  8. 以IOS Device为目标编译,生成真机版的库libuv.a,在Debug-iphoneos目录下
    以Simulater为目标编译,生成模拟器版的库libuv.a,在Debug-iphonesimulater目录下

  9. 将两个库合成一个库
    1
    lipo -create Debug-iphoneos/libuv.a Debug-iphonesimulator/libuv.a -output libuv.a

参考:libuv移植到iOS

CMake

CMake是一个跨平台的编译工具。具体简介可参考教程CMake。在iOS平台可以使用开源库ios-cmake

Mac 上 cmake 使用C++11编译
Mac上clang编译器默认的C++版本比较低,一些特性语法会报错,需要修改编译版本,在CMakeLists.txt文件中添加

1
set (CMAKE_CXX_STANDARD 11)

将Mac系统上的C、C++编译器切换到GCC

我们都知道Mac上的默认编译器是Clang,下面简单介绍一些如何切换成GCC。步骤如下:

  1. 打开终端,输入sudo vim ~/.bash_profile
  2. 添加如下配置,gcc-4.7是响应的gcc版本号。

    1
    2
    3
    4
    alias gcc='gcc-4.7'
    alias cc='gcc-4.7'
    alias g++='g++-4.7'
    alias c++='c++-4.7'
  3. 执行source ~/.bash_profile

  4. 执行gcc --version查看版本信息。
    gcc --version

共享Windows桌面

有时候我们需要使用Mac电脑控制同一个局域网下的window电脑,推荐一个软件Microsoft Remote Desktop 可以在AppStore上下载,不过需要使用美区账号,中国区没有上架。下载之后添加一个连接,配置如下
连接配置