美文网首页
Mac Catalyst 的问题记录

Mac Catalyst 的问题记录

作者: 风儿吹啊吹 | 来源:发表于2019-10-29 22:06 被阅读0次

    1、 出现错误 Error: Command Codesign failed with a nonzero exit code

    解决方法:

    1、Clean Build Folder (Command+shift+K)后,再次编译。
    2、在build setting中 找到 other code signing flags 输入 ”--deep“
    

    2、 预编译指令问题。 结构如下:

    结构图
    1、在mac 环境下运行 以下指令结果为:

    (指令都需要添加TARGET_OS_前缀,如TARGET_OS_MAC)

    MAC OSX IPHONE IOS SIMULATOR MACCATALYST UIKITFORMAC
    1 0 1 1 0 1 1
    2、在 模拟器 环境下运行 以下指令结果为:
    MAC OSX IPHONE IOS SIMULATOR MACCATALYST UIKITFORMAC
    1 0 1 1 1 0 0
    结论:
    如果在代码中需要用预编译指令区分 iphone、模拟器及Mac Catalyst 时,
    先判断Mac Catalyst,再判断模拟器,最后判断iphone。
    

    3、生成的xcframework使用问题

    1、使用 Starscream.xcframework 时 (版本:3.04)

        在swiftinterface 文件中出现错误 No such module SSCZLibNo such module SSCommonCrypto。因为在框架中用到 .modulemap来加载子模块,但是在xcframework中并不能加载到。

    `解决方法`:删除zlib目录下的所有文件,然后在WebSocket.swift文件中导入“zlib”和 “CommonCrypto”,重新生成xcframework 即可。
    
    2、使用SwiftyJSON时 (版本4.3.0)

        出现错误 Use of undeclared type 'SwiftyJSON',同样是在生成swiftinterface文件时,多添加了SwiftyJSON.前缀。

    `解决方法`:使用全局替换将“SwiftyJSON.” 替换为空字符串 即可。
    
    3、使用 SQLite.swift时 (版本0.12.0)

        出现错误initializer does not override a designated initializer from its superclass,在生成swiftinterface文件时,没有对FTSConfig类 生成init 方法。

    `解决方法`:在swiftinterface 的类FTSConfig 中添加方法 ` public init() ` 即可
    
    4、下载SnapKit后,在Deployment Info中没有Mac iPhone iPad 的Target设备支持。
    `解决方法`:在Build Setting中 搜索 Base SDK 选择 iOS 即可
    

    总结

    1、  生成xcframework时,自动生成的swiftinterface 里面的代码缺失或多添加类前缀。
    2、  第三方框架中使用到子模块 .modulemap,编译不通过。
    3、  在Base SDK中设置 iOS,才能在Deployment info中选择多个Target 设备。
    

    相关文章

      网友评论

          本文标题:Mac Catalyst 的问题记录

          本文链接:https://www.haomeiwen.com/subject/ggqnvctx.html