我正在运行我xctests使用xcodebuild并需要传入一些environment variables.在下面的例子ACCOUNT_ID和HOST_URL.
我尝试将变量作为环境变量传递并使用从测试中访问它们 getenv ("ACCOUNT_ID")
xcodebuild -project CalculatorTestClient.xcodeproj -scheme CalculatorTestClient -destination '%s' ACCOUNT_ID=%s HOST_URL=%s test"
并将它们传递进去user defaults并使用它们访问它们[[NSUserDefaults standardUserDefaults] valueForKey:@"HOST_URL"];
xcodebuild -project CalculatorTestClient.xcodeproj -scheme CalculatorTestClient -destination '%s' ACCOUNT_ID=%s HOST_URL=%s test"
这两种方法都不适用于我.从命令行传递用户定义变量的最简单方法是什么?
当我尝试使用xcodebuild为模拟器构建我的项目时,我面临着奇怪的错误(直接使用Xcode构建它时工作正常).
09:54:55 - tito@lt0311 Game> xcrun xcodebuild -verbose -scheme Game -configuration Debug -sdk iphoneos9.2 -derivedDataPath builds clean build | xcpretty
? Cleaning Game/Game [Debug]
? Check Dependencies
? Clean Succeeded
? Building Game/Game [Debug]
? Check Dependencies
? Compiling AppDelegate.m
? Compiling main.m
? Compiling ViewController.m
? Compiling ViewController.m
? Compiling AppDelegate.m
? Compiling main.m
? Compiling Main.storyboard
? Compiling LaunchScreen.storyboard
? Processing Info.plist
? Touching Game.app
? Signing builds/Build/Products/Debug-iphoneos/Game.app
? Build Succeeded
09:55:06 - tito@lt0311 Game> xcrun xcodebuild -verbose …Run Code Online (Sandbox Code Playgroud) Xcode 11 正在重新编译(几乎?)我的整个项目,即使我只是更改本地私有变量,或更改本地范围内的常量值,有时甚至在本地私有函数范围内。我有时可以按预期通过快速构建获得 2 或 3 个更改,但很快它决定再次重新编译所有内容(这需要太长时间)。
任何想法可能会发生什么?Xcode 是否无法确定发生了什么变化,为什么要重新编译这么多其他东西(甚至其他模块)。
任何建议都非常感谢,谢谢!
我们是iOS(和其他移动平台)开发人员,我们的销售人员通常需要为客户提供我们的应用演示.我们要做的是自动化流程,以便销售人员可以访问自助服务网站并将应用程序提供给他们的模拟器.
使用xcodebuild,我们可以启动构建过程,然后将其作为安全下载链接(通过我们的Intranet)呈现,但所有让他们做的就是将其安装到他们的iOS设备上.这是可以的,除了路上的每个人都没有iOS设备(或者有些旧的iPod触摸,而且速度超慢).所以,我认为必须有一种方法将它安装在他们的模拟器中.
我看到其他人通过压缩模拟器目录并将其放在另一个目录上来破解它:http: //discussions.apple.com/thread.jspa?messageID = 7680994
将目标设置为模拟器,释放.部署.停止iPhone模拟器.从〜/ Library/Application Support/iPhone模拟器/用户/应用程序中拉出您的应用程序/将其发送给其他人,并让该人知道将其解压缩到该文件夹中,而不是启动iPhone模拟器 - 您就完成了.
我想我们可以做到这一点,但它似乎没有确定性(或者至少,脚本更难).我更喜欢使用.app,但如果唯一的方法就是使用这种hacky复制和粘贴操作,这就是我们必须要做的.
有什么想法吗?
每当我从XCode运行'build and archive'时,我都会收到以下消息:
无法将dSYM文件复制到存档中.
请确保您的应用程序已将"调试信息格式"构建设置设置为"DWARF with dSYM File".
我检查了我的调试格式,并将其设置为建议值(带有dSYM的DWARF).有没有其他人遇到这个问题,如果是这样,你是如何解决它的?
我目前正在尝试使用此命令行构建.xcarchive:
xcodebuild -project onething.xcodeproj -target onething archive
Run Code Online (Sandbox Code Playgroud)
这将.xcarchive置于难以找到的文件位置,所以我想知道是否有一个配置能够设置存档的文件位置?
这条线在我的iOS项目的构建日志中重复了很多次(由jenkins构建).
arch已存在于fat dylib中
有什么值得担心的吗?它构建良好,但它有点难以阅读构建日志与重复数百次.
我正在使用ARC和iOS 7.
我没有更多的信息要提供,因为我对这个问题一无所知,任何对这个消息的搜索都会让我想到这个问题.
我在xcodebuild(XCode 7.1)的捆绑资源复制阶段获得以下内容:
2015-11-03 22:16:28.218 xcodebuild [28202:300463] DVTAssertions:/Library/Caches/com.apple.xbs/Sources/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-9061/Xcode3Core/LegacyProjects/Frameworks/DevToolsCore/DevToolsCore/BuildSystem中的警告/Runtime/PBXTargetBuildContext.mm:739详细信息: 取消命令的意外成功退出代码
<C0505:'CpResource Foo.json':P10>对象:<PBXTargetBuildContext: 0x7faec015a440>方法:
-createCommandInvocationRecordFromInvocation:线程:<NSThread: 0x7faebc8cc070>{number = 10,name =(null)}请在http://bugreport.apple.com上提交一个错误 警告信息和您可以提供的任何有用信息.
我有~170项我正在复制,但由于某些原因,其中一些项目给了我这个错误.
编辑 - 我刚刚再次运行命令,现在它工作,所以它似乎不确定.
环顾四周后,我认为我真正想做的是生成一个未签名的 IPA 文件。我想要一个像pwn20wndstuff/Undecimus这样的设置,您可以在其中下载 IPA 文件并使用 Cydia Impactor 安装它。我读到,对于 Ad Hoc 分发,您需要添加用户的 UDID,但我不想这样做。每个版本的 Xcode 似乎都可以通过不同的方式生成未签名的 IPA。但我找不到 Xcode 12 的答案。或者找不到适用于所有版本 Xcode 的标准指南/脚本。
\n理想的答案是我可以运行一个命令,该命令将构建我的项目并将未签名的 IPA 导出到指定目录,该目录可以安装在所有支持的 iOS 版本上的任何 iPhone 上。也许我下面的资源已经拥有将其组合在一起所需的所有部分。但我不太擅长,xcodebuild所以我需要这里有人的帮助才能将它们组合在一起。
我在其他答案中看到的内容:
\n\n\n可以使用以下命令轻松创建未签名的 .xcarchive:
\n
xcodebuild archive -project myproj.xcodeproj -scheme \'the scheme\' -archivePath unsigned.xcarchive -configuration Release CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO\nRun Code Online (Sandbox Code Playgroud)\n\n\n然而,它
\nexportOptionsPlist需要一个“方法”,并且它接受的每个方法似乎都签署了实际的 IPA。我可以在导出 IPA 后手动将其删除,但我希望其中有一个功能
\nxcodebuild可以让我开箱即用地执行此操作。这可能吗?如果是这样,怎么办?
\n
我们可以通过多个命令从命令行构建和运行 Swift 代码/项目,而无需使用 Xcode。我听说过xcodebuild,xcrun并swift用于 Xcode 开发。我确实使用过fastlane,但我不太了解在幕后驱动它的工具。
我是一名使用 Mac 的 iOS 开发人员。我使用 Xcode 进行开发,因此之前没有使用过这些命令行工具。
每个命令之间有什么区别?在某些情况下,我最好使用其中一种而不是另一种?