小编Cla*_*ges的帖子

如何在Xcode 4.1及更高版本的Xcode启动时关闭重新打开项目

在Xcode 4.1到现在(4.2.1)中,如果我在没有先关闭项目的情况下关闭Xcode,那么下次启动Xcode时项目将自动重新打开.以前我会得到欢迎屏幕.有没有办法改变这个,以便启动欢迎屏幕?

xcode4.1

18
推荐指数
3
解决办法
6589
查看次数

在Xcode 4工作区中,如何将构建设置和配置级联到子项目

概观

我正在使用静态库和Xcode 4工作空间来实现iOS开发中的模块化,这是一种越来越常见的技术.例如,我可能有一个包含App项目的工作区和一个Library项目,如下所示1:

带App和Library的工作区

然后你会有一个方案来构建这些看起来像这样的东西:

方案

我想做的是让"App build"控制它启动的"Library build",至少有两种方式:

  1. 将App配置(例如Debug,AdHoc)映射到任意库配置

  2. 通过-D的某个子集定义,和/或为库构建指定这些子集.

我会在他们自己的章节中讨论这些问题,但值得做一些澄清.

澄清

  • 我在这里使用App/Library作为您可能拥有的任何Superproject/Subproject关系的简单代理.

  • 从我所看到的情况来看,Xcode 3风格的嵌入式子项目在Xcode 4中的工作效果似乎与工作区"同行"不同.我很想知道这件事.

  • 我知道我可以用"运行构建脚本"构建阶段和xcodebuild做几乎任何事情.但我正在尝试在这里的系统中工作,其中依赖项在方案中指定,否则有点松散耦合.

  • 存在库不仅仅用于此项目,因此您不能随意使用特定于此App构建的垃圾来加载它,或者引用特定于App或Workspace的任何内容.对于一般情况,这将包括来自App项目的静态.xcconfig,作为将构建信息从App传递到库的方法.

  • 在工作区外建立图书馆会造成太多牺牲,而不是一种选择.

配置映射

据我了解,构建特定的App配置将:

  1. 如果具有相同名称的库中存在配置,则它将使用该配置构建库.
  2. 否则,它将构建库的活动配置,如库的项目文件中所指定.

据我所知,不依赖于前面提到的run-build-script hack,这就是对子项目构建配置的控制程度.请告诉我不同​​的.

理想情况下,我可以指定(在计划中,大概):

AppConfigA -> LibConfig1
AppConfigB -> LibConfig2
Run Code Online (Sandbox Code Playgroud)

虽然Debug,AdHoc和Release可能是一些有史以来使用的唯一配置,但复杂的项目往往不再适用.

定义

我还没有找到将-D定义从App构建传递到库的方法,而不需要使用xcodebuild,它可以采用例如.xcconfig文件.

可以在Library build run-build-script阶段访问App的构建设置.但是,这样做会在App项目的库中引入依赖关系,这有充分的理由是禁止的(参见Clarifying).但即便如此,我还没有找到一种方法来使用这些设置来直接控制图书馆的构建(很多2).

真是太疯狂了......

我在写这篇文章时提出的一个方案是:

  1. 该库将它的构建配置基于LibraryExternals.xcconfig它自己的项目中的空(虚拟)文件.

  2. 干净的库删除该文件.如果库尚未存在,则库的独立构建将创建一个空库.

  3. 该文件被App Build运行构建脚本阶段覆盖,并包含应用程序想要与库构建进行通信的任何内容.

看起来有点复杂,但我现在正在寻找任何东西.如果没有更好的结果,我会把这个推到一个答案.


1显示的应用程序是Max OS X.我发现命令行应用程序可以进行更简单的测试.同样适用.

2参考 Info.plist预处理,我在调查过程中了解到了这一点.

xcode xcodebuild xcode4

17
推荐指数
1
解决办法
1282
查看次数

set中的数组:为什么NSSet使用allObjects,而NSOrderedSet使用数组?

在Foundation中,如果我想将一个集合转换为一个NSArray,我可以使用:

  • -[NSSet allObjects]
  • -[NSOrderedSet array]

为什么这些不同?

objective-c nsorderedset

16
推荐指数
2
解决办法
8316
查看次数

在Xcode 6中关闭指定的初始化程序检查

我收到了编译错误:

