Tag: macos

Xcode服务器和机器人

自从Xcode 5推出以来,我一直对Apple的持续集成产品感到非常好奇。当时,我发现它不适合我从事的项目。 虽然我一直在关注它的进展,但自上次尝试以来已经过去了将近五年。 我有机会使用许多CI系统:Jenkins,Cruise Control,TeamCity,TravisCI和CircleCI。 其中,我更喜欢TravisCI。 特别地,我真的很喜欢将所有配置都保留在仓库本身中的模型。 我还发现他们的系统既可靠又有能力。 但是,对于封闭源项目,TravisCI相当昂贵。 因此,我配备了新的Mac mini,以为我会再次尝试Xcode Bots。 安装 安装Xcode Server非常简单。 只需下载Xcode,启动它,然后单击“开关”即可。 完成此操作后,将引导您设置用户以供服务器使用。 我喜欢为CI系统使用专用用户帐户的想法,这是一种常见的方法。 虽然我确实是在单独的机器上进行设置的,但我认为这对于单机设置也可以正常工作。 创建一个机器人 “ Bot”一词有点奇怪,但在其他系统中大致对应于“ job”或“ project”。 Xcode有一个向导,它将指导您完成该过程。 我有种感觉,尽管这个向导在第一次尝试时,即使是适度的复杂性,大多数项目也无法实现。 在让我的第一个Bot成功工作之前,我经历了许多错误的开始。 公平地讲,这是我几乎已经完成的所有CI工作的经验。 也许我运气不好… 我遇到了两个问题。 首先是我的Bot无法访问所需的git存储库。 第二个是设置和安装构建所需的依赖项。 解决这些问题并不需要太多工作。 Git仓库和SSH 毫不奇怪,Bot需要能够检出您的代码,然后才能执行其工作。 Bot配置有一些不同的选项可用于检出其存储库。 您可以在Bot创建UI中配置许多不同的基于SSH密钥的设置。 我选择使用“特定于Bot的SSH密钥”选项。 这提供了一个公共密钥,我使用该密钥来使机器人访问存储库。 至此,我的Bot已成功签出并构建了我的项目。 但是,由于缺少依赖关系,构建立即失败。 依存关系 我使用迦太基管理项目中的依赖项。 我也不会将任何依赖项源或工件检入源代码控制中。 这意味着仅检查源代码不足以构建项目。 机器人程序有一种机制,被称为“触发器”,可以运行集成前和集成后的脚本。 这些采取由Xcode Server用户帐户执行的bash脚本的形式。 这是安装依赖项并照顾其他环境设置的理想方法。 但是,就我而言,依赖管理器本身需要首先安装。 我通过登录到构建机器并通过自制程序安装Carthage来完成此操作。 这使迦太基对机器的所有用户可用。 但是,这还不够,因为Xcode Server用户仍无法访问Carthage存储库。 事实证明,集成前触发器与签出存储库所使用的每机器人SSH密钥不同。 […]

如何在不使用第三方库的情况下在swift2中下载页面?

我正试图在应用程序中显示下载的HTML页面。 请解释最简单的方法,而不使用任何第三方库。 干杯,

在Objective-C中以编程方式创buildUI元素

我一直在努力自动创buildUI元素的一些方面,并创build了这个似乎工作的方法: – (void) viewDidLoad { [super viewDidLoad]; button = [self createButton:button xPos:30 yPos:100 width:100 height:30 caption:@"autoButton" textPos:NSTextAlignmentCenter textClr:[UIColor blackColor] backClr:[UIColor yellowColor]]; [self.view addSubview: button]; } – (UIButton *) createButton:(UIButton *)control xPos:(CGFloat)x yPos:(CGFloat)y width:(CGFloat)width height:(CGFloat)height caption:(NSString *)caption textPos:(NSTextAlignmentCenter)textPosition textClr:(UIColor *)textColor backClr:(UIColor *)backColor { control = [[UIButton alloc] initWithFrame: CGRectMake(x, y, width, height)]; [control setTitle:caption forState:UIControlStateNormal]; control.titleLabel.textAlignment […]

在Xcode 5.0中的iCloud Ubiquity容器奇怪的问题

我已经在商店里分发了我的iPad / iPhone通用应用程序“消费”。 该应用程序使用iCloud UIDocument在设备之间共享数据库。 工作正常;-)现在我想开发一个OS X的垂饰访问相同的iOS iCloud文档。 在Xcode / Capabilities中,我尝试将iOS项目的Ubiquity容器添加到Mac项目,但是我得到一个红色的“!” 在Mac项目中。 如果我点击“修复问题”,“!” 在Mac项目上消失,但出现在iOS项目上。 任何提示?

