将库 SDK Swift 从私有 github 发布到 CocoaPods

问题描述 投票:0回答:1

我在私有 GitHub 存储库上发布了一个 iOS SDK 库。我尝试将其发布到CocoaPods,以便其他应用程序可以使用它。但是,在创建 podspec 文件、标记应用程序、运行 pod lib lint,并最终使用命令 pod lib lint 成功验证后,我遇到了命令 pod trunk push ****lient.podspec 的错误。

注意| URL:URL (https://github.com/*****-ios-natif) 无法访问。错误:CocoaPods Trunk 无法访问您的 Pod 源代码。它是私人存储库还是在 http 上的用户名/密码后面?

该库是用 Swift 编写的,并使用 Swift Package Manager 生成。我注意到其他具有私有 GitHub 存储库的应用程序已成功在 CocoaPods 上发布其 SDK。例如,在此应用程序中:https://github.com/Kameleoon/client-swift,GitHub 上看不到源代码,但我们可以简单地包含该库,如下所示:pod 'kameleoonClient'。

我需要生成存档并将其发布到 CocoaPods 吗?有教程解释这个过程吗?

任何帮助将不胜感激。谢谢你。

xcode github cocoapods swift-package-manager
1个回答
0
投票

我在这里发布我的解决方案也许对其他人有帮助 为了让它发挥作用,我改变了很多东西 我的库位于 swift 包管理器上,我创建一个新的项目库并将所有代码粘贴到其中 之后我创建了一个用于 iphone 的 xcarchive 和另一个用于模拟器的 xcarchive,然后我将它们组合起来创建 xcframework

为模拟器创建xcarchive

 xcodebuild archive \
-scheme BClient \
-archivePath "archives/BClient-iOS-simulator.xcarchive" \
-destination "generic/platform=iOS Simulator" \
-sdk iphonesimulator \
SKIP_INSTALL=NO \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES

为设备创建xcarchive

 xcodebuild archive \
-scheme BClient \
-archivePath "archives/BClient-iOS.xcarchive" \
-destination "generic/platform=iOS" \
-sdk iphoneos \
SKIP_INSTALL=NO \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES

我将它们组合起来得到xcframework框架

 xcodebuild -create-xcframework \
-framework "archives/BClient-iOS.xcarchive/Products/Library/Frameworks/BClient.framework" \
-framework "archives/BClient-iOS-simulator.xcarchive/Products/Library/Frameworks/BClient.framework" \
-output "BClient.xcframework"

之后,我压缩 BClient.xcframework 以获得 BClient.zip 我将其发布到公共存储库以获取如下网址:https://github.com/******example/raw/main/BClient.zip

对于 BClient.podspec :

 Pod::Spec.new do |spec|

 spec.name = "BClient"

 spec.version = "0.0.6"

 spec.summary = "B Client iOS"

 spec.description = "B Client for iOS"

 spec.homepage = "example.com"

 spec.license = { :type => "MIT", :file => "LICENSE" }

 spec.author = { "B O" => "[email protected]" }

 spec.platform = :ios, "15.2"

 spec.swift_version = '5.9'

 spec.source = { :http => 'https://github.com/******example/raw/main/BClient.zip' }
  spec.ios.vendored_frameworks = 'BClient.xcframework'

 end

配置完成后,命令成功通过:

pod 主干推送 BClient.podspec --verbose --allow-warnings --use-libraries

© www.soinside.com 2019 - 2024. All rights reserved.