我有许多功能和用户界面相似的应用程序.我通过从.plist文件中获取变量来创建用户界面.例如,我从我获取数据的地方保存了API的来源.
创建新应用程序只需更改.plist文件中的值并重建应用程序,最后将其提交到App Store.此外,我还需要创建Ad-Hoc配置文件并构建测试版本.
我希望自动化这个过程.为此,我需要:
通过命令行界面构建应用程序.
将二进制文件和其他所需文件/信息(应用程序图标,说明等)上传到iTunes Connect.
我应该看哪些指针?
使用xcodebuild构建时遇到问题.我的项目/应用程序使用Xcode - gui构建得很好.它只是没有找到/构建libcryptopp库,这是构建过程的一部分.
错误是:
clang: error: no such file or directory: '/Users/builder/repo/ioskpay/xcode-cryptopp/cryptopp/build/Release-iphoneos/libcryptopp.a'
Run Code Online (Sandbox Code Playgroud)
此特定文件应该从主应用程序内的另一个项目派生 - xcodebuild只是没有正确指向正确的文件夹,该文件夹应该是:
~/Library/Developer/Xcode/DerivedData
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我们的目标是在持续集成环境中执行我们的单元测试(Jenkins)
(我认为每个问题都必须说明一个人想要实现的目标.也许这个问题实际上可以通过一种非常不同的方式解决)
首先,我们正在讨论具体的,自行开发的硬件.我希望持续集成测试告诉我是否有人在没有告诉所有开发人员的情况下改变了盒子的行为(是的,是的,我知道,这样的事情永远不会发生......)
其次,我们的一些(并非所有)连接使用默认无效的证书,因此我们有代码来检查证书的有效性(SecTrustEvaluate等).当然,理想情况下,我们的测试也会测试该代码.但这似乎太多了.
第三:嗯,如果我能得到真正的交易,为什么我要嘲笑任何东西?IDE没有问题,为什么要命令行.
如果我想要可预测性,我会YES在所有测试中返回;)(我已经看到人们这样做了).不,我想知道代码是否真正适用于我们的设备.这是某种变态的欲望吗?
从命令行运行测试听起来非常简单,但是
xcodebuild -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO clean test
Run Code Online (Sandbox Code Playgroud)
导致一个丑陋的错误:
unsupported build action 'test'
Run Code Online (Sandbox Code Playgroud)
所以我在网上搜索了一篇关于从命令行运行OCUnit测试的文章.
我按照所有步骤操作,我可以从命令行运行我的测试,如下所示:
xcodebuild -scheme CITests -sdk iphonesimulator TEST_AFTER_BUILD=YES ONLY_ACTIVE_ARCH=NO clean build
Run Code Online (Sandbox Code Playgroud)
但是,现在对SSL服务器的任何NSURLConnection都将失败,因为"此服务器的证书无效.".从命令行运行测试时,我听说过钥匙串问题,但这是真的吗?是否拒绝任何SSL连接?
从https://github.com/below/SSLTestDemo获取示例.打开它,然后使用Xcode自己的Test⌘U命令运行样本测试.测试应该成功.
现在在命令行上运行测试:
xcodebuild -scheme CITests -sdk iphonesimulator TEST_AFTER_BUILD=YES ONLY_ACTIVE_ARCH=NO clean build
Run Code Online (Sandbox Code Playgroud)
由于"此服务器的证书无效",测试失败.错误.
任何输入都表示赞赏!
我注意到在xcodebuildman的页面中有两个选项.
-only-testing:TEST-IDENTIFIER
Run Code Online (Sandbox Code Playgroud)
通过指定包含和排除其他测试的测试来约束测试
-skip-testing:TEST-IDENTIFIER
Run Code Online (Sandbox Code Playgroud)
通过指定要排除的测试来约束测试,但包括其他测试
我尝试了什么:
xcodebuild -workspace MyWorkSpace.xcworkspace /
-sdk iphonesimulator /
-destination id=7F52F302-C6AF-4215-B269-39A6F9913D5B /
-scheme SCHEME-iOS /
test -only-testing:???
Run Code Online (Sandbox Code Playgroud)
什么TEST-IDENTIFIER意思?
我正在使用命令行xcodebuild工具从Xcode档案中导出.ipa文件.它在Xcode 8.3.3中运行良好.相同的设置已停止使用Xcode 9 beta.现在它失败并出现此错误:
IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7fc309310550>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed."
Run Code Online (Sandbox Code Playgroud)
看来Xcode 9找不到配置文件,但为什么呢?
将xcode4.1/ios4升级到xcode4.2/ios5后,我在App加载时甚至在它进入之前遇到崩溃main().
我已经设定了一个断点,main()但它永远不会达到.

