- 当调整项目结构的时,不小心挪动了系统的info.plist文件, 运行是会报下面的错误
could not read data from '/Users/xxx/Desktop/Proj/ProjName/Info.plist': The file “Info.plist” couldn’t be opened because there is no such file.
产生的原因是: info.plist找不到原来的路径了。
解决办法 : 在项目中修改下info.plist的路径就可以了。
项目中点击
targets
-->Build Settings
-->搜索Info.plist
-->Packaging
->info.plist File
后面跟的的路径就是info.plist的路径, 修改成你挪动后的路径 OK BuildSuccess.
还有一种情况是 项目中删掉了info.plist文件也会报这个错
- Warning: The Copy Bundle Resources build phase contains this target's Info.plist file 'Proj/Other/Info.plist'.
编译时将 info.plist文件也进行了编译
解决方案: 在 Copy Bundle Resources中将警告文件删除重新编译即可
Undefined symbols for architecture arm64: _OBJC_CLASS_$_AppDelegate, referenced from:objc-class-ref in main.o objc-class-ref in ViewController.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
这种错误产生的原因之一是
Compile Sources
中缺少了你项目中引用的类 .m 文件导致无法编译 这种情况大多出现在引用第三方类库中
解决方法: 在Compile Sources
中添加 你引用类的.m
即可
貌似还有一种原因是因为
Compile Sources
出现了重复的类的.m
文件 保留一个你用的,删除一个你不需要的 注意 :你删除的.m
文件的路径
Command /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS Build System Support.xcplugin/Contents/Resources/copypng failed with exit code 1
产生原因是: png
图像文件拷贝失败 可以查看错误提示Can't find
哪个文件,一般都是从文件系统里删除文件而没有通过Xcode
删除造成的,Xcode
的项目配置文件依然纪录着这个文件的引用
解决办法: 给文件系统里增加相应的文件,或者从Xcode的Groups & Files
删除它,或者从Target
的Copy Bundle Resources
里删除它
5.遇到一个坑,是别人开源的分类,用的时候一点要注意 分类名称是
UIButton+touch
,在iPhone4S上突然所有按钮只能响应一次touch事件。巨坑 看了代码,发现是单例加运行时。一目了然。然后删掉了之后build就正常了。。。
6 . 使用cocoapod导入不提示头文件, 在 User Header Search Paths 在添加 ${SRCROOT} 并选择 recursive 即可
- 这样警告的就是你当前项目中没有这些lib了,可以将这些lib的路径删掉
项目
->Target
->Build Settings
->search Path
->Framewrok Search Path
|Library Search Path
ARC dealloc 没有被调用 - 原因1: 自己定义block的时候,引用self要注意 在外部弱引用 __weak ;
原因2: 定义代理的时候:使用了strong修饰符来修饰 代理对象导致强引用
原因3: 临时变量 使用strong修饰,导致强引用
af 内部就已经作了__weak了,然后在block里面又使用了一次__strtong,这样可以保证block执行的过程中,self不回被销毁,知道block释放的时候才销毁self
系统库找不到系统头文件
比如hpple的<libxml.tree> file not found
,那就是编译时找不到libxml2这个库的头文件了, 解决方案: 在build Settings
搜索Header Search Paths
和Library Search Paths
添加${SDKROOT}/usr/include/libxml2
使用cocoapods安装库报错
Analyzing dependencies
Downloading dependencies
Installing pop (1.0.9)
[!] Error installing pop
[!] /usr/local/bin/git clone https://github.com/facebook/pop.git /var/folders/v1/vvrc5tlx6fq7zh_fn59ptwh00000gs/T/d20160330-14219-5npwql --single-branch --depth 1 --branch 1.0.9
Cloning into '/var/folders/v1/vvrc5tlx6fq7zh_fn59ptwh00000gs/T/d20160330-14219-5npwql'...
fatal: unable to access 'https://github.com/facebook/pop.git/': Could not resolve host: github.com
解决方案(仅供参考,总之我是采取了这种方式解决的): 打开Mac 网络设置,高级 --->DNS--> 添加一个IP: 8.8.8.8,重新运行pod命令就可以了
SVN
SVN单独提交图片的时候,例如 icon.png 和icon@2x.png.如果SVN中已经存在 icon.png 这个时候想要把icon@2x.png add一下
会发现命令行报错svn add /Users/xxx/Desktop/xxx/xxx/xxx/Classes/Others/CustomUI/xxx/icon@2x.png /Users/xxx/Desktop/xxx/xxx/xxx/Classes/Others/CustomUI/xxx//icon.png ' not found
解决办法 一般iOS图片文件都会包含@2x,@3x之类的字符比如icon@2x,icon@3x,当你在svn命令行中add或是delete的时候总是报错说file does not exit之类的错误,其实之类包含有@xx的文件可以这样处理 svn add icon@2x@在文件后面添加个@符号 svn del icon@3x@
svn 提交.a 文件
回到桌面
--> 前往文件夹 ~/.subversion
该目录下有个config
文件 / 或者命令进入vi ~/.subversion/config
,打开以后 然后在[miscellany]项找到这个串
global-ignores = *.o *.lo *.la *.al .libs *.so .so.[0-9] *.a *.pyc .pyo # .rej ~ ## .# ..swp .DS_Store
这里的意思是, SVN在提交时自动忽略以这些后缀的文件, 那么我们要去掉*.a
这一项, 则将配置文件改为
global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store 然后执行命令svn add xxx/xxx/xxx/libOCMock.a
.a
在本项目中的路径
出现A (bin) libOCMock.a
表示添加成功 ,然后svn commit -m "'
就可以了
svn commit 时 出现xxx out of date
- 解决方案: 先执行点到出现文件的上级目录,执行 更新操作,然后再提交。
有一次偶然碰到调试的时候断点没走。调查了一下原因:
不走断点的原因是: - http://www.ss28.com/article/ssqb/2017-04-01/76332.html
01 Undefined symbols for architecture x86_64:
02 "operator delete", referenced from:
03 +[WeChatApiUtil EncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
04 +[WeChatApiUtil NsDataEncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
05 +[WeChatApiUtil DecodeWithBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
06 +[WeChatApiUtil DecodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
07 "operator new[](unsigned long)", referenced from:
08 +[WeChatApiUtil EncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
09 +[WeChatApiUtil NsDataEncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
10 +[WeChatApiUtil DecodeWithBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
11 +[WeChatApiUtil DecodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
12 ld: symbol(s) not found for architecture x86_64
13 clang: error: linker command failed with exit code 1 (use -v to see invocation)
解决办法:加入libc++.tbd