从命令行创建IPA时,为什么不执行构建阶段脚本?
问题 – 简短版本:
从命令行创建IPA时,为什么不执行构建phase scripts
? 当我运行xcodebuild
来创建IPA时,预定义的构建阶段脚本不会被执行。 这是为什么?
问题 – 冗长的版本:
我有一个工作区,我想从命令行创建一个IPA。
除了一件事,这个工作正常; 我在目标的构建阶段有两个脚本,用于放置正确的应用程序版本( CFBundleShortVersionString
)和正确的svn修订版号( CFBundleVersion
)。 这些脚本在从xcode归档时工作正常,但由于某些原因,从命令行归档时它们不会运行。 首先是为什么?
以下是正在运行的脚本(如果存档forms为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
预定义的脚本将执行IN FACT(可以在项目版本号中看到),安装期间没有错误。 但是,创建的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设备”My Device“上没有安装程序”MyApp“,因为发生了未知错误。”
您至少在其中一个脚本阶段检查了“仅在安装时运行脚本”。 仅当使用install
操作时,将build
操作用于xcodebuild
时才会运行该阶段。