iOS之FAQ(都是我遇到过的)

做开发就会遇到各种各样的问题,以前都是看看解决了就过了,有时候遇到同样的问题,却忘了怎么解决,还要重新上网去找,干脆就留下点痕迹吧。。。

cannot create __weak reference in file using manual reference counting

解决1:

设置项目中的build setting -> Apple LLVM7.1 - Language - Objective C -> Weak References in Manual Retain Release YES

解决2:

用__unsafe_unretained 代替__weak,但是如果用__unsafe_unretained请注意下面的问题。
__unsafe_unretained specifies a reference that does not keep the referenced object alive and is not set to nil when there are no strong references to the object. If the object it references is deallocated, the pointer is left dangling.


You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64

这是一个很早以前遇到的问题了,解决方法很简单,
设置项目中的build setting -> All - Combined - 搜索bitcode -> 置为No参考文章


昨天有朋友问我怎么保持蓝牙长连接,就是在后台也不断开,其实这问题百度上一搜一大把啊,谷歌我就不说了。

也说下解决方法吧,只要在info.plist中加入新建一行 Required background modes , 加入下面两项。App shares data using CoreBluetoothApp communicates using CoreBluetooth


duplicate symbols for architecture arm64

错误原因可能是:1.有重名的文件。2.import的时候把.h写成.m。
解决方法:前者搜索该文件名,改名或删除均可。后者改成.h即可。


Implicit declaration of function 'SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO' is invalid in C99

错误原因是这样的,我自定义了宏#define SYSTEM_RUNS_IOS7_OR_LATER SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")
解决方法也比较让我惊奇,只要在宏定义的地方添加如下代码即可

#define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

参考:http://stackoverflow.com/questions/23818606/semantic-issue-implicit-declaration-of-function


Application windows are expected to have a root view controller at the end of application launch

这个报错现在几乎是看不到了,我是下载了httpserver的demo,运行出错。问题就出在rootViewController上。
解决方法,只要设置rootViewController就行了。我将[window addSubview:viewController.view];改成window.rootViewController = viewController;运行ok...


fatal error: could not build module 'Foundation'

今天运行程序的时候突然冒出27个错,而且一看是系统的库,上网查了资料才知道是因为导入了.c的文件而造成的。
解决方法:在.pch文件中加上#ifdef OBJC 和#endif即可。


fatal error: No code signing identities found: No valid signing identities (i.e. certificate and private key pair) matching the team ID “********” were found.

这是我在Archive时遇到的,一看就知道是证书问题,参考了stackoverflow解决了。解决方法:点左上Xcode > 选择Preferences,在Accounts中找到你的Apple ID,然后点击View Details,等待加载,时间会有个1、2分钟的样子,在Provisioning Profiles栏中,download证书,然后问题解决。


fatal error:Missing iOS Distribution signing identity

还是打包上传的时候遇到的,依旧是证书问题,就不说原因了,直接说解决方法:
1.https://developer.apple.com/certificationauthority/AppleWWDRCA.cer下载最新的证书,双击安装
2.到钥匙串中将过期的证书删除即可。(别问我钥匙串在哪,也别说找不到过期的证书v)
3.没有第三了,问题已经解决了。


UIWebView手势无效问题

这几天用UIWebView添加上滑下滑手势,发现没有效果,查了资料才发现,UIWebView已经自带手势了,解决问题的方法很简单,添加一个方法:- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer方法实现起来也很简单,我看有的人直接return YES;,但我发现这样并不严谨,应该加个判断,如果是你添加的手势,return YES;否则return NO;
跑一下,OK〜


Undefined symbols for architecture x86_64:

缺少库,缺什么自己补什么就好了。。。


attempt to insert nil object from objects[1]'

插入数组或字典中得值为空,可先进行判断在插入


specifies a non-existent file for the cfbundleexecutable key

這是打包上傳時遇到的,原因是我添加了QQ的分享,只要在info.plist文件中刪除executable file 这个key即可


Failed to chmod user/Library/Developer/CoreSimulator/Devices NO Such File Or directory

這個出現的具體原因我也不是很清楚,在so上也能找到,我重置了一下模擬器就好了( Simulator -> Reset Content and Settings...),當然也有人說重置了沒用。。。,so鏈接:http://stackoverflow.com/questions/40485155/failed-to-chmod-user-library-developer-coresimulator-devices-no-such-file-or-dir


Failed to chmod user/Library/Developer/CoreSimulator/Devices NO Such File Or directory

這個出現的具體原因我也不是很清楚,在so上也能找到,我重置了一下模擬器就好了( Simulator -> Reset Content and Settings...),當然也有人說重置了沒用。。。,so鏈接:http://stackoverflow.com/questions/40485155/failed-to-chmod-user-library-developer-coresimulator-devices-no-such-file-or-dir


This action could not be completed.Try again.(-22421)

錯誤是在上傳項目時出現的,就是說你網絡有問題,繼續重試即可。


PCH was compiled with module cache path

出现这个问题应该是我复制项目所以报错,说路径不同了,只要把but后面的路径里的文件删掉,然后clean项目就好了


This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.

出现这个问题是我在iOS 10的手机上调用系统相机,然后就崩溃了

解决方法:
  1. 在项目中找到info.plist文件,右键点击以 Source Code形式打开
  2. 添加以下键值对,这里以 PhotoLibrary 作为例子
    <key>NSCameraUsageDescription</key>
    <string>此 App 需要您的同意才能读取媒体资料库</string>
  3. 注意,key 是绝对不能写错的,而 value 也就是<string></string>你可以随意写

member access within misaligned address 0x000000000031 for type 'struct ListNode', which requires 8 byte alignment

这是一个c里面的错误,出现的环境是我做一个链表,alloc以后,调用此列表中的属性,然后报错,解决方法也很简单,alloc以后,对链表的每个属性赋值即可(没值就赋NULL)


All interface orientations must be supported unless the app requires full screen.

这只是一个警告,但是看着不爽,能解决就解决掉吧。这个警告是说App默认是有开启了多任务功能,而多任务功能是需要App支持所有方向,如果我们App是有需要支持多任务,则需要开启App对各个方向(上、下、左、右)的支持;如果App不需要开启多任务,则只需要将Target中Status Bar Style中的的 Requires full screen 勾选上就ok


Unable to find a specification for xxxxx.

这是在cocopods上安装库的时候遇到的问题,解决方法可以更新库pod repo update当然,也可以把库删了pod repo remove master,然后重装pod setup


Safe Area Layout Guide before iOS 9.0

出现这个问题是因为iOS11以后出现了Safe Area这个概念,在sb和xib中默认设置了Safe Area,解决方法有两个:
方法一:把系统版本提高到9.0或以上;
方法二:如下图所示取消Use Safe Area Layout Guides选项即可。


123.png

[framework] CUIThemeStore: No theme registered with id=0

这是在控制台打印出来的,虽然没啥影响,但看着不爽,解决方法很简单,在 Assets.xcassets 文件夹中添加一张图片就行了。。。


tabBarItem的位置会从一个偏移位置闪现到正常位置

不影响使用,但看着很不爽,解决很简单,在didFinishLaunchingWithOptions方法中加一句[[UITabBar appearance] setTranslucent:NO];即可。。。


libMobileGestalt MobileGestalt.c:890: MGIsDeviceOneOfType is not supported on this platform.

编辑Scheme-> Run - > Arguments,在Environment Variables里边添加OS_ACTIVITY_MODE =禁用来屏蔽这些打印即可。


不断更新,未完待续。。。

版权声明:本文为 Crazy Steven 原创出品,欢迎转载,转载时请注明出处!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容