xcodebuild 输出二进制文件在哪里?

Posted

技术标签:

【中文标题】xcodebuild 输出二进制文件在哪里?【英文标题】:xcodebuild where is the output binary? 【发布时间】:2016-03-19 22:18:37 【问题描述】:

抱歉,我是 ios 开发的新手。

我正在构建一个 Cordova/Meteor 应用程序。 Meteor 创建了一个构建目录,我想要一个命令行脚本来构建二进制文件以上传到 itunesconnect。

这是我目前所拥有的:

#!/bin/bash

CODE_SIGN_IDENTITY="Michael"
NAME="appExpertAlerts"

# Create the xcode project
meteor add-platform ios
echo "STARTING BUILD"
meteor build ../../ops/production/ios \
  --mobile-settings ../../ops/production/meteor/settings.json \
  --server https://phone.app.io:443 \
  --verbose
meteor remove-platform ios
popd

# Build the xcode project
pushd ios/ios/project
xcodebuild \
  build \
  -sdk iphoneos \
  -configuration Release \
  -xcconfig cordova/build.xcconfig \
  -project "$NAME.xcodeproj" \
  -target "$NAME" \
  SHARED_PRECOMPS_DIR=$(pwd)/build/sharedpch \
  CODE_SIGN_IDENTITY="$CODE_SIGN_IDENTITY" \
  ARCHS="armv7 armv7s arm64" \
  VALID_ARCHS="armv7 armv7s arm64" \
  CONFIGURATION_BUILD_DIR=$(pwd)/build/device \

popd

构建成功,我可以看到输出文件,但找不到要上传到 itunesconnect 的二进制文件。

输出二进制文件在哪里?或者我如何创建一个?

【问题讨论】:

【参考方案1】:

我还没有实现将构建上传到 itunesconnect 的自动化,听起来很有趣 :-)

然而,在触发构建之后,我认为,您尝试实现的目标最好实现为“运行脚本”构建阶段。在那里,您设置了如下所述的变量:

https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html#//apple_ref/doc/uid/TP40003931-CH3-SW42

对你来说特别有趣的应该是 TARGET_BUILD_DIR:

TARGET_BUILD_DIR

描述:目录路径。标识目录的根 包含产品文件的层次结构(无中间构建 文件)。

运行对产品文件进行操作的脚本构建阶段 定义它们的目标应使用此构建设置的值。 但是运行其他产品文件的运行脚本构建阶段 目标应改为使用 BUILT_PRODUCTS_DIR。

示例值: /Volumes/Users/genica/MyProject/build/Debug /tmp/MyProject.dst/Users/genica/Applications /Volumes/Users/genica/MyProject/build/UninstalledProducts 相关内容: DEPLOYMENT_LOCATION(部署位置),INSTALL_PATH(安装 目录),SKIP_INSTALL。

这些变量可以在您的脚本中以$VAR NAME 的形式访问。

.ipa 存档可以创建,如这篇 SO 文章所示:Xcode "Build and Archive" from command line

您可能会特别注意shenzen 工具,如果我理解正确的话,它就是您当前正在构建的工具。 https://github.com/nomad/shenzhen

【讨论】:

以上是关于xcodebuild 输出二进制文件在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

xcodebuild -create-framework 错误:无法读取文件

安装后 NPX 在哪里存储二进制文件?

xcodebuild 命令无法与动态可可触摸框架一起正常工作

Jenkins,xcodebuild -> JUnit-Tests with Appium?

命令行工具打包

NEAR 协议中存储的智能合约 WebAssembly 二进制文件在哪里/如何?