相关疑难解决方法(0)

Xcode 10,带有CoreNFC的Swift 4应用程序在iOS 12上的评论中崩溃

我为iOS提交的应用程序被提交给Appstoreconnect,因为它在审核过程中的启动时崩溃了.

我的应用程序使用CoreNFC框架.所以这个应用程序兼容iPhone 7,8,X ..设备与iOS 11或更高版本.应用程序由我在物理设备上测试,工作正常.在模拟器上启动也很好(NFC功能不起作用,但应用程序没有崩溃).

Crashlog包含信息,我可以看到CoreNFC框架在其启动时未加载:

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Description: DYLD, Library not loaded: /System/Library/Frameworks/CoreNFC.framework/CoreNFC | Referenced from: /var/containers/Bundle/Application/223F146A-DF69-43CC-89A1-CFDF323ACB45/SharpEnd NFC Scanner.app/SharpEnd NFC Scanner | Reason: image not found
Run Code Online (Sandbox Code Playgroud)

我试图在应用程序常规选项卡 - 嵌入式二进制文件中嵌入CoreNFC框架,但它给了我构建错误,所以我不确定它是否可行.

所以我的问题是:

  • 是否可以在Xcode的嵌入式二进制文件部分嵌入CoreNFC框架?
  • 是否可以在加载之前检查设备是否支持此框架?

任何帮助或解决方法将非常感谢..

xcode ios swift

9
推荐指数
1
解决办法
1636
查看次数

#if canImport()未找到带有CocoaPods的框架

您好,这里是我们的Podspec,它具有default_subspec和可选的子规范(由于已经设置了默认值,因此不会使用)。该子规格具有更多功能,但需要额外的8MB大小...

`s.default_subspec = 'mainSDK'

s.subspec 'mainSDK' do |mainSDK|
mainSDK.vendored_frameworks = 'mainSDK.framework'
mainSDK.source_files = "mainSDK.framework/Headers/*.h"
end

s.subspec 'additionalSDK' do |additionalSDK|
additionalSDK.source_files = "additionalSDK.framework/Headers/*.h"
additionalSDK.vendored_frameworks =['additionalSDK.framework', 'mainSDK.framework']
end
Run Code Online (Sandbox Code Playgroud)

现在,在我们的mainSDK中,我们在#if canImport(additionalSDK)中包含了AdditionalSDK,然后在这些编译器标志之间提供了与AdditionalSDK 相关的代码,如下所示:

#if canImport(additionalSDK)
    //adding optional delegate
    class ViewController: UIViewController, OptionalDelagate
#else
    //no need for delagete
    class ViewController: UIViewController
#endif
Run Code Online (Sandbox Code Playgroud)

但是,客户端集成了我们mainSDK后,他认为,该框架是缺少模块:additionalSDK.framework

这怎么可能?我们已经在工作空间中将AdditionalSDK标记为可选。我们试图设置additionalSDK-weak_framework其他连接标志(构建设置),但这并没有帮助。

如果客户端集成了额外的 SDK,则所有框架都将正常运行,因为所有框架都已链接。

可选的依赖关系,没有的CocoaPods做工精良,它的CocoaPods的只是问题或我不知道如何配置它

`s.default_subspec = 'mainSDK'

s.subspec 'mainSDK' do |mainSDK|
mainSDK.vendored_frameworks = 'mainSDK.framework'
mainSDK.source_files = "mainSDK.framework/Headers/*.h" …
Run Code Online (Sandbox Code Playgroud)

ios ios-frameworks cocoapods podspec swift

6
推荐指数
1
解决办法
1021
查看次数

标签 统计

ios ×2

swift ×2

cocoapods ×1

ios-frameworks ×1

podspec ×1

xcode ×1