【发布时间】:2012-07-16 14:45:00
【问题描述】:
我正在尝试简化 iOS 应用发布的构建->存档->提交过程。 我们有 50 多个移动应用程序,它们具有几乎相同的框架,但具有不同的插图和配置设置。
我通常会在 xcode 4.2 中加载每个项目并使用 xcode GUI 以通常的方式构建->存档->提交,但是我们现在有超过 50 个应用程序,每当我们推出更新时,这个过程都非常烦人。
话虽如此,我正在尝试使用 shell 函数来加快这个过程。 我做了很多研究,发现xcodebuild(参见 Reid 的回答)应该可以工作,但是存档选项不起作用,因为我收到以下错误:
unsupported build action 'archive'
所以我写了以下内容:
# $1 should be a date like: 2012-07-17
# $2 should be a time like: 10.31AM
# $mybase will be the current directory at the time the function was called
# so make sure to cd into the folder containing the xcode project folders first
function xcodeArchive {
mkdir ~/Library/Developer/Xcode/Archives/$1
mybase=$PWD
for x in `ls`
do
mkdir ~/Library/Developer/Xcode/Archives/$1/$x
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/dSYMs
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/Products
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/Products/Applications
cd $mybase/$x
xcodebuild
#read -p "Press [Enter] to continue"
cd $mybase/$x
cp $x/$x-Info.plist ~/Library/Developer/Xcode/Archives/$1/$x/Info.plist
cp -r build/Release-iphoneos/$x.app.dSYM ~/Library/Developer/Xcode/Archives/$1/$x/dSYMs/$x.app.dSYM
cp -r build/Release-iphoneos/$x.app ~/Library/Developer/Xcode/Archives/$1/$x/Products/Applications/$x.app
cd ~/Library/Developer/Xcode/Archives/$1/
mv $x $x\ $1\ $2.xcarchive
cd $mybase
done
}
export -f xcodeArchive
我把它放在我的 .bash_profile 中,一切正常运行,除了我没有复制正确的“Info.plist”,我不知道从哪里复制它或如何生成它。所以现在我被卡住了。
Xcode 会识别档案,但它会将它们列在管理器中的“Unknown Schema”和“Unnamed Archive”下。
非常感谢任何有关现在获取正确 Info.plist 的帮助。
我也欢迎有关如何改进脚本和/或更有效地批量构建+归档这些 iOS 应用程序的建议。
注意:
我无法升级到 Xcode 4.2 以上,因为这需要(据我了解)OS X 10.7+,但我还无法获得(公司计算机)。
我仍然是一个 bash/shell 新手,所以对于上面的任何丑陋代码/做法,我深表歉意。
另外,这是用于提交官方应用程序,而不是用于临时或类似的东西。
再次感谢您的帮助。
【问题讨论】:
标签: ios bash shell xcode4.2 .bash-profile