ObjC:当包含在cocoapod中时,静态在多个框架中不一致

时间:2014-12-16 18:32:05

标签: ios objective-c cocoapods

所以我的情况特别使用了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。

提前致谢(以及阅读此处)

靛蓝

0 个答案:

没有答案