实际上基于配置我要删除并在Info.plist中添加一个键。使它充满活力。我已经采取了添加脚本来实现这一目标的方法。
我尝试了什么,我遇到了什么问题。
添加了构建脚本:使用编辑器添加脚本 - >添加构建阶段 - >添加运行脚本。
输出:我可以看到密钥在Xcode文件中被删除但是当我要在iPA中看到密钥时,密钥仍然存在。所以,我相信Build系统在删除密钥之前复制了该文件。看起来像执行脚本的顺序问题。
行动前制定计划看起来很有希望。
问题:我在Pre-Action脚本中添加了简单的echo语句。但我无法看到它的输出。关于堆栈溢出的几个问题,我发现我们可以在console.app上看到它。但我尝试了很多,我无法在Console.app中看到它。我正在使用Xcode 5.1.1。
任何人都可以指出我在哪里可以看到我的预操作脚本的输出?
外部构建系统:我还尝试了这个Running script only for an 'Archive' build in Xcode 4
上述链接中提供的解决方案中的问题:
答案 0 :(得分:1)
使用外部构建系统模板创建新目标(并使其运行脚本)然后使app / library /依赖于此新目标的目标更好目标
这样它就会在Xcode甚至触及你的Info.plist
之前运行,并且曾经存在Xcode的问题(如果我没记错的话,在4.2中)运行在构建阶段修改Info.plist
的脚本会让它崩溃。
我使用这种方法使用TexturePacker命令行构建spritesheets并使用python脚本来修改我的内部版本号。
编辑以下是要使用的设置示例,假设脚本位于Xcode项目的同级目录中名为tools
(我的首选位置)的目录中,所以:
MyProject/
MyProject.xcodeproj/
MyProject/
(source files)
MyProject-Info.plist
tools/
the_script.sh (see below)
然后外部构建系统将配置为:
Build Tool: tools/the_script.sh
Arguments: MyTarget1/MyTarget1-Info.plist MyTarget2/MyTarget2-Info.plist
Working Directory: $(SRCROOT)
然后the_script.sh
会将Info.plist
路径作为唯一参数(在运行之前不要忘记chmod 0755
):
#!/bin/sh
# Don't do anything when cleaning
if [ "$ACTION" = "clean" ]; then
exit 0
fi
if [ $# -eq 0 ]; then
echo usage: $0 info-plist \[ ... info-plist \]
exit 1
fi
while (( "$#" )); do
plist=$1
# Do work
/usr/libexec/PlistBuddy ... $plist
shift
done