HikariObfuscator/Hikari

@protocol(WCTColumnCoding)

Closed this issue · 9 comments

源码在原版编译器下可正常编译

在Hikari release_80环境下出现错误

受影响源码
WCTRuntimeObjCAccessor::WCTRuntimeObjCAccessor(Class instanceClass, const std::string &propertyName)
: WCTRuntimeAccessor(instanceClass, propertyName)
, WCTObjCAccessor(generateValueGetter(instanceClass, propertyName), generateValueSetter(instanceClass, propertyName))
, m_columnType(GetColumnType(instanceClass, propertyName))
{
Class propertyClass = GetPropertyClass(instanceClass, propertyName);
if (![propertyClass conformsToProtocol:@protocol(WCTColumnCoding)]) {//<-----this line
WCDB::Error::Abort([NSString stringWithFormat:@"Class %@ should conforms to protocol WCTColumnCoding", NSStringFromClass(propertyClass)].UTF8String);
}
}

提示错误
.../Pods/WCDB/apple/WCDB/interface/orm/accessor/WCTRuntimeObjCAccessor.mm:36:45: @protocol is using a forward protocol declaration of 'WCTColumnCoding'

.../Pods/WCDB/apple/WCDB/interface/declare/WCTDeclare.h:68:11: 'WCTColumnCoding' declared here
@protocol WCTColumnCoding;

使用的混淆参数列表:
未使用,仅适用Hikari编译,未加参数,未使用swift代码

该错误是否是llvm新版本的特性导致呢?

看起来是的,有完整报错吗

嗯看了下应该是新特性,用Noctilucence或者NatsukoiHanabi 绕过吧,两个解决方案都有各自的缺陷,注意看文档

或者自己编译一份release_60

好的,我先编译一份release_60版本试下,同时试下NatsukoiHanabi这个方式。

另:要改正这个问题是否需要用新llvm代码加入pass重新编译Hikari呢

不用,所有的分支现在走的都是同一套核心

Closing due to inactivity

NatsukoiHanabi这个方式怎么修改啊

@kfq0072

两个解决方案都有各自的缺陷,注意看文档

@kfq0072

两个解决方案都有各自的缺陷,注意看文档

文档在哪里??可以回复一个链接给我吗?谢谢你