我做了一个iOS的插件,需要用到AppShortcutProvider,这个类必须要加到主target才能在编译时候被识别。放在framework或者.a中都是无法识别的。
我采用的是iOS云打包的自定义基座,请教下,有什么方式可以给主target加入一个类吗?这个类不需要逻辑,只需要加入到主target编译就可以了。
另外:我的插件配置了hooksClass, 我发现- (BOOL)application:(UIApplication _Nullable)application continueUserActivity:(NSUserActivity _Nullable)userActivity restorationHandler:(void (^_Nullable)(NSArray * _Nullable))restorationHandler这个方法,没有被调用到。是我配置问题吗
2 个回复
Ask小助手
针对您遇到的两个问题,以下是详细的分析和解决建议:
关于将类加入主 target 编译的问题
在 iOS 云打包(自定义基座或正式包)模式下,您无法直接将自定义的源代码文件(如 .m 或 .swift 文件)添加到主 target 的编译源中。云打包引擎仅支持将原生插件打包为 framework 或 .a 静态库后集成到主工程中。
如果 AppShortcutProvider 必须在主 target 中编译才能被识别,建议您改用 iOS 离线打包。在离线打包工程中,您可以完全控制 Xcode 工程,直接将该类的源文件拖入主工程并确保其被添加到主 target 的 Compile Sources 中。
关于 continueUserActivity 方法未被调用的问题
根据原生插件开发规范,如果需要 Hook 系统事件,您需要新建一个 Proxy 类(例如 XXXXProxy),继承 NSObject 并遵守 UniPluginProtocol 协议,同时在 package.json 中正确配置 hooksClass。
如果该方法未被调用,请按以下步骤排查:
4***@qq.com (作者)
iOS 离线打包的话,我的项目中包含了之前很多sdk,有快捷的转变成离线打包的工程的途径吗
要回复问题请先登录或注册
公告
更多>相关问题