Xcode 常见错误代码及解决方案

  1. macro names must be identifiers YourProject_prefix.pch
    原因:宏名称必须是标识符。
    解决方法:Configiration 选择 All Configirations,然后重新定义 Debug,Release,Distributin 预处理器宏。

  2. no rule to process file ‘$(PROJECT_DIR)/LoadingView.h’ of type sourcecode. c.h for architecture armv6
    原因:Target 里的 Compile Sources 已含有头文件。 解决方法: 从 Target 的 Compile Sources 中删除头文件。

  3. Command/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode /Plug-ins/iPhoneOS Build System Support.xcplugin/Contents/Resources/copypng failed with exit code 1
    原因:png 图像文件拷贝失败,一般都是从文件系统里删除文件而没有通过 Xcode 删除 造成的,Xcode 的项目配置文件依然纪录着这个文件的引用。
    解决方法:给文件系统里增加相应的文件,或者从 Xcode 的 Groups & Files 删除,也可 以从 Target 的 Copy Bundle Resources 中删除。

  4. Code Sign error: The identity ‘iPhone Developer: Your Name’ doesn’t match any valid certificate/private key pair in the default keychain
    原因:签名错误。
    解决方法:在【Target 】 【Get Info 】 【 Build 】 【Code Signing】下修改签名, 同时需要将 Configuration 类型跟当前 Build 类型对应(Debug, Release, Distribution)。

  5. could not create bundle folder for versioned model *.moda
    原因:编译一次会产生一个新的 moda 文件。
    解决方法:应该把编译产生出来的 moda 文件都删了,然后清理下工程,重新运行即可。

  6. There are no valid certificate/private key pairs in the default keychain
    原因:没有有效的开发者证书。 解决方法:打开【keychain】(钥匙串访问)的应用程序,单击【登录】选项卡,右键单击证书【iPhone 开发者:your_name(xxxxxxx)】,在弹出的快捷菜单中选择【复制】选项, 然后单击【系统】选项卡,右键单击鼠标,选择【粘贴 2 项目】选项。

  7. 运行一个 iPhone 程序时,提示“程序运行失败,预置描述文件已过期”。
    原因:包含多余项。
    解决方法:在 Xcode 中,执行【window】 【Orgnazier】 【你的 iPhone】项,然后删 除带有红*的该程序之前的 Profile,再从 Xcode 运行该程序。

  8. Certificate identity ‘iPhone Developer: XXXXXXXX’ appears more than once in the keychain. The codesign tool requires there only be one
    原因:多次为同一个计算机生成私有证书,并且每次都生成了 proversionning 文件,下 载并按照到同一个 iOS 设备上,那么再次编译程序到设备上的时候就会出现这个问题。
    解决方法:在 Xcode 中,选择菜单 Window->Organizer,在 LIBRARY 下面,选择 Provisioning Profiles,找到前面几次生成的 Provisioning profiles 并删除。在系统的 keychains, 即钥匙串管理程序中,在登录下面,删除早期的私有证书。 再次编译。

  9. 编译项目时常报如下错误
    Undefined symbols:
    “.objc_class_name_PlacardView”, referenced from:
    literal-pointer@__OBJC@__cls_refs@PlacardView in MoveMe2View.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status
    原因:找不到一个类或者是函数。
    解决方法:在项目的【Groups&Files】窗口中打开【Targets】 【项目名】 【Compile Sources】选项,把提示找不到的源文件拖到这里,然后重新编译。

  10. 真机调试时,提示 No provisioned IOS devices are available.Connect an IOS device or choose an IOS simulator as the destination
    原因:没有提供可用的 iOS 设备的。
    解决方法:修改 IOS Deployment Target,不要高于真机的版本。

  11. 真机调试报 error: failed to launch /Users/gzty1/Library/Developer/Xcode/ DerivedData / 应用名-chiobhpmbvwnqudfqnfawdzjrtey/Build/Products/Debug- iphoneos/应用名.app/应用名’ – No such file or directory
    原因:可能是正在从 appstore 上安装此程序,同时又在真机调试安装些程序,导致后面 真机调试安装此程序一直失败。
    解决方法:重新完成从 appstore 上安装此程序后,再尝试真机调试安装。

  12. this class is not key value coding-compliant for the key …
    原因:interface build 与代码中 IBOutlet 的连接所引起的。或者在代码中对 iboutlet 的名 称进行了修改,导致 interface build 中的连接实效。
    解决方法:如果在该 viewcontroller 连接的 xib 文件中没发现错误,那就很可能是 mainWindow.xib 文件中存在问题,在 mainWindow.xib 的 tabbarcontroller 的某个 tab 的 viewcontroller 设置了 loadfrom”**.xib”,但忘了将其 class 设为对应的 viewcontroller 类了。

  13. “XXX” is deprecated
    原因:XXX 废弃。
    解决方法:查看 XXX 的这个方法的文档,替换掉这个方法即可。

  14. Declaration of “struct sock addr” will not be visible outside of this function
    原因:缺失 import 关键字。 解决方法:在你的开源.m 文件中添加 import。

  15. Implicit conversion from enumeration type ‘UIInterfaceOrientation’ to different enumeration type ‘UIDeviceOrientation’
    原因:类型不匹配。
    解决方法:跳到出错的那一行,将 IInterfaceOrientation 强制转换为 UIDeviceOrientation 就行了。

  16. incompatible pointer types assigning to ‘MyArrayList*’from ‘NSMutableArray’
    原因:指针分配有误。 解决方法:加入强制转换(MyArrayList*)。

  17. ‘&&’ within ‘||’
    原因:&&中包含||,例如语句 if (exists && !isDirectory || !exists)…。 解决方法:将符号分开,例如更改为 if ((exists && !isDirectory) || !exists)…。

  18. The Copy Bundle Resources build phase contains this target’s Info.plist file
    原因:Info.plist 文件位置有误。
    解决方法:将 Info.plist 文件移到 Resources 目录下,而不要直接放在 target 下。

  19. iPhone/iPod Touch: application executable is missing a required architecture. At least one of the following architecture(s) must be present: armv6 (-19033)
    原因:可执行应用程序缺少必要的构建。
    解决方法:在【Target】 【Build Settings】 【Architectures】 【Standard(armv7)】 【Other..】下删掉原来的内容,然后逐个添加”armv6”和”armv7”(注意顺序),Build Active Architecture Only 选择 Yes。

  20. Method definition for ‘xxx’ not found
    原因: .h 声明了 xxx 方法但是.m 没有实现 xxx 方法。
    解决方法: 在类的.m 文件实现 xxx 方法 。

  21. Instance variable ‘xxx’ accessed in class method
    原因:在类方法中使用了实例变量。
    解决方法:如果真得需要在类方法中使用某个变量,可以把这个变量定义成全局变量,
    而不要实例变量,如在类方法外面定义变量(就是定义一个普通的全局变量)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值