xcode 14.3打包错误

488 阅读2分钟

我的自动化脚本打包命令是这样的:

xcodebuild archive -quiet \
    ARCHS="arm64" \
    ONLY_ACTIVE_ARCH=NO \
    GCC_WARN_INHIBIT_ALL_WARNINGS=YES \
    GCC_PREPROCESSOR_DEFINITIONS="AppRunEnv=0" \
    -destination generic/platform=iOS \
    -scheme Runner \
    -workspace Runner.xcworkspace \
    -configuration Release \
    CODE_SIGN_IDENTITY="Apple Development: 小小小 (12345678)" \
    DEBUG_INFORMATION_FORMAT=dwarf-with-dsym \
    -archivePath "$WORKSPACE/build/Runner.xcarchive" \
    -derivedDataPath "$WORKSPACE/build/" \
    -verbose

这条命令解释如下: 在这个命令中:

  • xcodebuild archive表示将项目归档打包。
  • -quiet选项指定不输出冗长的构建信息。
  • ARCHS指定了构建的架构,这里使用的是arm64
  • ONLY_ACTIVE_ARCH设置为NO表示同时构建模拟器和真机架构。
  • GCC_WARN_INHIBIT_ALL_WARNINGS设置为YES表示忽略所有警告。
  • GCC_PREPROCESSOR_DEFINITIONS指定了一个预处理器定义,AppRunEnv=0表示将AppRunEnv定义为0
  • -destination指定了构建的目标平台和设备类型,这里指定为通用的iOS平台。
  • -scheme指定要构建的Scheme名称,这里为Runner
  • -workspace指定项目的工作空间文件,这里为Runner.xcworkspace
  • -configuration指定要构建的配置,这里为Release
  • CODE_SIGN_IDENTITY指定签名证书的名称,这里为Apple Development: 小小小 (123456789)
  • DEBUG_INFORMATION_FORMAT设置为dwarf-with-dsym表示生成带有符号的调试信息。
  • -archivePath指定要生成的归档路径,这里为$WORKSPACE/build/Runner.xcarchive
  • -derivedDataPath指定派生数据的路径,这里为$WORKSPACE/build/
  • -verbose选项指定输出详细的构建信息。

问题是之前没问题的,一直报错:

sent 29 bytes  received 20 bytes  98.00 bytes/sec

total size is 0  speedup is 0.00

rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/97f6331a-ba75-11ed-a4bc-863efbbaf80d/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]

image.png

找到一个解决方法:

There is an issue with Cocoapods now, because Xcode 14.3 is now using a relative path in its symlink for frameworks.

Either wait for release of Cocoapods version 1.12.1 or make this simple change in your Pods-APPNAME-frameworks.sh file:

Replace:

  if [ -L "${source}" ]; then
    echo "Symlinked..."
    source="$(readlink "${source}")"
  fi

with:

  if [ -L "${source}" ]; then
    echo "Symlinked..."
    source="$(readlink -f "${source}")"
  fi

Note that -f was added.

但这是不方便的。

  1. 升级cocoapods:
sudo gem install cocoapods
  1. 查看版本:
gem list|grep pod                                 
cocoapods (1.11.3, 1.5.3)
cocoapods-core (1.11.3, 1.5.3)
cocoapods-deintegrate (1.0.5)
cocoapods-downloader (1.6.3)
cocoapods-plugins (1.0.0)
cocoapods-search (1.0.1)
cocoapods-stats (1.0.0)
cocoapods-trunk (1.6.0)
cocoapods-try (1.2.0)
  1. 删除旧版本 1.5.3 或者1.11.3 保留一个
sudo gem uninstall cocoapods --version 1.11.3
sudo gem uninstall cocoapods-core --version 1.11.3

发现版本居然又变成了1.5.3 降级了,这是什么鬼操作。 使用低版本的果然又是一个更加古老的错误:

image.png

ruby 和gem cocoapods 有着恶心的关系,不管了,我是之前烫过一遍不想再来第二次了。

直接用brew 安装吧。

brew install cocoapods

ok 还是brew好使

axiaoxiao@xiaoxiaoxiaodeMacBook-Pro ~ % which pod

/opt/homebrew/bin/pod

axiaoxiao@xiaoxiaoxiaodeMacBook-Pro ~ % pod --version

1.12.1

重新 xcodebuild archive

终于成功。