美文网首页
Runtime objc4-750.1编译

Runtime objc4-750.1编译

作者: 蚂蚁也疯狂 | 来源:发表于2019-03-09 20:59 被阅读0次

最新版本的Runtime源码编译环境配置(写的不好,见谅)

当前环境

  • mac OS 10.14
  • Xcode 10.1
  • objc4-750.1

首先给出我已编译好的objc4-750地址,可以直接使用。

Runtime 源码地址

  • 苹果开源网站上可以下载到很多开源项目,可以看到当前最新mac OS系统为10.14.1,最新的Xcode版本为10,安装Xcode 10.0提示mac OS系统需要10.13.6:

    image.png
  • 经过查找 Runtime源码就是objc4文件,选择最新的mac OS 系统为10.14.1,\color{#FF0000}{command + f },在浏览器搜索中输入 objc4

    image2.png
  • 可以看到最新的objc4文件为objc4-750.1,点击右边的下载按钮可以下载压缩包:

    image.png
  • 也可以点进去在网页上查看某个文件的代码,大概结构如下图: image4.png
  • 此时显示的网页地址为:https://opensource.apple.com/source/objc4/objc4-750.1/

    image5.png
  • 去掉最后的objc4-750.1/路径,进入网页地址https://opensource.apple.com/source/objc4/,可以看到以往objc4历史版本:

    image6.png
  • 这里将source替换为tarballs同样可以下载自己想要的objc4版本,如图: image7.png
    image8.png

Runtime 编译

准备工作、编译参考:objc4-750编译中runtime 编译部分

我下载的源码使用Xcode打开是下面这样的:

image9.png
其中libojbc.A.dylib就是我们要编译的Runtime库,编译好之后我们可以添加个 Target用于测试Runtime源码。下面就是要解决bug了。 第一次运行报错: image001.png

解决方法:

  • TARGETS -> objc -> Build Setting 删除左边的TARGETS 和下边的 i386 如图: image002.png
第二次运行报错: image003.png

这个报错主要是文件确实问题。需要添加头文件

  • 解决方法:1.添加 头文件 image004.png
image005.png

配置文件路径:TARGETS -> objc -> Build Setting 搜索 search。注意这里是添加到 System Header Search Paths

image006.png

第三次运行:

image007.png
解决方法:TARGETS -> objc -> Build Setting 搜索 prep,找到 Preprocessor Macros 添加 LIBC_NO_LIBCRASHREPORTERCLIENT image008.png

第四次运行:报如下错误

image009.png
解决方法:将代码 #include <objc/objc-block-trampolines.h> 注释或者删除。

第五次次运行:报如下错误

image010.png
解决方法:TARGETS -> objc -> Build Setting 搜索 linking,找到 Other Linker Flags 删除 -lCrashReporterClient
然后 然后找到 Order File 中的路径,改为 ${SRCROOT}/libobjc.order image011.png image013.png

第六次次运行:报如下错误:

image014.png
解决办法:
TARGETS -> objc -> Build Phases -> Run Script 删除 .internal 如图: image015.png 然后运行:报如下错误: image016.png

解决方法:TARGETS -> objc -> Build Settings -> 搜索 text 如图:

image017.png image018.png

解决完之后 运行 当显示 Build Secceeded 时,我们就可以添加测试 TARGETS了 。
选择 objc -> TARGETS -> 添加 自己的TARGETS


image019.png image020.png 021.png 022.png 024.png

此时我们就可以调试Runtime的源码了

文章引用自objc4-750编译

相关文章

网友评论

      本文标题:Runtime objc4-750.1编译

      本文链接:https://www.haomeiwen.com/subject/xgseuqtx.html