Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚀 功能建议:会对低版本的Mac系统比如[10.X Catalina]做兼容吗? #251

Closed
4 tasks done
whoooami opened this issue Dec 1, 2023 · 29 comments
Closed
4 tasks done
Assignees
Labels
enhancement New feature or request

Comments

@whoooami
Copy link

whoooami commented Dec 1, 2023

请先确认以下事项

  • 已仔细阅读了 README
  • issues 页面搜索过(包括已关闭的 issue),未发现类似功能建议
  • Easydict 已升级到最新版本

功能描述

🚀 功能建议:会对低版本的Mac系统比如[10.X Catalina]做兼容吗?

使用场景(可选)

No response

实现方案(可选)

No response

是否愿意提交 PR 实现该功能

  • 我愿意提交 PR!
@whoooami whoooami added the enhancement New feature or request label Dec 1, 2023
Copy link

github-actions bot commented Dec 1, 2023

Hello whoooami, Thank you for your first issue contribution 🎉

@tisfeng
Copy link
Owner

tisfeng commented Dec 1, 2023

#138 (comment)

应该不行,除非有小伙伴愿意提交 PR,并且提供当前代码中系统 Symbol Image 的平替图标 #49 (comment)

因为不会设计图标,就用了系统的 Symbol Image ,被迫升到 11.0 了 😓

@tisfeng
Copy link
Owner

tisfeng commented Dec 1, 2023

我看你勾选了提交 PR,如果能提交 PR,那我可以添加一个支持 macOS 10.x 系统版本的分支。

@whoooami
Copy link
Author

whoooami commented Dec 2, 2023

我看你勾选了提交 PR,如果能提交 PR,那我可以添加一个支持 macOS 10.x 系统版本的分支。

也好,不过我可能要花时间学习一下,时间周期会久一点

@tisfeng
Copy link
Owner

tisfeng commented Dec 2, 2023

可以,如果你开发中遇到问题,随时可以向我们求助。

@whoooami
Copy link
Author

whoooami commented Dec 2, 2023

可以,如果你开发中遇到问题,随时可以向我们求助。

好的,瑞思拜

@tisfeng
Copy link
Owner

tisfeng commented Dec 2, 2023

我弄个新分支 macos-10.15,把支持的最低版本环境设置好了,编译报错问题也都解决了,可以直接运行测试。

剩下的就是一些 API 版本警告了,你只需要把这些不支持 10.15 的 API 兼容处理一下就可以,其中最主要的就是 Sybmol Image 相关的imageWithSystemSymbolName

image

@tisfeng
Copy link
Owner

tisfeng commented Dec 2, 2023

这些警告你只要按照系统的提示修复就可以,点击 Fix ,然后根据情况适配一下 macOS 10.15

示例: 2b92782

修复前

image

修复后

image

@whoooami
Copy link
Author

whoooami commented Dec 2, 2023

好的,非常贴心的前置工作

@fred402
Copy link

fred402 commented Dec 6, 2023

同为catalina系统,正需要这个功能,什么时候能搞好?

@tisfeng
Copy link
Owner

tisfeng commented Dec 6, 2023

不确定,我这边没有 catalina 系统,也不方便调试,现在是 @whoooami 在着手做,如果大家能一起出力,提供一些帮助,应该能比较快完成。

@whoooami
Copy link
Author

whoooami commented Dec 7, 2023

抱歉,可能没那么快。1、手头还有项目 2、我也不会设计图标,环境、代码到时候也要花点时间学习后再上手修改 @tisfeng @fred402

@tisfeng
Copy link
Owner

tisfeng commented Dec 7, 2023

图标也不一定非要自己设计,网上有一些开放的资源,例如阿里的 iconfont

先用 Xcode 跑起来,就成功了一大半。

@whoooami
Copy link
Author

whoooami commented Dec 7, 2023

图标也不一定非要自己设计,网上有一些开放的资源,例如阿里的 iconfont

先用 Xcode 跑起来,就成功了一大半。

好的,明白。我尽量把时间线提前

@whoooami
Copy link
Author

我先跑了一下本地环境

