我正在尝试改进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它正常工作.
你知道为什么会这样吗?
当我尝试从后台线程向服务器发出异步请求时,我遇到了问题.我从来没有得到过这些要求的结果.显示问题的简单示例:
@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如下: …
我在使用一台远程服务器时遇到问题.我的应用程序使用[NSData initWithContentsOfURL:]方法向服务器发出请求,作为响应,我得到了我打开的网站的网址UIWebView.
问题是这些请求具有不同的User-Agent,并且服务器无法正确地为我服务,因为它期望我使用相同的User-Agent发送所有请求.我知道如何更改用户代理(例如,在UIWebView(iPhone SDK)中更改用户代理)但我真正想要的是以某种方式获取UIWebView用户代理并将其设置为[NSData initWithContentsOfURL:]以避免服务器端出现问题
我想知道是否有人有一个链接CFNetwork版本号到iOS版本的列表?我找到了OSX CFNetwork版本的列表, 但它已经很老了.
有没有办法隐藏最终用户的协议?我会试着详细描述我想要的东西.我有类我们称之为EndUserClass,它符合一些协议,比方说HiddenClassDelegate和我希望隐藏的最终用户协议.代码如下所示:
@interface EndUserClass : NSObject <HiddenClassDelegate>
{
// .....
}
@end
Run Code Online (Sandbox Code Playgroud)
我希望使用以下声明保持相同的功能:
@interface EndUserClass : NSObject
{
// .....
}
@end
Run Code Online (Sandbox Code Playgroud)
有没有办法私下遵守协议?我知道我可以在类声明中跳过委托,但它给出了我不想要的编译器警告
我正在使用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.
知道如何解决这个问题吗?
我想知道是否可以使用API从Apple Developer Portal获取最新的配置文件?我已经建立了针对iOS项目CI,但我需要更新时,它改变,所以我会很高兴,以及这个过程自动化手动每次供应曲线.谢谢
我想知道是否有办法将图层置于其他视图层之上.喜欢的东西bringSubviewToFront确实为UIView类.我认为它可以用zPosition属性完成,CALayer但这意味着我必须检查zPosition所有层,然后设置适当的值.
提前致谢.
我正在尝试在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输出.
有没有人成功呢?
我刚刚遇到hg push命令问题.我做了什么 - 首先我创建了2个分支hot-fix-1和hot-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中可以使用类似的分支模型.谢谢
ios4 ×4
iphone ×3
ios ×2
objective-c ×2
xcodebuild ×2
calayer ×1
cfnetwork ×1
cocoa-touch ×1
hudson ×1
jenkins ×1
keychain ×1
launchd ×1
mercurial ×1
push ×1
shell ×1
uiwebview ×1
user-agent ×1
xcode4 ×1