bash - 通过终端批量构建和归档iOS应用

  显示原文与译文双语对照的内容
0 0

我正在尝试简化 build-> archive-> 提交过程,以实现iOS应用发布。 我们有超过 50个移动应用具有几乎相同的框架,但有不同的美工和配置设置。

我通常将每个项目加载到 xcode 4.2和 build-> archive-> 提交通常的方式与 xcode GUI,但是我们现在已经超过了 50个应用程序,并且在我们推出更新更新时,这个过程非常乏味。

也就是说,我正在尝试使用 shell 函数加速这个过程。 我做了大量的研究发现,xcodebuild的 ( 请参见) 应该工作,但是归档选项不像我得到以下错误一样工作:


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会识别档案,但是它会在"未知架构"和"未命名归档文件"的organizer下列出它们。

任何关于现在获取正确的Info.plist的帮助。

我还欢迎介绍如何改进脚本和/或者更有效的方法,以批处理build+archive这些iOS应用程序。

注:

  • 我无法升级到 Xcode 4.2,因为需要( 就像我所理解的) OS X 10.7 +,我无法获得( 公司计算机) 。

  • 我仍然是一个 bash/shell 新手,所以我对上面的任何丑陋代码/实践都很抱歉。

  • 此外,这是官方应用提交,不是特别或者任何类似的。

再次 感谢 你 的 帮助 。

时间: 原作者:

0 0

我对归档命令也有同样的问题,通过谷歌找到了这个问题。 使用这里生成命令将失败:


xcodebuild -verbose -project $ProductName.xcodeproj -target $ProductName -configuration Release -sdk $SDK clean archive CONFIGURATION_BUILD_DIR="$PROJECT_PATH/build" PROVISIONING_PROFILE="${DIST_PROVISONING_PROFILE}"

然而,如果使用这个构建命令,它将会成功:


xcodebuild -verbose -project $ProductName.xcodeproj -scheme $ProductName -configuration Release -sdk $SDK clean archive CONFIGURATION_BUILD_DIR="$PROJECT_PATH/build" PROVISIONING_PROFILE="${DIST_PROVISONING_PROFILE}"

唯一的区别是指定方案代替目标来构建。 如果这种行为有一个合理的理由,我会喜欢听它。

我正在 Mac OS X 10.7.5上运行 XCode 4.5.1

原作者:
0 0

好的我找到了一个解决方法。 后做更多搜索和很多猜测和检查,我发现我仍然可以使用与 xcodebuild"存档"选项,我只需要指定一个工作区和计划,显然我不像现在这样做之前正确地工作。

所以,对于任何寻找类似的解决方案( 批量归档xcode项目),这里是我的函数:


# $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 {
 mybase=$PWD
 for x in `ls`
 do
 cd $mybase/$x
 xcodebuild -workspace $x.xcodeproj/project.xcworkspace -scheme $x archive
 cd $mybase
 done
}
export -f xcodeArchive

原作者:
...