Ios ObjC:当包含在cocoapod中时,静态在多个框架中是不一致的
因此,我的情况特别使用了反对依赖注入库。然而,我相信这对其他图书馆来说也是一个问题 平台 iOS 8.0 Xcode 6.1.1。椰子荚0.35。目的-C 设置: 我有4个项目。3个通用框架和一个测试应用程序(我正在创建一个api)。测试应用程序不使用cocoapod(尽管其他一些应用程序可能会使用) 我的三个框架都需要使用注入。我创建了一个pod文件,看起来像Ios ObjC:当包含在cocoapod中时,静态在多个框架中是不一致的,ios,objective-c,cocoapods,Ios,Objective C,Cocoapods,因此,我的情况特别使用了反对依赖注入库。然而,我相信这对其他图书馆来说也是一个问题 平台 iOS 8.0 Xcode 6.1.1。椰子荚0.35。目的-C 设置: 我有4个项目。3个通用框架和一个测试应用程序(我正在创建一个api)。测试应用程序不使用cocoapod(尽管其他一些应用程序可能会使用) 我的三个框架都需要使用注入。我创建了一个pod文件,看起来像 workspace 'workspace.xcworkspace' platform :ios, '8.0' xcodeproj '
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
问题
当我使用此设置时,Singleton不在异议中工作。然而,只有在项目1中定义了它们(singleton类),然后我调用[JSCreateInjector]时,它们才起作用项目2中的code>(这些项目没有区别,只是在与定义不同的项目中调用了create)
当前理论
经过一段时间的斗争,我认为这是由于以下几点引起的警告:
Objection is defined in Project 1, Project 2 and Project 3.
Which one will be used undefined.
因此,当类向注入系统注册自身时(例如,通过objective\u register\u singleton(ClassX)
)。它正在使用其项目中的JSObjective定义,该定义可能不是用于注入它的类的定义(例如,Objective\u requires\u sel(@selector(myClassXObject))
)
问题
我希望能够使用iOS框架设置,因为据我所知,它总体上比静态libs更好。然而,我也希望能够使用Cocoapods(并且任何使用我的api的应用程序都可以使用Cocoapods)
我如何才能a)跨多个框架共享一个定义,或者b)将一个框架设置为Cocoapod(我已经看到这个正在开发中)
我希望能够通过xcode工作区保持框架的链接,这样在构建框架时,它所依赖的框架也会被构建。尽管如此,无论如何,我的api在某个时候可能会变成一个Cocoapod
提前感谢(以及在此阅读)
靛蓝因为你三次使用同一个目标?你没看到吗?对不起,那是个输入错误。编辑它。在实际的代码中,我确实使用了不同的目标。看起来问题在于反对。你应该编辑你的问题标题和标签,使之更清楚,这样知道反对如何运作的人可以帮助回答你的问题。嗨,阿比,正如我在问题中所说,我的情况就是反对,但是,如果我对原因的看法正确,这是Cocoapods中更广泛的问题(或者只是不同的语义)。因为问题(我认为)是由于pod的多个实现(或真正的导入)造成的。当我上次在0.33上检查时,CocoaPods与多个目标有问题