我正在开发集成了其他SDK(例如Facebook SDK 3.5)的iOS SDK。 为了防止碰撞并允许我的客户导入这些SDK,我想重命名我的代码中的所有类/枚举(例如,将FBSession重命名为RDFBSession等)。iOS SDKs:重命名很多类
有没有一种简单的方法来做到这一点,而不是去按课程和使用Xcode的重命名功能?
我正在开发集成了其他SDK(例如Facebook SDK 3.5)的iOS SDK。 为了防止碰撞并允许我的客户导入这些SDK,我想重命名我的代码中的所有类/枚举(例如,将FBSession重命名为RDFBSession等)。iOS SDKs:重命名很多类
有没有一种简单的方法来做到这一点,而不是去按课程和使用Xcode的重命名功能?
Xcode还提供文本搜索和替换。这将比单个重构更快,但它最终会减少自动化。通过首先将项目最小化到相关的依赖项/源(如果可能),可以更快地重构重构。
但是,重命名库中的声明不会改变其关联二进制文件的符号名称。如果以二进制形式分发,则重命名只会导致链接器错误或(在某些情况下)导致运行时错误。
如果您需要使用客户端也可能使用的第三方库,最好的办法就是告诉他们他们需要将库与应用程序链接起来,然后发布当前版本支持的版本,以便他们知道如果他们在某些图书馆中走得太远,他们会进行一些额外的测试。
我决定采用上一段中描述的方法。这似乎是对这个问题最干净的方法。谢谢! –
@RanDahan欢迎您:) – justin
我认为比简单重命名你的类更好的方法是下载Facebook的开源代码,重命名那里的类并编译一个带有一组重命名头文件的新静态库。然后你可以确定没有发生碰撞,并且你正在使用你自己命名的符号。
但是我必须警告你,尽管如此 - 无论你如何解决这个特定的问题,这样工作都可能会使SDK更新成为恶梦。
这是一个坏主意,因为他可能需要在未来更新FB SDK。如果是这样,他将不得不再次从FB中命名一切。最好去重新命名他的课程。有时候最好的方法并不容易。 – stevekohls
如果他在本地重命名他的类,他仍然需要为每个FB SDK更新重新完成。 – Stavash
Xcode有一个重构函数,这将使它更容易。 – trojanfoe
@trojanfoe我知道,事情是,有很多类和其他符号重命名。这仍然是一个漫长的痛苦过程。 –
你最好先开始吧,否则你永远都不会完成。源代码太复杂,一键式解决方案可能存在以做你想做的事情。基本上你必须自己做。 – trojanfoe