糖糖的iOS专题Swift编程

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

2016-07-06  本文已影响290人  我的梦想之路
  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/copypngfailed 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 matchany 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 oncein 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】 【项目名】 【CompileSources】选项,把提示找不到的源文件拖到这里,然后重新编译。

-----------------------------------------

10.真机调试时,提示 No provisioned IOS devices are available.Connect an IOSdevice 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.his 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' todifferent 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 ActiveArchitecture Only 选择 Yes。

-----------------------------------------

20.Method definition for 'xxx' not found

原因: .h声明了xxx方法但是.m中没有实现xxx方法。

解决方法:在类.m文件中实现xxx方法 。

-----------------------------------------

21.Instance variable ‘xxx' accessed in class method

原因:在类方法中使用了实例变量。

解决方法:如果真得需要在类方法中使用某个变量,可以把这个变量定义成全局变量,
而不要实例变量,如在类方法外面定义变量(就是定义一个普通的全局变量)。

上一篇下一篇

猜你喜欢

热点阅读