LocalPods 里没有 ProgressHUD
Opened this issue · 2 comments
podfile 里写着
pod 'ProgressHUD', :path => 'LocalPods/ProgressHUD'
但是 LocalPods 文件夹里没有这个 pod。。
ProgressHUD 应该不用本地依赖就可以,不过现在的代码还缺少 MPV 依赖。
pod 'MPVPlayer', :path => 'LocalPods/MPVPlayer'
另外看起来代码中并没有使用 mpv,coreType 指定的都是 vlc。
辛苦大佬更新个可以编译的版本。
如果目标构建平台是 macOS,那么大概还有如下这几个编译构建问题。供未来希望编译起来的朋友参考:
ProgressHUD Pod 不支持 macOS 平台
ProgressHUD 是一个指示器组件库,用于悬浮加载提示,进度提示、错误提示。
原版只支持 iOS 平台,不支持 macOS。所以 Pod install 时会报错:
[!] The platform of the target `AniXPlayer` (macOS 11.0) is not compatible with `ProgressHUD (13.7.2)`, which does not support `macOS`.
所以这也解释了为什么项目 Podfile 是从 LocalPods/ProgressHUD
引入它。
因为作者本地改了一份支持 macOS 的版本。(应该还额外往 NSView 上加了些 Category 扩展)。
可能由于各种原因没整理好,不方便发出来。
最快捷、赶时间的解决方案是直接暴力移除 ProgressHUD 依赖:
- 移除 Podfile 依赖,2. 删除引用代码,主要是
showProgress
,showLoading
,showError
等函数
(我 clone 了份,强改 podspec 支持 macOS 看了下,结论是我太菜了一时半会改不动)
MPVPlayer Pod 不存在
如前面讨论楼所述。MPVPlayer
其实没用到;代码也基本是桩实现。
快捷解决方案是移除 Podfile 依赖;移除代码引用,MPVPlayerWrapper
改为空实现。
缺两个文件 (有引用但不存在)
ANXLogHelperModule+Utils.swift
(in Share/CocoaShare/Helper):VLCVideoLayerView+Bugfix{.h, .m}
(in Share/CocoaShare/MediaPlayer)
导致 Build input file cannot be found
.
ANXLogHelperModule+Utils.swift
用于打日志,定义了模块名枚举,即 ANX.logInfo()
等日志函数的第一个参数。然而,目前仓库里实际存在的文件是 ANXLogHelperModule+Utils.m
,即 Objective-C 实现。
所以一种解决方法是添加 .m 实现到工程,移除 .swift 文件引用;然后在 AniXPlayer-Bridging-Header.h
中添加桥接导入:
#import "ANXLogHelperModule+Utils.h"
VLCVideoLayerView+Bugfix.m
应该是 Patch 了啥,但是不知道内容无法补齐。
所以解决方法是从 Target 中移除该文件、不构建。容忍可能会有的 Bug。
'VLCKit/VLCDialogProvider.h'
file not found
VLCKit 3.5.1 版本有个小问题,没有标记 VLCDialogProvider.h
为 Public,导致这头文件没打包到 framework,
于是下游编译报找不到头文件:'VLCKit/VLCDialogProvider.h' file not found
。
该问题的相关反馈参阅:
[1] https://code.videolan.org/videolan/VLCKit/-/issues/680
[2] https://code.videolan.org/videolan/VLCKit/-/merge_requests/263
解决方案是翻下 VLCKit 仓库补上头文件:VLCDialogProvider.h,补到 Mac/Pods/VLCKit/VLCKit.xcframework/macos-arm64_x86_64/VLCKit.framework/Headers/VLCDialogProvider.h
找不到 AppInfoHelper
(没导入)
AppInfoHelper.swift
文件其实存在,但没有添加到工程中,导致 Cannot find 'AppInfoHelper' in scope
(in Share/CocoaShare/Networking/NetworkManager.swift:28:23)。
所以解决方案是将 Share/CocoaShare/Helper/AppInfoHelper.swift
导入工程。
找不到 IPResponse
(没提交)
在 NetworkManager.getBackupIps(_:)
中报 Cannot find 'IPResponse' in scope
(in Share/CocoaShare/Networking/NetworkManager.swift:255:34)。
getBackupIps()
方法用于反序列化 DoH 解析域名 IP 的返回的 JSON;但它没人使用。
所以解决方案可以是注释屏蔽掉整个方法。
LocalFileManager.pickFiles() 调 contentsOfDirectory() 缺少 filterType
参数
Missing argument for parameter 'filterType' in call
(in Share/CocoaShare/MediaPlayer/File/FileManager/LocalFileManager.swift:150:50)
调用点 LocalFileManager.pickFiles(_:from:filterType:completion:)
更改为:
self.contentsOfDirectory(at: file, filterType: filterType) { result in
macOS 平台大概就是这些。我这边改完之后就能成功构建了。除指示器被人为删掉外,其他看起来正常(我还没仔细体验)。供有需要的人参考。
感谢作者大佬开源和付出 🙏🏻。期待大佬有空能修复下,以及考虑未来引入 CI 构建 🤤🥺