Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ObjC:当包含在cocoapod中时,静态在多个框架中是不一致的_Ios_Objective C_Cocoapods - Fatal编程技术网

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

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 '

因此,我的情况特别使用了反对依赖注入库。然而,我相信这对其他图书馆来说也是一个问题

平台

iOS 8.0 Xcode 6.1.1。椰子荚0.35。目的-C

设置:

我有4个项目。3个通用框架和一个测试应用程序(我正在创建一个api)。测试应用程序不使用cocoapod(尽管其他一些应用程序可能会使用)

我的三个框架都需要使用注入。我创建了一个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
问题

当我使用此设置时,Singleton不在异议中工作。然而,只有在项目1中定义了它们(singleton类),然后我调用
[JSCreateInjector]时,它们才起作用(这些项目没有区别,只是在与定义不同的项目中调用了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与多个目标有问题