【发布时间】:2016-10-15 04:52:54
【问题描述】:
几个月前我开发了一个 iOS 框架,现在我想使用 CocoaPods 轻松开发和分发它。现在我通过发送我的 .framework 文件分发它,我知道这不是最好的方法,因此我想使用 CocoaPods。
我的问题是,在我的框架内,我使用 CoreData,但无法使其与 Pod 一起使用。 如果我得到旧的 .framework 并将其导入我的应用项目,一切正常,CoreData 就像一个魅力。
深入研究问题,似乎 Database.momd 未在包中找到。
我将在框架内附加失败的代码:
- (NSManagedObjectModel *)managedObjectModel {
if (_managedObjectModel != nil) {
return _managedObjectModel;
}
NSURL *modelURL = [[NSBundle bundleWithIdentifier:@"kemmitorz.myFramework"] URLForResource:@"Database" withExtension:@"momd"];
// HERE modelURL RETURNS NIL with Pods
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return _managedObjectModel;
}
我知道这可能是由错误的框架配置或错误的 Pod 配置引起的,但我不知道我缺少什么。
另外,这是我的 myFramework.podspec 文件:
Pod::Spec.new do |s|
s.name = 'myFramework'
s.version = '0.1.0'
s.summary = 'A short description of myFramework.'
....
s.ios.deployment_target = '8.0'
s.source_files = 'myFramework/**/*.{h,m}'
s.frameworks = 'Foundation', 'Security', 'CFNetwork', 'CoreData'
s.library = 'icucore'
s.dependency 'SocketRocket'
s.dependency 'AFNetworking'
s.dependency 'OCMapper'
end
我也尝试将 {h,m,xcdatamodeld} 添加到源文件类型,但未成功。
我错过了什么?重复一遍,如果我自己编译和导入框架,一切正常,所以我想这与 CocoaPods 配置有关。
【问题讨论】:
标签: ios objective-c core-data cocoapods