Xcode 升级带来的警告、错误和解决方法

来源:互联网 发布:apm软件 编辑:程序博客网 时间:2024/05/17 03:34

Xcode 升级后,常常遇到的警告、错误,解决方法

从sdk3.2.5升级到sdk 7.1中间废弃了很多的方法,还有一些逻辑关系更加严谨了。1,警告:“xoxoxoxo”  is deprecated解决办法:查看xoxoxoxo的这个方法的文档,替换掉这个方法即可。2,警告:Declaration of "struct sockaddr" will not be visible outside of this function解决办法:在你的开源.m文件中添加 #import <netinet/in.h>3,警告:Implicit conversion from enumeration type "UIInterfaceOrientation" to different enumeration type "UIDeviceOrientation"解决办法:类型不匹配。跳到出错的那一行,UIInterfaceOrientation强制转换为UIDeviceOrientation就行了。4,警告:incompatible pointer types assigning to "MyArrayList*"from "NSMutableArray"解决办法:加入强制转换(MyArrayList*)5,警告:"&&" within "||"问题出处:    if (exists && !isDirectory || !exists)………  解决办法: if ((exists && !isDirectory) || !exists)………6,警告:Warning:The Copy Bundle Resources build phase contains this targets Info.plist file解决办法:将Info.plist文件移到Resources目录下,而不要直接放在target下。7,警告:在使用ASIHttp…第三方库的,运行报错。解决办法:看你的项目中是否添加CFNetwork.framework、SystemConfiguration.framework, MobileCoreServices.framework,CoreGraphics.framework和libz.1.2.3.dylib,如果是sdk5.0以上,改添加libz.1.2.5.dylib 8,警告:xxxooo,missing required architecture i386 in file 解决办法:如果是错误信息的话:Target->Build Settings->Search Paths, 删除FrameworkSearch Paths 里面内容就可以了。要只是一个警告的话,真机调试可以过。具体解决方法待大神出现。 9,警告:clang: error: no such file or directory: "/demo2/控件代码/13/Recorder/Recorder_Prefix.pch"clang: error: no input filesCommand /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1解决办法: 在你的主工程文件 target搜素,pch ,找到Prefix Header    把它后面的值,都删除,再运行就解决了。10,警告:“ARC forbids synthesizing a property of an Objective-C object with unspecified ownership or storage attribute解决办法:如果定义了ARC有效,那么必须要有所有者属性的定义;所以代码改成下面这样@property (nonatomic, strong, readonly) NSString *ss; 11,警告:io6一下的xib系统均没有自动选择Use Autolayout, Supporting iOS 5 and below with xib of iOS 6 解决办法:Just un-select “Use Autolayout” in the file inspector of the xib’s view and we are back to the familiar autosizing in size inspector and boom, it supports iOS 5 and below.12,警告:Warning: Multiple build commands for output file xxx.png 解决办法:找到项目里xxx.png重复,删除重复的资源。//以下是升级到 xcode 5.0.1 之后使用遇到的警告13,警告: “iOS 模拟器”未能安装此应用程序。解决办法:删除模拟器上当前要运行那个APP,重新运行项目。就ok14,警告:SpringBoard无法启动应用程序 错误:-3解决办法:退出模拟器,重新运行这个项目。15,警告:The server certificate failed to verify.   解决办法:1、打开终端(实用工具 -->终端),在终端中输入如下命令:svn ls https://192.100.1.11?0/svn/xxxxxx(注意下面的url更换成你自己的url地址)然后直接输入 “ p ”  确认,就可以重新连接了。16,警告:Bitmasking for introspection of Objective-C object pointers is strongly discouraged.   解决办法:某数字& 0x1的时候是代表要取最低位是否为1,改成了  if(JK_EXPECT_F(((NSUInteger)object)%2))即可。17,警告:Implicit conversion loses integer precision: "unsigned long" to "CC_LONG" (aka "unsigned int").   解决办法:    CC_MD5(str,strlen(str), r);,改成了     CC_MD5(str, (CC_LONG)strlen(str), r);即可。18,警告:error: failed to launch "/private/var/mobile/Applications/xxxxx" -- failed to get the task for process 11140.   解决办法:    重启你的开发手机即可,还有一种可能是你的开发者证书与发布证书搞错了,检查在xcode中证书是否一直 。19,警告:error: ignoring filxxxxxx/libBaiduMobStat.a, missing required architecture x86_64 in filexxxx/libBaiduMobStat.a   解决办法:    targets ->build setting 下的  architectures 设置为 standard architetures(armv7,armv7s)   vaild architectures 设置为armv7,armv7s。20,警告:error: Directory not found for option "-L/Users/joryoubonxx/BaiduStatistic "  解决办法:  删除  targets ->build setting 下的  library search path不正确的地址,如果还不行,重新添加第三库、clean ,重启Xcode.即可。21,警告:error: The executable was signed with invalid entitlements.   解决办法:   重新导入最新的证书即可1,  错误信息:  "_OBJC_CLASS_$  xxxxx  ", referenced from:      objc-class-ref in ViewController.old: symbol(s) not found for architecture i386clang: error: linker command failed with exit code 1 (use -v to see invocation)解决方法: 查看工程,看是不是没有导入相关的框架。或者工程里添加的有相同".m",".h" 文件2,  错误信息:Couldn"t register dy.CKRiLiText with the bootstrap server. Error: unknown error code".This generally means that another instance of this process was already running or is hung in the debugger.Current language:  auto; currently objective-c解决方法: 可能是电脑内存问题引起,重启电脑即可解决。如果重启解决不了问题,那就是你刚刚改动的代码引起的问题。3 、 错误信息:ios 5是调试正常的,ios 6真机调试的时候,出现如下错误:ld: file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/mac4/Desktop/my desktop/My app/MyApp name 20:09:12  /MyApp name/ZBarSDK/libzbar.a for architecture armv7serror: linker command failed with exit code 1 (use -v to see invocation)解决方法:在Xcode里,点击相应的Target,然后点Build Settings,找到VALID_ARCHS,看里面的是不是arvm7s,如果不是改成arvm7s就可以了。4 、 错误信息: error: receiver type "ViewController" for instance message does not declare a method with selector "hideSearchBar:" [4]ViewController 中没有声明一个方法选择"hideSearchBar:"解决方法:在ViewController .h 中声明一下这个方法 “ hideSearchBar ”  即可。5、 错误信息:当json从服务端请求时得到的字符串,如果这样写的话,会报错,";" after top level declaratorNSString *ss= @"{"recommend":"世界末日","dogname":"机器人"}";  解决方法:就是,把   “   替换成  \"  即可。NSString *ss= @"{ \"recommend \": \"世界末日 \", \"dogname \": \"机器人 \"}";  6 、 错误信息: error: Existing instance variable "_datasource" for property "datasource" with  assign attribute must be __unsafe_unretained解决方法:     id<ListViewDataSource> _datasource; 改为     __unsafe_unretained id<ListViewDataSource> _datasource:即可7 、 错误信息:error: No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).解决方法:     targets ->build setting 下的 Build Active Architecture Only 设置 NO  即可.8 、 错误信息:error: failed to launch"/private/var/mobile/Applications/XX"-- timed out waiting for app to launch  .解决方法:     targets ->build setting 下的 把证书选择为 对应正确的开发证书  即可.31,警告: warning: Semantic Issue: Incompatible integer to pointer conversion assigning to "BOOL *" (aka "signed char *") from "BOOL" (aka "signed char")解决办法: 检查 BOOL *换为BOOL就可以了,检查是不是多写一个   *  号。32:Jsonkit中的警告Direct access to objective-cs isa is deprecated in favor of object_setClass() and object_getClass()object->isa 替换为 object_getClass(object)keyObject->isa 替换为 object_getClass(keyObject)(id)keys[idx]->isa 替换为 object_getClass((id)keys[idx])format specifies type "unsigned long" but the argument has type "nsuinteger" (aka "unsigned int")给变量增加(unsigned long)进行类型转换33:md5加密(iOS SDK中自带了CommonCryptoImplicit declaration of function "CC_MD5" is invalid in C99[plain] view plaincopy    #define CC_MD5_DIGEST_LENGTH 16      +(NSString *)MD5HashForString:(NSString *)input {          const char *cStr = [input UTF8String];          unsigned char result[CC_MD5_DIGEST_LENGTH];          CC_MD5(cStr, strlen(cStr), result);          return [NSString stringWithFormat: @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",                  result[0], result[1], result[2], result[3],                  result[4], result[5], result[6], result[7],                  result[8], result[9], result[10], result[11],                  result[12], result[13], result[14], result[15]];      }  引入函数定义的头文件#import <CommonCrypto/CommonDigest.h>34:ASIDataDecompressor中的警告format specifies type  "short" but the  argument has type "int"在+ (NSError *)deflateErrorWithCode:(int)code 和 +(NSError *)inflateErrorWithCode:(int)code中[NSString stringWithFormat:@"Compression of data failed with code %hi",code] 中将code改为 (short)code,类型转换35:Reachability中警告Using "stringWithString:" with a literal is redundantstatusString = [NSString stringWithString: @"Not Reachable"]; 改为:statusString = @"Not Reachable";36.format specifies type "id" but the argument has type "const char *"NSCAssert(NO, @"Unhandled error encountered during SAX parse. msg is %@", msg);改为:NSCAssert(NO, @"Unhandled error encountered during SAX parse. msg is %@", [NSString stringWithUTF8String:msg]);37 Using "stringWithString:" with a literal is redundant改为:self.locationInput.text = @"captured change";38 在项目中设置控件的layer属性时,会发生错误,"Property "c" cannot be found in forward class object "CALayer *",这时需要引入  #import <QuartzCore/CALayer.h>。39 在项目中变量未初始化会报警告,"Variable "type" may be uninitialized when used here这时需要初始化相应的变量即可  。41 错误Error launching remote program: failed to get the task for process   解决方法:把真机上的软件,删除,然后,clean 一下,重新运行就可以了。42,真机调试的时候,出现      这正常,但是不识别机器的。解决方法:把 ,  设置为以上相对应的版本就可以了。43,真机调试的时候,出现   ios Broken pipe解决方法::推出xcode:断开机器(iphone,ipad,ipod)链接:重启iPhone在联接xcode,就可以了iOS真机调试中出现identity(The identity "iPhone Developer")证书不匹配的问题提示(null) error: could not read CFBundleIdentifier from Info.plist (null)新建一个同名工程,拷贝其plist文件,将原工程中的plist文件替换掉即可。
0 0