推特用户发现苹果开源的底层代码包含了一个专门兼容微信的头文件——make_tapi_happy.h,TAPI 是腾讯官方 API 的名称简写。此文件位于 libmalloc 目录下,libmalloc 是苹果采用的堆管理结构。
从这个头文件的命名和注释来看,它的作用就是通过声明已在其他项目进行前置声明 (forward-declare) 的内容来兼容 TAPI。
/* Make TAPI happy by declaring things that other projects forward-declare. *//* This header is not installed anywhere. */
有趣的是,我们在 make_tapi_happy.h 头文件中还发现了苹果程序员吐槽微信的注释:
/* WeChat references this, only god knows why. This symbol does nothing. */extern int stack_logging_enable_logging;
显然,这名苹果程序员并不了解在微信代码中定义的 stack_logging_enable_logging 整型变量有什么作用,他在这里引用主要是为了进行兼容,所以注释还写道:“这个变量没有做任何事。”
苹果与腾讯曾在2017年因为微信的「赞赏」功能而发生分歧,当时苹果曾在其 App Store 审核指南中规定,iOS App 内的所有打赏功能模块都必须走苹果 IAP 通道,而 App Store 作为平台方要从中抽取大约 30% 的分成。基于此,腾讯与苹果进行了多次协商,但由于未能达成共识,腾讯移除了 iOS 版微信中的「赞赏」功能。
到了2018年,经过一些协调,双方取得了共同的认知,并就此事达成了和解,腾讯决定恢复 iOS 版微信的「赞赏」功能。
make_tapi_happy.h 头文件的创建日期刚好也是2018年。