gpt4 book ai didi

ios - 通过终端批量构建和归档 iOS 应用程序

转载 作者:可可西里 更新时间:2023-11-01 03:07:00 26 4
gpt4 key购买 nike

我正在尝试简化 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 会识别文件,但它会将它们列在管理器中的“未知架构”和“未命名文件”下。

非常感谢任何关于现在获得正确 Info.plist 的帮助。

我也欢迎有关如何改进脚本和/或更有效地批量构建+归档这些 iOS 应用程序的建议。

注意:

  • 我无法升级到 Xcode 4.2 以上版本,因为这需要(据我所知)OS X 10.7+,而我还无法获得(公司计算机)。

  • 我仍然是一个 bash/shell 的新手,所以对于上面任何丑陋的代码/做法,我深表歉意。

  • 此外,这是针对官方应用程序提交的,而不是针对临时或类似的。

再次感谢您的帮助。

最佳答案

我对存档命令有同样的问题,并通过谷歌找到了这个问题。使用此构建命令会失败:

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

关于ios - 通过终端批量构建和归档 iOS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11526567/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com