一、报错与警报

1、错误代码:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)

build 这个target的时候命令行报错。可以在 build setting 中,搜索bitcode,并吧 enable bitcode 设置为 NO.

2、ld:framework not found IOKit

终端输入以下2行内容:

cd/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/IOKit.framework

sudo ln -s Versions/A/IOKit .

其中,如果不行,从文件夹中慢慢打开看下路径对不对,如果像有修改Xcode名称的,注意如 “xcode 5”  [有空格" “的记得在终端中加上 “\”这个符号];

3、程序没问题,运行报错:Directory not empty

位于/Users/你电脑名/Library/Developer/Xcode/DerivedData  下的缓存文件占很大的缓存空间,如果长时间不删除xcode下的缓存文件,就会导致硬盘空间越来越小直到Directory not empty。删除了缓存文件再运行就不会再报错。

或者,直接clean一次就可以了。

4、如果遇到编译错误类似:Undefined symbols for architecture armv7: 

"_OBJC_CLASS_$_ASIHTTPRequest",先检查上述的依赖代码是否已加入编译列表,如未加入,依次点击Target->Build Phases->Compile Sources,点击底部“+”添加上述代码。

如果遇到编译错误类似:Undefined symbols for architecture armv7:   "_inflateEnd", referenced from,则应该是缺少依赖libz.dylib,添加方法:依次点击Target->Build Phases->Compile Sources,点击底部“+”,在弹出的列表中输入libz,添加搜索结果中最新版本即可。

5.but did not return a nonzero exit code to indicate failure

日志类似:

解决:

选择 Build Settings 菜单,把compress PNG files 改成NO。

6.Undefined symbols for architecture i386:

日志类似:(缺少BJGKPaintMapViewController文件的引用)

原因:xcode项目import文件时,会根据project.pbxproj来查找,查找不到文件的引用则会有上述的错误。图中就是BJGKPaintCommand文件对BJGKPaintMapViewController类的引用找不到。常常在多人合作开发的时候,svn提交不规范导致的project.pbxproj发生错误,使得文件的引用不在project.pbxproj文件中。

解决方案:

  • a.点击Build Phases,如果是缺少的xxx是类名,则在Complie Sources中加入该文件。若缺少类库,则在Link Binary With Libraries中加入该类库。例如图中是缺少 “BJGKPaintMapViewController”,这个是类名。
  • b.或者直接把需要引用这个缺少类/库的原文件去掉引用,笔者就是多调用了BJGKPaintCommand类文件,所以把它去掉,也就不需要补上BJGKPaintMapViewController类的引用了。

---第6点 2016年08月25日补充---

遇到类似以下报错:

Undefined symbols for architecture i386:

  "_sqlite3_bind_blob", referenced from:
-[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o
"_sqlite3_bind_double", referenced from:
-[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o
"_sqlite3_bind_int", referenced from:
-[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o
"_sqlite3_bind_int64", referenced from:
-[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o
"_sqlite3_bind_null", referenced from:
-[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o
"_sqlite3_bind_parameter_count", referenced from:
-[FMDatabase executeQuery:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o
-[FMDatabase executeUpdate:error:withArgumentsInArray:orDictionary:orVAList:] in FMDatabase.o
.........

上面的意思是Link Binary With Libraries 中没有添加 “libsqlite3.dylib”,但是Xcode7中只有对应的“*.tbd”,而没有“*.dylib库”,怎么办呢?

方法①:

“Link Binary With Libraries”中点击 “+”,点“Add Other”,这时候按下“Command+Shift+G”,输入“/usr/lib”进行搜索,可以看到 “libsqlite3.dylib”,双击添加完毕。

方法②:

点项目,TAGERT -> Build Setting -> Lingking -> Other Linker Flag ,在里面添加一行字符: “-lsqlite3”。 添加完毕。

7、问题: ld/ warning/ directory not found for option从项目中删除了某个目录、文件以后,编译出现警告信息: ld: warning: directory not found for option“XXXXXX”:

有时候已经从项目中删除了文件和文件夹还是报这个警告,虽然没有发生错误,但是看着很不舒服。。

去掉警告的办法如下:

1选择工程, 编译的 (targets)

2选择 Build Settings 菜单

3如下查找 Library Search Paths 和 Framework Search Paths, 删掉编译报warning的路径即OK。

更新-->

8.Xcode7打包,iOS9真机闪退,如何解决?

答:点击链接->【Xcode7打包,iOS9真机闪退,如何解决】

----------------2016年7月1日更新---------------

9.报错如下:

Undefined symbols for architecture i386:

"std::__basic_file<char>::is_open() const", referenced from:...

或者“std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::find(wchar_t const*, unsigned long, unsigned long) const", referenced from:”...

然后后面一大堆的以“std:”开头的描述...

解决方案:项目名 -> Build Phases -> Link Binary With Libraries,

将libstdc++.dylib换成libstdc++.6.0.9.dylib就可以了。

----------------2016年12月22日更新---------------

10.报错如:“No matching provisioning profile found: Your build settings specify a provisioning.....”,

老是提示指定UUID的provisioning profile,即使出现按钮“Fix Issue”点击也没有解决?

解决方案:

a.找到项目中的 "xxx项目名.xcodeproj" 文件,右键打开包内容;

b.然后找到project.pbxproj文件,双击打开;

c.然后在文本中搜索“PROVISIONING_PROFILE",找到以它开头的那一行代码并删除了。

删完以后重新打开项目运行,你就会发现错误提示没了,接下来运行工程,联网情况下Xcode会自己

下载并安装provisioning profile文件;然后就行了。

【参考:http://stackoverflow.com/questions/1760518/codesign-error-provisioning-profile-cannot-be-found-after-deleting-expired-prof】

二、常见问题:

1.模拟器的目录:

点击“Finder->前往->资源库->Developer->Xcode->DerivedData,【看不到“资源库”?点击“前往”,看到菜单栏时,按“Option”就看到了.】

或者点击“Finder->前往->前往文件夹”,输入:

/Users/你当前登陆的用户名/Library/Application Support/iPhone Simulator/


2.Xcode构建项目多,内存占用大,如果清除缓存?

a.App被XCode Build在这里:

点击“Finder->前往->资源库->Developer->Xcode->DerivedData”,

或者点击“Finder->前往->前往文件夹”,输入: “/Users/你当前登陆的用户名/Library/Developer/Xcode/DerivedData”(冒号没有的)

把不需要的app项目删除。或者定时删除旧的项目。

-----2016年06月03日更新-----

b.连接真机生成的文件,可以全部删掉或者把不常用的版本删掉,再次连接设备会自动生成:

"~/Library/Developer/Xcode/iOS DeviceSupport"

c.app打包生成的文件,可以删掉不需要的项目打包文件:

"~/Library/Developer/Xcode/Archives"。

以上都可以把不需要的app项目删除。或者定时删除旧的项目。

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

3.Xcode项目模拟器上png格式的本地图片正常显示,真机调试不显示:

可能有2个原因:

(1).图片的初始状态,不是png的,被自己直接就改成png了。这样模拟器OK,真机就有问题。

可以使用Mac 系统自带的图片预览导出一下,(就是双击图片,点击左上角:文件->导出->png格式),再重新导入就行了。

(2).真机上文件名是区分大小写的,而模拟器上面是不区分的,所以模拟器可以,真机不行;

更新-->

4.项目更改一部分资源或者修改部分数据后,再次运行模拟器还是原来的效果,没有发生变化:(例如提示找不到某些头文件。)

按一下:Product -> Clean ,应该是清除一下再编译;

每次项目有数据修改,重新运行前,我都会clean一下,避免因为缓存出现的错误...这个经常用,但是clean真正的意思我还没读懂.

iOS开发编译报错、常见问题(实时更新)的更多相关文章

  1. 【转】 IOS开发xcode报错之has been modified since the precompiled header was built

    本文转载自  IOS开发xcode报错之has been modified since the precompiled header was built 其实我是升级xcode到4.6.3的时候遇到的 ...

  2. IOS开发 xcode报错之has been modified since the precompiled header was built

    转载的文章  很实用 IOS开发xcode报错之has been modified since the precompiled header was built 今天做百度地图的时候第一次发现下面错误 ...

  3. iOS开发——打包报错error: linker command failed with exit code 1

    真机运行没问题,打包报错: clang: error: linker command failed with exit code 1 (use -v to see invocation) 原因:在Xc ...

  4. iOS 开发笔记-报错处理

    1.xcode7报错:does not contain bitcode 解决方法:Build Settings 搜索 bitcode  将Enable Bitcode更改为NO即可 2.Code Si ...

  5. c++ 编译报错汇总(随时更新)

    1.invalid new-expression of abstract class type ‘×××ב 这个报错代表一个尝试在实例化一个抽象类,也就是说父类的接口中有纯虚函数在子类中没有实现: ...

  6. iOS开发xcode报错:"xxxxxx"has been modified since the precompiled header was built

    最近做iOS开发,老是遇到这种问题,正好我有两个版本的Xcode,换了另一个,就正常了,所以也一直没解决. 今天又遇到这个问题,就查了一下资料,找到了解决办法,在次记录一下方便查找,就是在Xcode中 ...

  7. iOS Xcode编译报错问题解决办法汇总

    1. 编译出现错误:linker command failed with exit code 1 第一种方法:找到Build settings->Linking->Other Linker ...

  8. 【微信】微信小程序 微信开发工具中新创建的json文件,编译报错VM1781:2 pages/module/module.json 文件解析错误 SyntaxError: Unexpected end of JSON input

    如果新创建报错:编译报错VM1781:2 pages/module/module.json 文件解析错误  SyntaxError: Unexpected end of JSON input 解决方法 ...

  9. ios 12 xcode10 新升级的编译报错libstdc++.6.0.9 Multiple commands produce

    问题一 编译报错 Showing Recent Messages :-1: Multiple commands produce '/Users/duning/Library/Developer/Xco ...

随机推荐

  1. C语言实现双向循环链表

    #include <stdio.h> #include <stdlib.h> #include <string.h> struct list_head { stru ...

  2. 2-legged oauth & 3-legged oauth

    3-legged oauth resource owner, client, server. resource owner 给client访问权限去访问resource owner在server上的r ...

  3. javascript笔记6-DOM

    DOM(文档对象模型)是针对HTML和XML文档的一个API.DOM描绘了一个层次化的节点树,允许程序员添加.修改页面的一部分. 节点层次:DOM可以将任何HTML或XML文档描绘成一个由多层次节点构 ...

  4. Struts 2开讲了!!!

    首先我们要知道我们为什么要学习Struts2这门技术? Struts2是java程序员所必需学习的一门技术几乎面试都会提起! Struts英文单词是什么意思,怎么理解? 翻译:支柱,支杆,来源于建筑和 ...

  5. Hubilder快捷键

    /* tips.txt的内容可以在HBuilder启动封面中显示.你可以自定义一个有趣的启动tips,增加[user]开头的文本内容即可.比如[user]我要减肥!  */ 你按照Hello HBui ...

  6. JSTL 将double值保留小数点后两位

    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <div ...

  7. sublime 的使用

    常见问题: ctrl+`快捷见弹不出console怎么办! 解决方法: 估计适合电脑其他软件的快捷键冲突了,在sublime里面重新设置下快捷键 点击菜单中Preferences下面的Key Bind ...

  8. Jrebel6.3.3破解,配置图文教程

    JRebel是个很好的开发工具,我在网上找了好久都没有找到很详细的教程,破解与配置教程千篇一律,步骤不详细.编写这篇教程,综合网络上的知识,加上了自己的理解与详细图文步骤. 安装 一般最新的插件是没有 ...

  9. Erlang 101 Erlang环境和顺序编程

    笔记系列 Erlang环境和顺序编程 Erlang并发编程 Erlang分布式编程 Yaws Erlang/OTP 日期              变更说明2014-10-12 A outline, ...

  10. javascript confirm()函数的用法

    javascript confirm()函数的用法 confirm():确认消息对话框.用于允许用户做选择的动作.弹出的对话框中包含一确定按钮和一取消按钮. confirm(str) 参数说明: st ...