当我使用xcodebuild archive
从命令行进行存档时,如何获取新创建的存档的路径?我想继续使用-exportArchive
命令创建一个adhoc发行版。
我知道我可以定义一个-archivePath
,但是如果我这样做,那么Organizer不知道这个档案的位置,所以这没有用。
思想?
答案 0 :(得分:4)
您只需创建一个包含要生成的存档路径的变量即可。然后在要导出时使用相同的路径
$ARCHIVE_PATH="<path_of_your_archive>" # can be something like "build/app_name.xcarchive"
# ARCHIVING
xcodebuild archive \
-workspace "${APP_NAME}.xcworkspace" \
-configuration $CONFIGUATION \
-scheme $SCHEME \
-archivePath $ARCHIVE_PATH
# EXPORTING
xcodebuild -exportArchive \
-archivePath $ARCHIVE_PATH} \
-exportPath $OUTPUT_DIRECTORY \
-exportOptionsPlist exportPlist.plist
希望这对你有所帮助!
答案 1 :(得分:1)
有 $ARCHIVE_PATH
变量仅在存档后操作脚本中可用
编辑:
$ARCHIVE_PATH
返回一种不考虑日期、时间或重复后缀的通用路径。
改用 $ARCHIVE_PRODUCTS_PATH
。或者实际上REAL_ARCHIVE_PATH=$(dirname ${ARCHIVE_PRODUCTS_PATH})
。
答案 2 :(得分:0)
假设您的计算机上有标准的存档路径,我将使用此python代码为我获取当前的构建存档路径。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import datetime
class Xcodebuild:
@staticmethod
def current_archive_path():
# The default archives path is as follows
#
# /Users/<USER>/Library/Developer/Xcode/Archives/<YYYY>-<MM>-<DD>
#
home = os.path.expanduser("~")
archives_path = os.path.join(home, "Library/Developer/Xcode/Archives")
if not os.path.isdir(archives_path):
exit("error: Xcode archives directory not found at {}".format(archives_path))
dirname = str(datetime.date.today())
archive_path = os.path.join(archives_path, dirname)
if not os.path.exists(archive_path):
os.makedirs(archive_path)
return archive_path