蘋果底層開源代碼被發(fā)現(xiàn)包含兼容微信的代碼
推特用戶發(fā)現(xiàn)蘋果開源的底層代碼包含了一個專門兼容微信的頭文件——make_tapi_happy.h,TAPI 是騰訊官方 API 的名稱簡寫。此文件位于 libmalloc 目錄下,libmalloc 是蘋果采用的堆管理結(jié)構(gòu)。
從這個頭文件的命名和注釋來看,它的作用就是通過聲明已在其他項目進(jìn)行前置聲明 (forward-declare) 的內(nèi)容來兼容 TAPI。
- /* Make TAPI happy by declaring things that other projects forward-declare. */
- /* This header is not installed anywhere. */
有趣的是,我們在 make_tapi_happy.h 頭文件中還發(fā)現(xiàn)了蘋果程序員吐槽微信的注釋:
- /* WeChat references this, only god knows why. This symbol does nothing. */
- extern int stack_logging_enable_logging;
顯然,這名蘋果程序員并不了解在微信代碼中定義的 stack_logging_enable_logging 整型變量有什么作用,他在這里引用主要是為了進(jìn)行兼容,所以注釋還寫道:“這個變量沒有做任何事。”
蘋果與騰訊曾在2017年因為微信的「贊賞」功能而發(fā)生分歧,當(dāng)時蘋果曾在其 App Store 審核指南中規(guī)定,iOS App 內(nèi)的所有打賞功能模塊都必須走蘋果 IAP 通道,而 App Store 作為平臺方要從中抽取大約 30% 的分成。基于此,騰訊與蘋果進(jìn)行了多次協(xié)商,但由于未能達(dá)成共識,騰訊移除了 iOS 版微信中的「贊賞」功能。
到了2018年,經(jīng)過一些協(xié)調(diào),雙方取得了共同的認(rèn)知,并就此事達(dá)成了和解,騰訊決定恢復(fù) iOS 版微信的「贊賞」功能。
make_tapi_happy.h 頭文件的創(chuàng)建日期剛好也是2018年。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:蘋果底層開源代碼被發(fā)現(xiàn)包含兼容微信的代碼
本文地址:https://www.oschina.net/news/127177/apple-libmalloc-compliance-with-wechat