主题
XHIM CocoaPods 私有发行
本页只面向 XHIM iOS/macOS 二进制发行人员。iOS App 开发者请阅读 iOS CocoaPods 从零接入。
1. 组装不可变制品
本页描述 Production 发布流程。本轮已在本地生成并验证 0.1.0-dev.2 受控 联调快照;只有制品上传且私有 Specs 登记完成后,消费者才能用 = 0.1.0-dev.2 精确锁定。不能把它当作本页 Production 门禁已经通过,也不能 用 ~> 0.1 选择它。后续正式发布仍必须遵循以下流程。
Production 组包必须传入本版本最终的 HTTPS 下载地址:
bash
scripts/apple/assemble_ios_package.sh \
--mode production \
--sdk-version 1.2.3 \
--artifact /secure/final/apple/XHIMCore-production.xcframework \
--build-manifest /secure/final/apple/XHIMCore-production.manifest.json \
--privacy-manifest /secure/reviewed/PrivacyInfo.xcprivacy \
--privacy-review-id PRIVACY-2026-001 \
--legal-review-id LEGAL-2026-001 \
--sqlcipher-license /secure/vendor/sqlcipher/LICENSE.md \
--expected-team-id FG4922H85G \
--cocoapods-source-url \
"https://sdk.xihansoftware.com/xhim/swift/1.2.3/XHIMSwift-1.2.3-production.pod-source.zip" \
--output-dir /secure/final/distribution脚本生成:
text
distribution/
├── XHIMSwift-production/ 本地 SPM/CocoaPods 试用包
├── XHIMSwift-1.2.3-production.pod-source.zip
├── XHIMSwift-1.2.3-production.pod-source.zip.sha256
├── XHIMSwift-1.2.3-production.release-attestation.json
└── CocoaPodsSpecs-production/
└── Specs/
├── XHIM/1.2.3/XHIM.podspec
└── XHIMSwiftUI/1.2.3/XHIMSwiftUI.podspec同一个版本号的 ZIP、SHA-256 和 Podspec 一经发布禁止覆盖。 Release Attestation 同时绑定 Build Manifest、签名后 XCFramework 目录树、 SwiftPM ZIP、CocoaPods ZIP、两个 Podspec、Privacy Manifest 和法务文件。 Production 下任一 SHA、Commit、Product Adapter、Local Preview、数据库加密、 Toolchain 或审核 ID 不匹配都会失败。
XHIMCore 是 static-library XCFramework;只校验外层 XCFramework Bundle 的 codesign 和 Team ID,不存在可逐个签名的 .framework 子目录。
2. 上传并复核
先上传 *.pod-source.zip,再确认公网或客户网络可以读取:
bash
curl --fail --location --output /tmp/XHIMSwift.pod-source.zip \
"https://sdk.xihansoftware.com/xhim/swift/1.2.3/XHIMSwift-1.2.3-production.pod-source.zip"
shasum -a 256 /tmp/XHIMSwift.pod-source.zip结果必须与 .sha256 文件和两个 Podspec 中的 source.sha256 完全一致。
3. 验证并发布私有 Specs
第一次使用私有仓库时:
bash
pod repo add xhim-specs \
git@git.xihansoftware.com:laowang/xhim-specs.git先发布核心 Pod,再发布 UI Pod:
bash
pod repo push xhim-specs \
CocoaPodsSpecs-production/Specs/XHIM/1.2.3/XHIM.podspec \
--swift-version=5.9 --skip-tests --no-overwrite
pod repo push xhim-specs \
CocoaPodsSpecs-production/Specs/XHIMSwiftUI/1.2.3/XHIMSwiftUI.podspec \
--swift-version=5.9 --skip-tests --no-overwriteXHIMSwiftUI 精确依赖同版本 XHIM,因此发布顺序不能颠倒。
4. 最终消费验证
脚本已先在临时目录创建空白 SwiftPM/CocoaPods 消费者,完成 iOS Simulator、unsigned generic Device 和 macOS 构建。上传以后再使用一个无本地 路径依赖的空白 iOS 工程:
ruby
source 'git@git.xihansoftware.com:laowang/xhim-specs.git'
source 'https://cdn.cocoapods.org/'
platform :ios, '15.0'
target 'ReleaseConsumer' do
use_frameworks! :linkage => :static
pod 'XHIM', '1.2.3'
pod 'XHIMSwiftUI', '1.2.3'
end执行 pod install --repo-update,再分别完成 Simulator、Device 和 Archive 构建。验证 import XHIM、import XHIMSwiftUI、图标资源、Privacy Manifest、 登录、收发消息和附件功能。
私有 Specs 仓库只存 Podspec,不存 XCFramework、证书、私钥或客户配置。