所以我的情况特别使用了Objection依赖注入库。但是,我认为这也可能是其他图书馆的一个问题。
平台
iOS 8.0 Xcode 6.1.1。 Cocoapods 0.35。目标C
设置:
我有4个项目。 3个通用框架和一个测试应用程序(我创建了一个api)。测试应用程序不使用cocoapods(虽然其他一些应用程序可能)。
我的三个框架都需要使用注入。我创建了一个看起来像
的pod文件workspace 'workspace.xcworkspace'
platform :ios, '8.0'
xcodeproj 'path/to/proj/one'
xcodeproj 'path/to/proj/two'
xcodeproj 'path/to/proj/three'
target :Project1 do
pod 'Objection', '1.4'
end
target :Project2 do
pod 'Objection', '1.4'
end
target :Project3 do
pod 'Objection', '1.4'
pod 'SDWebImage', '~>3.7.1'
end
问题
当我使用此设置时,单身人士不会在异议中工作。但是,如果他们(单身类)在项目1中定义,然后我在项目2中调用[JSObjection createInjector];
(项目不会产生影响,那就是创建它们),它们只会起作用。在与定义不同的项目中调用。)
当前理论
在与此争吵一段时间之后,我认为这是由于以下方面的警告:
Objection is defined in Project 1, Project 2 and Project 3.
Which one will be used undefined.
因此当类使用注射系统注册时(例如通过objection_register_singleton(ClassX)
)。它正在使用其项目中的JSObjection定义,该定义可能不是用于注入它的类的定义(例如objection_requires_sel(@selector(myClassXObject))
)。
问题
我希望能够使用iOS框架设置,因为根据我的理解,它总体上比静态库更好。但是,我也希望能够使用Cocoapods(并且有任何使用我的api的应用程序,使用Cocoapods)。
我如何a)在多个框架中共享一个定义或b)将框架设置为Cocoapod(我已经看到它正在开发中)。
我希望能够保持框架通过xcode工作区链接,因此当构建一个框架时,它所依赖的框架也会被构建。尽管如此,我的api在某种程度上可能会成为Cocoapod。
提前致谢(以及阅读此处)
靛蓝