iOS开发—常出现的警告和错误

(1)没有删除东西出现 *** is missing from working copy 警告⚠️

方法:Xcode->Preferences->Source->Enable Source Control 勾勾去掉

(2)出现 -fembed-bitcode is not supported on versions of iOS prior to 6.0 错误,是因为bit code不支持 iOS6.0之前的版本,所以直接把Bitcode 改为NO就可以了,具体如下图

iOS开发—常出现的警告和错误_第1张图片
修改 Bitcode

(3)出现 Code signing is required for product type 'App Extension' in SDK 'iOS 10.1' 错误

(4)出现 Automatic Preferred Max Layout Width Bdfore iOS 8.0 警告⚠️

一般是在项目的xib文件(或storyboard中),这是Label的一个属性导致的,出现这个警告的原因;一般来说,勾选的时候,会自动设置一个宽度,这个宽度是label当前在xib中的宽度,对于多行label,意思即当label中的文字宽度大于这个宽度的时候,label会换行;
一般是因为项目的部署版本为7.0,但是label又没有勾选Explicit导致的,警告的意思即自动偏好宽度在8.0以前不适用,因此对于部署在7.0的项目,应该勾选.


iOS开发—常出现的警告和错误_第2张图片
勾选Explicit.png

(5)出现 Directory not found for option '**' 警告⚠️

这种提示,通常是由于添加了第三方SDK,但是后来改了个名字或者去掉了SDK,但是在
Build Settings----->Search Paths----->Library Search Paths 中仍然没有删除掉对应的路径,所以需要到Library Search Paths和Framework Search Paths中删除掉警告的路径,就OK了

(6)出现错误 linker command failed with exit code 1,

ld:'***' does not contain bitcode. 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
clang: error: linker command failed with exit code 1 (use -v to see invocation)

(7)出现错误 can't write output file: /** (No space left on device)

意思是没有多余的空间,把不需要的东西删除一些,电脑上多留点空间就可以了

(8)提交版本审核的时候,出现错误No suitable application records were found .Verify your bundle identtifier "**"is correct. 原因有可能有:

1.在application loader中没有选择正确的用户组
2.在iTunes Connect中少操作了一个步骤,app的状态还是“Ready for upload”,点击view Details,右下角或右上角有个Ready to Upload Binary,点击后app的状态变成waiting for upload。出现 prepare for upload 千万不要认为此时工作完成了,还差一步,如果此时你关闭了页面,准备最后一步,你会发现到时会出错的

(9)在上架的时候遇到:ERROR ITMS-90161: "Invalid Provisioning Profile. The provisioning profile included in the bundle (Bundle id名字) [Payload/.app(APP的名字)] is invalid. [Missing code-signing certificate]. A Distribution Provisioning profile should be used when submitting apps to the App Store. For more information, visit the iOS Developer Portal.",注意点及解决办法有:

  1. p12和mobileprovision都要是Distribution环境下的,并且mobileprovision一定要是App Store类型的才可以
  2. xcode - windows - organizer - 选中archive包,右键show in finder,找到安装包文件,右键显示包内容,把Products目录下的Application文件夹改名为Payload,修改info.plist文件 ApplicationProperties - ApplicationPath,把 Application/xx 改为 Payload/xx 重新上传即可。

(10)出现错误 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'UICollectionView must be initialized with a non-nil layout parameter'。错误信息:

UICollectionView在初始化的时候必须指定一个布局,所以我们不能使用

  UICollectionView *collectionView  =[[UICollectionView alloc]init];  

要修改成

UICollectionViewFlowLayout *flowLayout =[[UICollectionViewFlowLayout alloc]init];
UICollectionView *collectionView  =[[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:flowLayout];

(11)在集成百度地图的时候,因为 “info.plist 中必须添加 Bundle display name”调用地图失败,需要添加 Bundle display name 选项,它是 真正显示到用户屏幕上的 App 名称,Bundle name 是 App 安装到 iOS 机子里的 App 文件夹名

iOS开发—常出现的警告和错误_第3张图片
增加配置.png

(12)在使用友盟进行分享的时候,点击分享无效,打印error 为: Domain=UMSocialPlatformErrorDomain Code=2003 "(null)" UserInfo={message=webpageUrl must not nil or other type ❌错误

原因:没有设置分享的图片或者分享的图片没有数据
解决办法:添加分享的图片

(13)注册友盟,打印台出现——APIBase request didFailWithError ,并且白屏一段时间,是因为没有iOS9以上回调的方法没有添加

#pragma mark--友盟如果不加,iOS9以上的系统会白屏一段时间-仅支持iOS9以上系统,iOS8及以下系统不会回调,解决办法:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options
在上面的方法中加入:
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];
    if (!result) {
        // 其他如支付等SDK的回调
    }
    return result;

(14)真机调试运行,显示 Success ,但是最后因为弹出——Unable to install “**”失败,原因以及解决办法:

因为失效的证书名字和有效的证书名字冲突,进入钥匙串中,把重名,但失效的证书删除,最直接的就是把所有失效的证书全部删除,重新运行就可以了

(15)真机调试的时候出现 process launch failed: timed out trying to launch app 提示,导致真机调试是失败,是因为没有设置好开发状态,把打包成 iPA 设置的状态改为开发状态

(16)在Xcode中实现全局搜索代码,注意左上角的配置是:Find——Text——Containing,如下图:

iOS开发—常出现的警告和错误_第4张图片
全局搜索.png

(17)出现 ****** (No space left on device)错误,出现错误的原因是,设备上没有剩余空间,清理设备,腾出空余就可以了

(18)静态检测内存泄露Analyze--报:Value stored to 'dataArr' during its initialization is never read ,原因:一个对象,被分配了两块内存,导致一块内存空闲,出现了内存泄漏

解决办法:把被赋值对象的初始化删掉,只声名一个对象,然后把已经初始化好的对象,赋值给它

  NSMutableArray *chooseImageArrays;
    
    if ([resultImageIdArrays containsObject:@"测试"]) {
        
        chooseImageArrays = deleteImageArrays;
    }

(19) 在 JS 和 OC 进行交互的时候,出现 [JSValue length]: unrecognized selector sent to instance ** ❌错误。

原因: NSArray * parmArray = [JSContext currentArguments]; 这里数组装的是JSValue 类型的
解决办法:用 [parmArray[0] toString] 转化成对应的类型才再使用

(20)在使用友盟进行 QQ 分享的时候,出现 TencentOpenApi must be called at main thread ❌ 错误

原因:在进行分享的地方,是在线程操作的
解决办法:把分享转到主线程进行进行

(21)使用SVN工具 Cornerstone,在Check Out的时候,出现 The working copy can't be accessed because the format is not supported。❌错误,

原因:Cornerstone 的版本太低
解决办法:把 Cornerstone 可以兼容的版本调到最大


iOS开发—常出现的警告和错误_第5张图片
21.png

(22)iOS关于定位的认识Error Domain=kCLErrorDomain Code=2****。❌错误

原因:因为网络信号不好,换一个网络试一下

后期会持续更新,欢迎关注

你可能感兴趣的:(iOS开发—常出现的警告和错误)