一、报错与警报

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. input标签实现让光标不出现!

    实现不让光标出现的效果,很好用,例子如下: <input class="red" readonly unselectable="on" value=&qu ...

  2. 深入理解gradle编译-Android基础篇

    深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...

  3. Different types of keystore in Java Overview

    Different types of keystore in Java JKS DKS JCEKS PKCS12 PKCS11 http://www.pixelstech.net/article/14 ...

  4. SAP abap 需找出口(BADI)的几种方法

    需找BADI方法有很多,据公司的牛人说,他知道的就不止5种 现在给出一些比较简单的方法 首先,大家要知道,一个程序的出口不会太多,需找出口,很多的时候都是在尝试 第二,方法:首先会给出事务码,然后通过 ...

  5. 关于重定向urlrewriter.urlmapping

    大家都知道web.config 中的 urlMappings怎么用 <system.web> <urlMappings enabled="true"> &l ...

  6. Newtonsoft.Json(C#处理json)

    转载自:http://blog.csdn.net/wswqiang/article/details/6783161 using Newtonsoft.Json; using System.Text; ...

  7. windows系统常用快捷键及其作用

    使用windows快捷键,使得工作起来事半功倍,你都懂了么? win 7操作系统快捷键,其余的操作系统有部分不一致,但总体都差不多 win+D: 显示桌面/隐藏桌面 (再次按win+D,下同) (wi ...

  8. Mac下到Linux主机ssh免密码登录

    最近忙得忘乎所以,写篇博客放松放松,RT,直接上命令好了 # Local ssh-keygen -t rsa scp ~/.ssh/id_rsa.pub username@server:~/.ssh/ ...

  9. ubuntu 调整桌面图标大小

    打开文件浏览器,例如从“位置” 里打开 “主文件夹”,点 “编辑” –>“首选项”,把 “图标视图默认值” 下的“默认缩放级别” 改为 75%.现在图标大小跟WinXP 下的差不多. 或者 在 ...

  10. POJ 2481 Cows(树状数组)

                                                                      Cows Time Limit: 3000MS   Memory L ...