11

问题 - 简短版本:

phase scripts从命令行创建 IPA 时为什么不执行我的构建?当我运行xcodebuild创建 IPA 时,预定义的构建阶段脚本不会被执行。这是为什么?


问题 - 冗长的版本:

我有一个工作区,其中包含一个我想从命令行创建 IPA 的方案。

除了一件事,这很好用;我在目标的构建阶段有两个脚本,用于放置正确的应用程序版本 ( CFBundleShortVersionString) 和正确的 svn 修订号 ( CFBundleVersion)。这些脚本在从 xcode 归档时工作正常,但由于某种原因,从命令行归档时它们不会运行。首先这是为什么?

以下是正在运行的脚本(如果从 xCode 归档) 在此处输入图像描述 在此处输入图像描述

从命令行归档和创建 IPA 时,我会做(要点)

# Building
xcodebuild ARCHS="armv7 armv7s" ONLY_ACTIVE_ARCH=NO -workspace MyWorkspace.xcworkspace/ -scheme MyScheme CONFIGURATION_BUILD_DIR=${PROJECT_BUILD_DIR} -configuration Release clean build

# Creating IPA
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${PROJECT_BUILD_DIR}/${APPLICATION_NAME}.app" -o "${IPA_OUTPUT_PATH}/${APPLICATION_NAME}.ipa"

它可以工作并创建一个 IPA,但没有一个构建阶段脚本被执行,而修订号和版本号都保持不变。

感谢所有建议!

更新由于 BDASH 的回答

我没有进行干净的构建,而是将其安装为

xcodebuild install ARCHS="armv7 armv7s" ONLY_ACTIVE_ARCH=NO -workspace MyWorkspace.xcworkspace/ -scheme MyScheme CONFIGURATION_BUILD_DIR=${PROJECT_BUILD_DIR} -configuration Release

预定义的脚本将在安装过程中执行(可以在项目版本号中看到)并且没有错误。但是,创建的 IPA 的大小约为 300 字节(而不是 ~10MB),并且无法安装在设备上。

在安装之前构建应用程序,即

# Building
xcodebuild clean build ARCHS="armv7 armv7s" ONLY_ACTIVE_ARCH=NO -workspace MyWorkspace.xcworkspace/ -scheme MyScheme CONFIGURATION_BUILD_DIR=${PROJECT_BUILD_DIR} -configuration Release 
# Installing
xcodebuild install ARCHS="armv7 armv7s" ONLY_ACTIVE_ARCH=NO -workspace MyWorkspace.xcworkspace/ -scheme MyScheme CONFIGURATION_BUILD_DIR=${PROJECT_BUILD_DIR} -configuration Release

然后创建 IPA 将产生一个具有执行版本脚本且大小正确的 IPA,无法将其安装在设备上。尝试将其放在设备上会显示错误消息
“由于发生未知错误,您的 iPhone 设备“我的设备”上未安装程序“MyApp”。

4

1 回答 1

2

您已为至少一个脚本阶段选中“仅在安装时运行脚本”。仅在使用build操作时才会运行该阶段。xcodebuildinstall

于 2013-04-23T07:14:45.447 回答