Base SDK4.3 编译Xcode 4.1中的项目在iOS 4.x和iOS 5上正常工作.Base SDK5.0 编译Xcode 4.2中的相同项目在4.x上工作正常但在iOS 5中崩溃,无论是在模拟器上还是在设备上.
与EXC_BAD_ACCESS崩溃

呼叫列表,所有系统呼叫,甚至main()还没有被呼叫.
我最好的猜测是加载一个库有问题,但知道如何跟踪它!
Derived Data文件夹我正在尝试使用xcodebuild生成一个xcarchive,我稍后可以使用添加了Xcode 5的新功能将其导出为.ipa.
这非常好用:
xcodebuild -workspace 'MyWorkspace.xcworkspace' -scheme 'MyScheme' -configuration 'Release' -archivePath tmp.xcarchive archive
xcodebuild -exportArchive -exportFormat IPA -archivePath tmp.xcarchive -exportPath app.ipa -exportWithOriginalSigningIdentity
Run Code Online (Sandbox Code Playgroud)
但是只要我将自定义构建设置添加到archive命令:
-derivedDataPath build SYMROOT=build/build.sym DSTROOT=build/build.dst OBJROOT=build/build.obj SHARED_PRECOMPS_DIR=build/build.pch
Run Code Online (Sandbox Code Playgroud)
生成的.xcarchive为空,但没有错误.
有任何想法吗?
我正在为iOS开发一个嵌入式框架.为了制作通用脂肪(使用模拟器和设备切片),我使用脚本创建了一个聚合目标,该脚本使用xcodebuild和lipo命令生成它,就像许多人一样.
使用XCode 7.x,我必须使用BITCODE_GENERATION_MODE = bitcode添加用户定义的设置才能启用它,但是自上次XCode 7.3发布以来,这已停止工作.
我已经尝试过在互联网上找到的所有内容,例如添加OTHER_CFLAGS="-fembed-bitcode",但任何事情都像以前一样工作......
我在构建日志中看到过这个:
无论我做什么,ENABLE_BITCODE都是NO.
自XCode 7.3以来,有没有人尝试使用xcodebuild命令创建一个通用胖框架?
经过更新Xcode8.3,选项' -exportSigningIdentity ', ' -exportProvisioningProfile '和' -exportFormat '从删除' xcodebuild联编-exportArchive '.
当我尝试获取分发应用程序时,我收到以下错误:
xcodebuild:错误:无效选项'-exportProvisioningProfile'.
那么当项目设置启用自动签名时,如何从MyApp.xcarchive获取分发MyApp.ipa?
Xcode 11 正在重新编译(几乎?)我的整个项目,即使我只是更改本地私有变量,或更改本地范围内的常量值,有时甚至在本地私有函数范围内。我有时可以按预期通过快速构建获得 2 或 3 个更改,但很快它决定再次重新编译所有内容(这需要太长时间)。
任何想法可能会发生什么?Xcode 是否无法确定发生了什么变化,为什么要重新编译这么多其他东西(甚至其他模块)。
任何建议都非常感谢,谢谢!