小编Dmy*_*tro的帖子

使用Jenkins/Hudson作为iOS和Mac开发的持续集成时,缺少钥匙串中的证书和密钥

我正在尝试改进iOS的Hudson CI,并在系统启动后立即启动Hudson.为此,我使用以下launchd脚本:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>Hudson CI</string>
    <key>ProgramArguments</key>
    <array>
    <string>/usr/bin/java</string>
    <string>-jar</string>
    <string>/Users/user/Hudson/hudson.war</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>UserName</key>
    <string>user</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是当由Hudson启动的xcodebuild尝试签署应用程序时,它失败了,因为它无法在钥匙串中找到正确的密钥/证书.但是密钥/证书对是存在的,因为如果我从命令行启动Hudson它正常工作.

你知道为什么会这样吗?

hudson keychain launchd ios jenkins

41
推荐指数
3
解决办法
2万
查看次数

从后台线程向服务器的异步请求

当我尝试从后台线程向服务器发出异步请求时,我遇到了问题.我从来没有得到过这些要求的结果.显示问题的简单示例:

@protocol AsyncImgRequestDelegate
-(void) imageDownloadDidFinish:(UIImage*) img;
@end


@interface AsyncImgRequest : NSObject
{
 NSMutableData* receivedData;
 id<AsyncImgRequestDelegate> delegate;
}

@property (nonatomic,retain) id<AsyncImgRequestDelegate> delegate;

-(void) downloadImage:(NSString*) url ;

@end



@implementation AsyncImgRequest
-(void) downloadImage:(NSString*) url 
{  
 NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:url]
             cachePolicy:NSURLRequestUseProtocolCachePolicy
            timeoutInterval:20.0];
 NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
 if (theConnection) {
  receivedData=[[NSMutableData data] retain];
 } else {
 }  

}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
  [delegate imageDownloadDidFinish:[UIImage imageWithData:receivedData]];
  [connection release];
  [receivedData release];
}
@end
Run Code Online (Sandbox Code Playgroud)

然后我从主线程中调用它

asyncImgRequest = [[AsyncImgRequest alloc] init];
asyncImgRequest.delegate = self; 
[self performSelectorInBackground:@selector(downloadImage) withObject:nil];
Run Code Online (Sandbox Code Playgroud)

方法downloadImage如下: …

iphone objective-c nsurlconnection

37
推荐指数
1
解决办法
2万
查看次数

如何获取UIWebView用户代理

我在使用一台远程服务器时遇到问题.我的应用程序使用[NSData initWithContentsOfURL:]方法向服务器发出请求,作为响应,我得到了我打开的网站的网址UIWebView.

问题是这些请求具有不同的User-Agent,并且服务器无法正确地为我服务,因为它期望我使用相同的User-Agent发送所有请求.我知道如何更改用户代理(例如,在UIWebView(iPhone SDK)中更改用户代理)但我真正想要的是以某种方式获取UIWebView用户代理并将其设置为[NSData initWithContentsOfURL:]以避免服务器端出现问题

iphone user-agent uiwebview ios4

26
推荐指数
2
解决办法
2万
查看次数

将CFNetwork版本号链接到iOS版本的列表

我想知道是否有人有一个链接CFNetwork版本号到iOS版本的列表?我找到了OSX CFNetwork版本的列表, 但它已经很老了.

cfnetwork ios4

22
推荐指数
1
解决办法
1万
查看次数

私下符合协议

有没有办法隐藏最终用户的协议?我会试着详细描述我想要的东西.我有类我们称之为EndUserClass,它符合一些协议,比方说HiddenClassDelegate和我希望隐藏的最终用户协议.代码如下所示:

@interface EndUserClass : NSObject  <HiddenClassDelegate>
{
  // .....
}   

@end
Run Code Online (Sandbox Code Playgroud)

我希望使用以下声明保持相同的功能:

@interface EndUserClass : NSObject  
{
  // .....
}   

@end
Run Code Online (Sandbox Code Playgroud)

有没有办法私下遵守协议?我知道我可以在类声明中跳过委托,但它给出了我不想要的编译器警告

