Xcode Cloud Test 无法存档项目

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

我在存档时进行 Xcode Cloud 测试时遇到错误。 问题都与 CocoaPods 依赖项相关:

unable to open file (in target "Alamofire" in project "Pods")
missing module map file: '/Volumes/workspace/repository/Pods/Target Support Files/Alamofire/Alamofire.modulemap

看起来 Pod 没有安装在归档中。 在当地效果很好。

最好的,

ios xcode cocoapods xcode-cloud
3个回答
7
投票

Xcode Cloud 临时构建环境不包含 CocoaPods 等第三方工具。但您可以使用克隆后脚本包含它们。如果您使用 CocoaPods,请执行以下步骤。

  1. 在项目的根目录下创建一个目录

    ci_scripts

  2. 添加文件

    ci_post_clone.sh
    并将其保存在ci_scripts目录中。

  3. 打开

    Terminal
    并使您的脚本可执行文件在
    chmod +x ci_post_clone.sh
    目录中运行
    ci_scripts

  4. 在任何文本编辑器中编辑

    ci_post_clone.sh
    并复制以下内容。

     # !/bin/sh
    
     # Install CocoaPods using Homebrew.
     brew install cocoapods
    
     # Install dependencies you manage with CocoaPods.
     pod install
    
  5. 提交并推动

    ci_post_clone.sh



0
投票

文档建议的设置方法很糟糕 - 它没有版本控制,并且通过brew安装需要花费大量时间。 最好的方法是使用

Gemfile
声明存储库根目录下的依赖项,即:

source 'https://rubygems.org'

gem 'cocoapods'
gem 'fastlane'

然后

bundle install
将工具的版本锁定在
Gemfile.lock
上(您应该对存储库中的两个文件进行版本控制)。

在您的

ci_scripts/ci_post_clone.sh
文件上:

#!/bin/sh

#1 - You can't install gems to the system gem path without sudo, so create a local one
echo ">>> SETUP LOCAL GEM PATH"
echo 'export GEM_HOME=$HOME/gems' >>~/.bash_profile
echo 'export PATH=$HOME/gems/bin:$PATH' >>~/.bash_profile
export GEM_HOME=$HOME/gems
export PATH="$GEM_HOME/bin:$PATH"

#2 - Install the actual bundler version you bundled locally with, so you don't have any surprises
echo ">>> INSTALL REQUIRED BUNDLER VERSION"
gem install bundler -v "$(grep -A 1 "BUNDLED WITH" ../Gemfile.lock | tail -n 1)" --install-dir $GEM_HOME

#3 - Let bundler download the locked version of cocoapods, fastlane, and whatever other tools you need
echo ">>> INSTALL DEPENDENCIES"
bundle install

#4 - Finally you can run the bundled pod binary to install your dependencies
echo ">>> INSTALL PODS"
bundle exec pod install

此外,请考虑提交您的

Pods
文件夹,以避免根本不需要运行 cocoapods。或者至少仅 gitignore 大型二进制文件(即 Twilio、WebRTC 等)。这也可以保护您免受已删除的存储库或离线服务提供商的侵害

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