iPad作为使用蓝牙的Mac键盘

我想用我的iPad作为使用蓝牙的Mac-Mini / MacBook的键盘。 所以请build议我如何做到这一点。 请提供给我关于此的任何链接。 谢谢

AVPlayer不显示video

我想在游戏开始时播放电影。 我正在使用AVPlayer来做到这一点。 我的问题是,当我注册一个KVO来检查我的AVPlayer的状态时,我的游戏照常进行,没有等待video加载和完成。 因此,我只能听到我的.mov文件中的audio,并且看不到任何video(因为我的游戏已经开始)。 我希望video加载和完成之前进行游戏。 代码如下: @interface RMVideoView : NSView { NSURL* _videoURL; AVPlayer* _player; AVPlayerLayer* _playerLayer; } @property (nonatomic, readonly, strong) AVPlayer* player; @property (nonatomic, readonly, strong) AVPlayerLayer* playerLayer; @property (nonatomic, retain) NSURL* videoURL; – (void) play; @end static void *RMVideoViewPlayerLayerReadyForDisplay = &RMVideoViewPlayerLayerReadyForDisplay; static void *RMVideoViewPlayerItemStatusContext = &RMVideoViewPlayerItemStatusContext; @interface RMVideoView() – (void)onError:(NSError*)error; – (void)onReadyToPlay; […]

为什么我的JavaScript在Safari的严格模式下无法正常工作?

我build立了一个使用一些简单的JavaScript的网站。 经过一些testing后,我发现我的JavaScript在iOS设备上的performance与我可以testing的所有其他设备相比有很大不同。 经过几个小时的反复试验,我发现意外的行为只发生在严格的模式下,但是由于我在苹果开发和testing的软件/硬件方面有限,所以很难进一步排除这个问题。 为什么我的代码不能在严格的模式下工作,只有某些(苹果,特别是)设备?

NSFetchRequest setPropertiesToGroupBy:返回匹配的所有实体吗?

我正在开发一个应用程序的iOS,我找不到有关新的NSFetchRequest setPropertiesToGroupBy:方法的文档。 我有一堆与多个实体B对象有关系的实体A对象。 我想获取匹配特定模式的所有实体B对象,并将它们按实体A分组。这样我就不必为每个实体A单独获取数据库了。结果理想情况下是结构化的,以便我可以迭代等于实体As的组,然后将具有与来自一个获取请求的模式匹配的所有实体Bs。 我可以看到setPropertiesToGroupBy:方法应该让我通过反B-> A关系进行分组,并返回一个NSDictionaries数组。 但这是否意味着NSArray每个项目都对应于实体A的一个组? 而且相应的NSManagedObject子类可以在NSDictionary某处find?

如何在xcode for mac中为AVPlayer制作音量滑块

所以我有我的电台应用程序的简单代码: -(IBAction)europaPlus:(id)sender{ NSLog(@"EuropaPlus work"); if (clicked == 0) { clicked = 1; NSString *urlAddress = @"http://cast.europaplus.ua/europaplus.aac"; NSURL *urlStream = [NSURL URLWithString:urlAddress]; radioPlus = [[AVPlayer alloc] initWithURL:urlStream]; [radioPlus play];} else { NSLog(@"EuropaPlus not work"); [radioPlus release]; clicked = 0; } } 此外,我只使用AVPLAYER进行URL连接,但是如何在MAC OS中对AVPlayer进行音量控制。 我知道在IOS中的MPMVolumeControl,但我有Mac OS项目。谢谢。

Swift中的子类不会inheritance它的父类的初始化

当我尝试子类化NSBezierPath时,我偶然发现了一个非常奇怪的问题。 以下是我的子类的定义: class OSBezierPath: NSBezierPath { func addLineToPoint(point:CGPoint) { self.lineToPoint(point) } } 除了我无法访问NSBezierPath一些初始化程序这个事实之外,这个子类还是NSBezierPath 。 例如,下面的行是无效的: let path = OSBezierPath(ovalInRect: rect) 编译器引发错误 在调用中额外的参数“ovalInRect” 这个错误的原因 这个错误的原因在另一个问题中得到了很好的解释。 然而,build议的答案不适合我,因为我试图实现的是在iOS和Mac OS上使用OSBezierPath 。 我原来的代码是这样读的: #if os(iOS) typealias OSBezierPath = UIBezierPath #else class OSBezierPath: NSBezierPath { func addLineToPoint(point:CGPoint) { self.lineToPoint(point) } } #endif 这个代码不起作用,但是我发现了两个解决方法,比我们在另一个问题中提出的答案更优雅。