问题 - 简短版本:
为什么我的构建不会phase scripts
从命令行创建 IPA 时执行?
当我跑步时xcodebuild
创建预定义的 IPA构建阶段脚本不会被执行。这是为什么?
问题-冗长版本:
我有一个工作区,其中有一个方案,我想从命令行创建 IPA。
除了一件事之外,这一切都很好;我在目标的构建阶段有两个脚本,用于放置正确的应用程序版本(CFBundleShortVersionString
)和正确的 svn 修订号(CFBundleVersion
)。从 xcode 归档时,这些脚本工作正常,但由于某种原因,从命令行归档时它们无法运行。
首先这是为什么呢?
Here are the scripts that are working (if archiving form 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 将生成一个具有已执行版本脚本且大小正确的 IPABUT无法将其安装在设备上。尝试将其放在设备上会给出错误消息:
“您的 iPhone 设备“我的设备”上未安装程序“MyApp”,因为发生了未知错误。”