首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改内置框架ios

修改内置框架ios
EN

Stack Overflow用户
提问于 2012-11-01 07:25:21
回答 2查看 1K关注 0票数 1

我是一名开发人员,正在为iOS开发机器人应用程序。我不打算将此应用程序提交到应用程序商店,也不希望建议的方法获得苹果公司的批准。

我正在尝试让蓝牙正常工作,我认为一个很好的起点是尝试修改现有的苹果框架。我是否可以修改框架,以便当它们构建到我的iOS设备上时,框架将针对应用程序(而不是同一设备上的其他应用程序)进行修改?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-01 07:59:51

事实上,你可以的!

Objective-C允许你通过"swizzle“方法来覆盖它们的默认行为,如果你愿意的话,仍然可以调用原始的实现。您可以对任意数量的Objective-C方法执行此操作,次数不限。

如果您希望覆盖C函数中存在的行为,则需要对平台进行更多的控制。越狱允许您使用Jay Freeman的CydiaSubstrate的全部功能来挂钩或搅动Objective-C方法和C/C++函数。

虽然我并不推荐使用MethodSwizzle本身,但是下面的网址很好地讨论了http://cocoadev.com/wiki/MethodSwizzling

但是你真的应该使用CydiaSubstrate's MSHookMessageEx和MSHookFunction。特别是因为你没有向App Store提交任何东西。

关于蓝牙,我在这个领域做了大量的工作(我开发了Celeste,这是一个系统级的调整,为iOS上的系统应用程序提供普通的蓝牙OBEX支持)。我建议您考虑使用像BTstack这样的工具,它为您提供了从HCI到RFCOMM级别的蓝牙模块访问权限,并支持SDP和配对等您可能需要的东西。

票数 6
EN

Stack Overflow用户

发布于 2012-11-01 07:44:50

除了categories (它扩展了在这些框架中交付的基类的功能),我不相信你可以“修改”现有的苹果框架本身。更好的做法可能是简单地创建自己的框架(或者找到别人的开源、商业或简单的第三方框架),然后将该框架构建到安装到您想要使用的iOS设备上的应用程序中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13168863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档