如何使用 SPM 在私人仓库中托管的 .zip 格式使用二进制或 xcFramework
How to use binary or xcFramework in .zip format hosted in private repo using SPM
我想通过 SPM 使用 GoogleMaps SDK,所以我遵循了这个 url https://github.com/YAtechnologies/GoogleMaps-SP。
以下是我执行的步骤
第 1 步:
将所有 5 个 xcFrameworks 上传到 nexus。
例如:https://xxx/google/google-maps/5.0.0/google-map.zip
第 2 步:
使用以上所有 xcFramework zip urls 创建了一个 package.swift 文件并上传到 gitLab。
所以它与 https://github.com/YAtechnologies/GoogleMaps-SP/blob/main/Package.swift 相同。只有 zip urls 会被我们的 nexus url.
取代
第 3 步:
成功能够添加 Xcode。文件 > Swift 包 > 添加包依赖项
成功能够 运行 after‖File > Swift Packages > Reset Packages Cache.
问题:但问题是每当我 运行 pod 安装或更改分支时,我都会遇到以下错误
二进制目标工件 'GoogleMaps' 提取失败:
操作无法完成。 (TSCBasic.StringError 错误 1。)
二进制目标工件 'GoogleMapsBase' 提取失败:
操作无法完成。 (TSCBasic.StringError 错误 1。)
二进制目标工件 'GoogleMapsCore' 提取失败:
操作无法完成。 (TSCBasic.StringError 错误 1。)
二进制目标工件 'GoogleMapsM4B' 提取失败:
操作无法完成。 (TSCBasic.StringError 错误 1。)
二进制目标工件 'GooglePlaces' 提取失败:
操作无法完成。 (TSCBasic.StringError 错误 1。)
临时解决方案是通过 xcode 中的“文件 > Swift 包 > 重置包”重置包内容。
那么什么是永久解决方案,因为如果我直接使用 public https://github.com/YAtechnologies/GoogleMaps-SP.git as 依赖项,那么我就不会面临一次又一次重置包内容的问题。可能是我正在使用私有 xcFramework zip urls 或 repo,这就是我收到此错误的原因。所以任何人都知道是什么。可能是解决方案。
可能是 SPM 有问题
https://github.com/firebase/firebase-ios-sdk/issues/7363
此问题已在 Xcode 13 和 swift 5.0 或 >5.0 中解决。
我想通过 SPM 使用 GoogleMaps SDK,所以我遵循了这个 url https://github.com/YAtechnologies/GoogleMaps-SP。
以下是我执行的步骤
第 1 步: 将所有 5 个 xcFrameworks 上传到 nexus。 例如:https://xxx/google/google-maps/5.0.0/google-map.zip
第 2 步: 使用以上所有 xcFramework zip urls 创建了一个 package.swift 文件并上传到 gitLab。 所以它与 https://github.com/YAtechnologies/GoogleMaps-SP/blob/main/Package.swift 相同。只有 zip urls 会被我们的 nexus url.
取代第 3 步: 成功能够添加 Xcode。文件 > Swift 包 > 添加包依赖项
成功能够 运行 after‖File > Swift Packages > Reset Packages Cache.
问题:但问题是每当我 运行 pod 安装或更改分支时,我都会遇到以下错误
二进制目标工件 'GoogleMaps' 提取失败: 操作无法完成。 (TSCBasic.StringError 错误 1。)
二进制目标工件 'GoogleMapsBase' 提取失败:
操作无法完成。 (TSCBasic.StringError 错误 1。)二进制目标工件 'GoogleMapsCore' 提取失败: 操作无法完成。 (TSCBasic.StringError 错误 1。)
二进制目标工件 'GoogleMapsM4B' 提取失败: 操作无法完成。 (TSCBasic.StringError 错误 1。)
二进制目标工件 'GooglePlaces' 提取失败: 操作无法完成。 (TSCBasic.StringError 错误 1。)
临时解决方案是通过 xcode 中的“文件 > Swift 包 > 重置包”重置包内容。
那么什么是永久解决方案,因为如果我直接使用 public https://github.com/YAtechnologies/GoogleMaps-SP.git as 依赖项,那么我就不会面临一次又一次重置包内容的问题。可能是我正在使用私有 xcFramework zip urls 或 repo,这就是我收到此错误的原因。所以任何人都知道是什么。可能是解决方案。
可能是 SPM 有问题 https://github.com/firebase/firebase-ios-sdk/issues/7363
此问题已在 Xcode 13 和 swift 5.0 或 >5.0 中解决。