这是我用来在我的可可应用程序中使用 nstask 生成 ios 构建的代码。
NSTask *task=[[NSTask alloc]init];
task.launchPath=@"/library/Frameworks/Mono.Framework/Commands/xbuild";
task.arguments= @[@"/p:Configuration=Release",@"/p:Platform=iPhone",@"/p:BuildIpa=false",@"/target:Build",@"/Users/xyz/Projects/SimpleDemo/SimpleDemo.sln"];
NSPipe *pipe=[[NSPipe alloc]init];
[task setStandardOutput:pipe];
NSFileHandle *outputFileHandle;
outputFileHandle = [[NSFileHandle alloc]init];
outputFileHandle=[pipe fileHandleForReading];
[outputFileHandle waitForDataInBackgroundAndNotify];
[[NSNotificationCenter defaultCenter] addObserverForName:NSFileHandleDataAvailableNotification object:outputFileHandle queue:nil usingBlock:^(NSNotification *notification){
NSData *output = [outputFileHandle availableData];
NSString *outStr = [[NSString alloc] initWithData:output encoding:NSUTF8StringEncoding];
NSLog(@"%@",outStr);
[outputFileHandle waitForDataInBackgroundAndNotify];
}];
@try {
[task launch];
[task waitUntilExit];
}
@catch (NSException *exception) {
NSLog(@"%@",[exception callStackSymbols]);
}
@finally {
}
我在运行代码时收到此错误
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iO S.Common.targets:错误:工具退出,代码:134。输出:警告:(armv7)找不到符号的目标文件符号_xamarin_register_modules 警告:(armv7) 找不到符号的目标文件符号 _xamarin_register_assemblies 警告:(armv7) 找不到符号的目标文件符号 _xamarin_setup 警告:(armv7) 找不到符号的目标文件符号 _main 警告:(armv7) 找不到查找符号 _OBJC_METACLASS_$_MonoTouchAppDelegate 的目标文件符号 警告:(armv7) 找不到符号 _OBJC_CLASS_$_MonoTouchAppDelegate 的目标文件符号
dsymutil(6764,0x7fff78631000) malloc: * 对象 0x6000000fb400 的错误:未分配被释放的指针 *在 malloc_error_break 中设置断点以进行调试
在此构建过程中,.app 生成后出现错误意味着 .app 生成后出现问题。
注意:如果我使用终端运行此命令,则它可以正常工作并且生成 .ipa。问题仅在我使用 nstask 运行此命令时出现。
我正在使用 el capitan 和 xcode 7.1.1。任何帮助,将不胜感激。