作者:灬毋黑色灬_447 | 来源:互联网 | 2023-02-12 17:59
我正在创建一个快速框架,并且想在该框架中使用Objective-C类。
我曾经pod lib create frameworkName
创建图书馆。
这是我的podspec
文件:
http://guides.cocoapods.org/syntax/podspec.html
Pod::Spec.new do |s|
s.name = 'MyFramework'
s.version = '0.1.0'
s.summary = 'A short description of RadiantSensorsRSPOS.'
s.description = <<-DESC
TODO: Add long description of the pod here.
DESC
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.ios.deployment_target = '8.0'
s.source_files = 'MyFramework/Classes/**/*'
s.public_header_files = 'Pod/Headers/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'CocoaAsyncSocket'
end
我objc.h
和objc.m
包含的文件Objc
类。我已经使用这个Objc
类MyFramework.swift
。
在标准应用程序(非框架)中,我做了一个头桥并导入了objc.h
文件,因此可以访问Objc
类。
我如何在Objc
这里使用课程?
我应该在哪里放objc.h
和objc.m
文件?
如何在这里制作标题桥?
1> 小智..:
我意识到回答您的问题可能有点晚了,但是我最近不得不做与您相同的事情-创建一个Swift Framework的cocoapod,其中混合了一些Objective C代码。
当您在Xcode(我使用的8.2或更高版本)中创建基于Swift的框架时,它会生成称为伞头文件(.h)的文件,该文件与目标名称相同。因此,如果您的框架目标称为“ MyFrameworkTarget”,则Xcode添加的伞形标头称为“ MyFrameworkTarget.h”。将此标头以及其他Swift和Objective C源代码文件包括在cocoapod中非常重要。
例如,这是一个有效的podspec文件,它将Swift和Objective C源文件组合到针对iOS和macOS的框架中:
Pod::Spec.new do |s|
s.name = "MyFramework"
s.version = "1.0.0"
s.summary = "Example cocoapod spec for a mixed language framework"
s.description = <<-DESC
Example cocoapod spec for a mixed language framework that targets both iOS and macOS.
DESC
s.homepage = "https://github.com/username/MyFramework"
s.license = "Apache License, Version 2.0"
s.author = { "My Name" => "info@code.myname.com" }
s.ios.deployment_target = "9.0"
s.osx.deployment_target = "10.11"
s.source = { :git => "https://github.com/username/MyFramework.git", :tag => "#{s.version}" }
s.source_files = 'Shared/*.{swift,h,m}'
s.ios.source_files = 'MyFrameworkMobile/*.h'
s.osx.source_files = 'MyFrameworkMac/*.h'
end
在这个特定示例中,我有Swift和Objective C文件,这些文件构成了为iOS和macOS构建的框架,位于文件夹“ Shared”中,并在podspec中由“ s.source_files”引用。然后在“ s.ios.source_files”和“ s.osx.source_files”中引用Xcode生成并为我的两个框架目标iOS(我称为MyFrameworkMobile)和macOS(我称为MyFrameworkMac)编辑的框架伞文件,分别。在我的示例中,它们针对iOS和macOS是分开的,因为我有两个目标。实际的标题位于文件夹“ MyFrameworkMobile”和“ MyFrameworkMac”中。
这是我实际的磁盘项目文件夹布局,以帮助可视化podspec指向的内容:
MyFramework.podspec
MyFramework.xcodeproj
MyFrameworkMac
MyFrameworkMac.h
Info.plist
MyFrameworkMobile
MyFrameworkMobile.h
Info.plist
Shared
MyFramework.swift
MyFramework.h
MyFramework.m
我希望这个信息帮助。在https://github.com/axl411/NVMDummyTestPod上有一个很好的示例项目,演示了如何在GitHub上为Swift和Objective C文件的混合项目创建pod文件。