我有一个脚本,我使用osascript从Xcode 4中的运行脚本构建阶段运行.此脚本执行一些检查以尝试捕获plists等中的任何人为错误.
但是,当开发人员选择"存档"而不是每次构建时运行它时,我只想运行此脚本.
有没有办法测试这种情况?在Shell脚本或Apple脚本中?
出于CI的目的,我需要能够在我们的每晚构建中生成XCARCHIVE和IPA文件.IPA适用于我们的测试人员,使用我们的临时密钥签名,XCARCHIVE将发送给客户端,以便他们可以将其导入Xcode并在他们满意时将其提交到应用商店.
通过一些谷歌搜索来生成IPA很简单,但是如何生成.XCARCHIVE文件是我的目标.我发现的最接近的是:
xcodebuild -scheme myscheme archive
Run Code Online (Sandbox Code Playgroud)
但是,这会将.xcarchive存储在一些难以找到的文件夹中,例如:
/Users/me/Library/Developer/Xcode/Archives/2011-12-14/MyApp 14-12-11 11.42 AM.xcarchive
Run Code Online (Sandbox Code Playgroud)
有没有办法控制存档的放置位置,名称是什么,以及如何避免重新编译它?我想最好的结果是从你执行'xcodebuild构建'时生成的DSYM和APP生成xcarchive - 这可能吗?
构建Xcode项目的命令行工具xcodebuild在Xcode 4中提供了一个新的构建操作:archive.
来自man xcodebuild:
archive Archive a scheme from the build root (SYMROOT). This requires specifying
a workspace and scheme.
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我尝试使用它时,我收到一个错误:
$ xcodebuild archive -workspace SimpleTestApp.xcworkspace -scheme SimpleTestApp
xcodebuild: error: Failed to build workspace SimpleTestApp with scheme SimpleTestApp.
Reason: The selected run destination is not valid for this action.
Run Code Online (Sandbox Code Playgroud)
我的印象是这实际上还没有奏效.有没有人得到它的工作?如果是这样,怎么样?
.mobileprovision文件的结构如下所示:
<!-- small binary data -->
<?xml version="1.0" encoding="UTF-8"?>
<!-- plist data -->
</plist>
<!-- large binary data -->
Run Code Online (Sandbox Code Playgroud)
我有几个问题:
具体来说,当上面的Q1和Q3都得到回答时,我会将这个问题视为已回答(并同时授予+100奖励).
我有一个使用xcodebuild进行发布构建的jenkins实例.然后我有一个脚本(在Jenkins上)使用xcrun创建.ipa文件.这对我们来说一直很好,直到现在.现在我们有一个watchkit应用程序,从这个过程创建的.ipa文件与你创建存档构建并从Xcode导出它时创建的文件不同.
Xcode中导出的.ipa有一个'Payload'文件夹,一个'Symbols'文件夹(可能是可选的)和一个'WatchKitSupport'文件夹.从xcrun生成的ipa没有'Symbols'或'WatchKitSupport'文件夹.在此处查看有关结构的更多信息:https://stackoverflow.com/a/29400301/327386
我在SO上看过这篇文章:https://stackoverflow.com/a/19856005/327386,它有命令存档和导出.ipa版本(类似于Xcode进程),但即使这样也没有创建有问题的新文件夹.
有没有人知道是否有办法使用命令行工具创建一个等同于Xcode创建的.ipa文件?我没有找到任何官方文件
什么是从命令行生成IPA文件的最佳方法?
我在xcode 4.2上并使用以下命令生成存档:
xcodebuild -scheme AppStore clean archive
Run Code Online (Sandbox Code Playgroud)
在进行协同设计后,这将在构建输出目录中生成.dSYM和.app文件.我该如何继续生成.ipa文件?换句话说,我正在寻找在GUI中执行以下操作的命令行等效项
谢谢!
因此,对于众所周知的XCode4,如果只有一个目标将"跳过安装"设置为"否",则只能使用"构建和归档"来创建.IPAs.
我的问题是我们的项目包含多个目标,需要在某些时候以.ipas的形式发布.每次我需要构建一个.ipa时,在每个上设置"Skip Install"很烦人.有没有人知道更好的方法,也许使用我见过的那些可怕的"配置文件"?目前,我正在使用.xarchive中的.app并以旧方式构建.IPA,将其打包在Payload文件夹中.
我想找到一种方法来编译和打包我们的iPhone应用程序,作为我们的自动夜间构建的一部分.目前,我们总是必须手动启动在盒子上安装了adhoc证书的共享Mac上的构建,然后将生成的测试二进制文件发布到测试人员可以将其拉下并安装它们的地方.
有没有人找到适合他们的自动化方法?
iphone build-automation xcode continuous-integration build-process
Transporter not found at path: /usr/local/itms/bin/iTMSTransporter.
You should reinstall the application.
所以我检查了路径/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/MacOS/itms/bin并且iTMSTransporter存在于那里(它与xcode一起安装).错误中给出的路径是手动安装传输器的位置.我如何做到这一点,当我尝试提交我的应用程序时xcode组织者使用路径是通过xcode安装iTMSTransporter?我很困惑为什么它首先要这样做.
我正在更新我的存档过程以使其更易于使用.
我已经创建了一些方案和构建配置,避免我手动更新2个档案之间的常量,但现在我想更深入.
编辑方案时,"存档"部分允许我们设置存档名称.默认情况下,它设置为方案名称,但我想让它动态化.例如,我喜欢它<CFBundleIdentifier>-<CFBundleShortVersionString>-<CFBundleVersion>.
这甚至可能吗?如果有,怎么样?
ios ×6
xcode ×6
xcode4 ×4
command-line ×3
ipa ×3
archive ×2
build ×2
iphone ×2
cocoa-touch ×1
jenkins ×1
plist ×1
xcodebuild ×1