cocoa-touch objective-c

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

xcodebuild的CODE_SIGN_IDENTITY参数(Xcode4)

我正在使用xcodebuildXcode3附带的实用程序来自动化我在Hudson下的构建.该命令如下所示:

xcodebuild -project Project.xcodeproj -target Target -configuration Release -sdk iphoneos CODE_SIGN_IDENTITY[sdk=iphoneos*]="iPhone Distribution:XXXXXX"
Run Code Online (Sandbox Code Playgroud)

我正在尝试对Xcode4使用相同的命令,但似乎xcodebuild只是忽略了CODE_SIGN_IDENTITY参数和符号,其中包含为Xcode中的目标选择的配置文件.

这对我来说非常重要,因为我必须使用3-4个不同的配置文件签署构建.它适用于Xcode3,但不适用于Xcode4.

知道如何解决这个问题吗?

shell xcodebuild ios4 xcode4

9
推荐指数
2
解决办法
4万
查看次数

用于从Apple开发站点获取配置文件的API

我想知道是否可以使用API​​从Apple Developer Portal获取最新的配置文件?我已经建立了针对iOS项目CI,但我需要更新时,它改变,所以我会很高兴,以及这个过程自动化手动每次供应曲线.谢谢

continuous-integration ios4 ios

7
推荐指数
2
解决办法
4896
查看次数

为CALayer带来SubSubviewToFront

我想知道是否有办法将图层置于其他视图层之上.喜欢的东西bringSubviewToFront确实为UIView类.我认为它可以用zPosition属性完成,CALayer但这意味着我必须检查zPosition所有层,然后设置适当的值.

提前致谢.

iphone calayer

5
推荐指数
1
解决办法
5422
查看次数

使用xcodebuild启动clang静态分析器

我正在尝试在hudson构建服务器上设置clang静态分析器,如果我按照此博客文章中的建议我会遇到以下错误:

cc1obj: error: unrecognized command line option "-fdiagnostics-print-source-range-info"
cc1obj: warnings being treated as errors
cc1obj: warning: -Wuninitialized is not supported without -O
Command /usr/local/bin/libexec/ccc-analyzer failed with exit code 1
Command /usr/local/bin/libexec/ccc-analyzer failed with exit code 1
Run Code Online (Sandbox Code Playgroud)

如果我将RUN_CLANG_STATIC_ANALYZER参数传递给xcodebuild(不使用scan-build)它会生成一些plist文件,但我不知道如何将这些文件呈现给用户因为我希望HTML输出.

有没有人成功呢?

xcodebuild clang-static-analyzer

5
推荐指数
1
解决办法
2464
查看次数

Mercurial推问题

我刚刚遇到hg push命令问题.我做了什么 - 首先我创建了2个分支hot-fix-1hot-fix-2 在每个分支中进行了一些更改,将其合并回默认值并使用以下命令关闭这些分支:

hg commit --close-branch  
Run Code Online (Sandbox Code Playgroud)

如果我开始,hg branches我有以下输出:

default      29:e62a2c57b17c
Run Code Online (Sandbox Code Playgroud)

hg branches -c 给我:

default                       29:e62a2c57b17c
hot-fix-2                     27:42f7bf715392 (closed)
hot-fix-1                     26:dd98f50934b0 (closed)
Run Code Online (Sandbox Code Playgroud)

因此hot-fix-*分支似乎是封闭的.但是,如果我尝试推送更改,我有下一条错误消息:

pushing to /Users/user1/projects/mercurial/mytag
searching for changes
abort: push creates new remote branches: hot-fix-1, hot-fix-2!
(use 'hg push --new-branch' to create new remote branches)
Run Code Online (Sandbox Code Playgroud)

并且我使用哪个命令无关紧要hg push -b .或者hg push -b default
问题是如何在不创建新分支的情况下将这些更改推送到存储库.

PS我以前使用git并且希望在Mercurial中可以使用类似的分支模型.谢谢

mercurial push

4
推荐指数
1
解决办法
3454
查看次数