error: convenience initializer missing a 'self' call to another initializer [-Werror,-Wobjc-designated-initializers]
Run Code Online (Sandbox Code Playgroud)

编译检查指定的初始化程序可能是一件好事,但如果我现在不想处理它,我该怎么办呢?

xcode objective-c suppress-warnings designated-initializer

16
推荐指数
2
解决办法
8092
查看次数

xcodebuild:"找不到适用的设备." 导出存档时

从Xcode 7†开始,xcodebuild导出存档步骤一直给我们错误.

构建命令

xcodebuild -exportArchive -archivePath "path/to/Thing.xcarchive" \
        -exportPath "path/to/" \
        -exportOptionsPlist path/to/PackageOptions-adhoc.plist
Run Code Online (Sandbox Code Playgroud)

产量

2015-10-08 16:28:27.409 xcodebuild[62682:464728] [MT] IDEDistribution: Step failed: <IDEDistributionThinningStep: 0x7ff1a42d23f0>: Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo=0x7ff1a72ddd80 {NSLocalizedDescription=No applicable devices found.}
error: exportArchive: No applicable devices found.

Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo=0x7ff1a72ddd80 {NSLocalizedDescription=No applicable devices found.}

** EXPORT FAILED **
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?怎么修?


†7.0和7.0.1,关于小牛队.

xcode xcodebuild rvm xcode7

16
推荐指数
1
解决办法
8192
查看次数

Xcode 7:在`main.m`中触发异常断点,但app正常运行

我为我的项目设置了"All Exceptions"异常断点.在Xcode 7中,它在发射时神秘地发射main.m,但似乎没有任何明显的错误.继续,应用程序正常运行.

即使在Xcode 6中运行项目,现在也会导致此断点触发.

断点的截图

我无法弄清楚造成这种情况的原因.线程没有指出原因是什么.

也许这是故事板中的某种字体问题还是什么?有谁知道修复?

注意:这是C++异常,而不是Objective-C.也许是由于缺少字体.Xcode在iOS 8的Main()中抛出一个异常,带有'all exceptions'断点

xcode objective-c ios xcode7

13
推荐指数
1
解决办法
1846
查看次数

如何为Ruby的RestClient设置用户代理?

我对使用ruby RestClient gem时设置自己的用户代理感兴趣.

http://github.com/archiloque/rest-client

但是,我找不到任何有关如何操作的文档.有什么指针吗?

ruby user-agent rest-client

12
推荐指数
1
解决办法
5804
查看次数

如何获取iOS8 PhotoKit所需的图像尺寸?

我使用下面的代码来获取图像:

[[PHImageManager defaultManager] requestImageForAsset:asset 
targetSize:CGSizeMake(800, 600) 
contentMode:PHImageContentModeAspectFill 
options:options 
resultHandler:^(UIImage *result, NSDictionary *info) {
    NSLog(@"size:%@",NSStringFromCGSize(result.size));                
}];
Run Code Online (Sandbox Code Playgroud)

我要求的图像尺寸为800 x 600,但我的图像尺寸为45 x 60,质量非常差.

如何使用PhotoKit?获取所需的图像尺寸?

iphone image ios ios8 photokit

12
推荐指数
2
解决办法
4823
查看次数

Xcode 7:app测试和UI测试之间的鸿沟是不可架断的?

Xcode 7†有一种直接测试UI的新方法,包括新的测试目标"iOS UI Testing Bundle"(或"OS X").

在此输入图像描述

在UI测试目标中,似乎没有对构成您的App的模型或类的内置访问.例如[UIApplication sharedApplication],您的UI测试无法调用.这意味着"应用程序测试"和"UI测试"存在于可能不可逾越的鸿沟中.

如前所述这里:

问题是Xcode的UI测试不允许访问实际的应用程序.

问题:

  1. 这个鸿沟可以弥合吗?如果是这样,详细说明如何使用构建和链接器设置以及可能xcodeproj在github上工作.
  2. 在Apple文档中,可以找到明确说明这种鸿沟的地方.

†在撰写本文时,测试版软件.

xcode automated-tests ui-testing xcode7 xcode-ui-testing

12
推荐指数
1
解决办法
957
查看次数

Xcode 10:如何切换到旧的构建系统?

Xcode 10中的新构建系统似乎存在一些问题.如何切换到旧的(遗留)构建系统?

xcode xcode10 legacy-build-system

12
推荐指数
1
解决办法
7505
查看次数