ld: warning: Could not find or use auto-linked library 'swift_StringProcessing'
ld: warning: Could not find or use auto-linked library 'swiftCompatibilityConcurrency'
ld: warning: Could not find or use auto-linked library 'swift_Concurrency'
ld: warning: Could not find or use auto-linked framework 'CoreTransferable'
Undefined symbols for architecture x86_64:
  "StoreKit.Transaction.deviceVerificationNonce.getter : Foundation.UUID", referenced from:
      static (extension in FirebaseAnalytics):__C.FIRAnalytics.logTransaction(StoreKit.Transaction) -> () in FirebaseAnalytics(Analytics+StoreKit.o)
  "StoreKit.Transaction.originalID.getter : Swift.UInt64", referenced from:
      static (extension in FirebaseAnalytics):__C.FIRAnalytics.logTransaction(StoreKit.Transaction) -> () in FirebaseAnalytics(Analytics+StoreKit.o)
  "__swift_FORCE_LOAD_$_swiftCompatibilityConcurrency", referenced from:
      __swift_FORCE_LOAD_$_swiftCompatibilityConcurrency_$_FirebaseAnalytics in FirebaseAnalytics(Analytics+StoreKit.o)
      __swift_FORCE_LOAD_$_swiftCompatibilityConcurrency_$_FirebaseAnalytics in FirebaseAnalytics(Analytics+SwiftUI.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftCompatibilityConcurrency_$_FirebaseAnalytics)
  "StoreKit.Transaction.purchaseDate.getter : Foundation.Date", referenced from:
      static (extension in FirebaseAnalytics):__C.FIRAnalytics.logTransaction(StoreKit.Transaction) -> () in FirebaseAnalytics(Analytics+StoreKit.o)
  "StoreKit.Transaction.id.getter : Swift.UInt64", referenced from:
      static (extension in FirebaseAnalytics):__C.FIRAnalytics.logTransaction(StoreKit.Transaction) -> () in FirebaseAnalytics(Analytics+StoreKit.o)
  "StoreKit.Transaction.deviceVerification.getter : Foundation.Data", referenced from:
      static (extension in FirebaseAnalytics):__C.FIRAnalytics.logTransaction(StoreKit.Transaction) -> () in FirebaseAnalytics(Analytics+StoreKit.o)
  "StoreKit.Transaction.productID.getter : Swift.String", referenced from:
      static (extension in FirebaseAnalytics):__C.FIRAnalytics.logTransaction(StoreKit.Transaction) -> () in FirebaseAnalytics(Analytics+StoreKit.o)
  "StoreKit.Transaction.purchasedQuantity.getter : Swift.Int", referenced from:
      static (extension in FirebaseAnalytics):__C.FIRAnalytics.logTransaction(StoreKit.Transaction) -> () in FirebaseAnalytics(Analytics+StoreKit.o)
  "static StoreKit.AppStore.deviceVerificationID.getter : Foundation.UUID?", referenced from:
      static (extension in FirebaseAnalytics):__C.FIRAnalytics.logTransaction(StoreKit.Transaction) -> () in FirebaseAnalytics(Analytics+StoreKit.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

尝试重装xcode, 添加LD_VERIFY_BITCODE NO,依然无效,我可能需要专业开发帮我处理下环境问题

@tisfeng
Copy link
Owner

tisfeng commented Dec 11, 2023

可能是第三方库 FIRAnalytics 版本太高了,使用了一些 Swift 库,而 macOS 10 不支持。

稍后我把第三方库的版本降一下试试。

@whoooami
Copy link
Author

可能是第三方库 FIRAnalytics 版本太高了,使用了一些 Swift 库,而 macOS 10 不支持。

稍后我把第三方库的版本降一下试试。

好的,我们别的讨论方式吗? 我估计后续还会有一些问题要请教,还是都贴在这里就好?

@tisfeng
Copy link
Owner

tisfeng commented Dec 11, 2023

一般的技术问题可以直接这里讨论,方便查看和检索,如果涉及隐私,可以发邮件 [email protected],或者 Telegram tisfeng。

@tisfeng
Copy link
Owner

tisfeng commented Dec 11, 2023

试了一下,发现 FIRAnalytics 无法在 macOS 10 使用,因此我直接移除了。

我更新了 macos-10.15 分支代码,解决了警告,剩下的你需要将调用到这两个图片方法的地方兼容一下。

+ (NSImage *)ez_imageWithSymbolName:(NSString *)name {
    CGSize size = CGSizeMake(EZAudioButtonImageWidth_16, EZAudioButtonImageWidth_16);
    NSImage *image = [self ez_imageWithSymbolName:name size:size];
    return image;
}


/// Return a system symbol image, if < macos(11.0), return a normal image with image name.
/// - Parameters:
///   - name: system symbol image name or assets image name
///   - size: image size
+ (NSImage *)ez_imageWithSymbolName:(NSString *)name size:(CGSize)size {
    NSImage *image;
    if (@available(macOS 11.0, *)) {
        image = [NSImage imageWithSystemSymbolName:name accessibilityDescription:nil];
        if (!CGSizeEqualToSize(size, CGSizeZero)) {
        }
    } else {
        // Fallback on earlier versions
        image = [NSImage imageNamed:name];
    }
    image = [image resizeToSize:size];
    return image;
}

@whoooami
Copy link
Author

好的,我更新了代码,编译还有其它报错。我再看下

@tisfeng
Copy link
Owner

tisfeng commented Dec 12, 2023

遇到报错,可以先 Google 搜索一下,或者找 ChatGPT 聊一聊。

如果遇到难题无法解决,可以把问题贴出来,我来看看。

@whoooami
Copy link
Author

好的

@tisfeng
Copy link
Owner

tisfeng commented Jan 14, 2024

你好,请问这个怎么样了?

@whoooami
Copy link
Author

你好,请问这个怎么样了?

抱歉,还没有系统看代码。上次提到的问题我最近尽快debug一下,先出一版

@tisfeng
Copy link
Owner

tisfeng commented Jan 15, 2024

ok,其实代码也不需要细看,主要是本地化字符串需要注意一下,你切到英文环境,各个功能都体验一遍就差不多了。

@whoooami
Copy link
Author

ok,其实代码也不需要细看,主要是本地化字符串需要注意一下,你切到英文环境,各个功能都体验一遍就差不多了。

主要是上次运行起来主界面正常,我不太清楚是我不会使用还是功能性问题,所以暂时还没有更进一步了解

@tisfeng
Copy link
Owner

tisfeng commented Jan 15, 2024

行,那就先这样,你可以把代码推上来,我们先发一个支持 macOS 10 的版本,如果后面有其他用户反馈问题,再来解决也不迟。没有就认为没问题,直接封存。

@whoooami
Copy link
Author

好的,等我晚点再跑一遍

@tisfeng
Copy link
Owner

tisfeng commented Jan 18, 2024

macOS 10.15 这个分支可以运行在 macOS 10.15 系统,但可能有问题 #329 (comment) , 如果有能力改代码,请尝试自行修复。

这个分支后续我不会继续维护,只接受 PR。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants