升级xcode6踩坑大战

2023-10-31 10:59
文章标签 升级 大战 xcode6

本文主要是介绍升级xcode6踩坑大战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

昨天升级了xcode6,踩了几个坑,主要是link的时候各种Undefined symbols for architecture。把遇到的问题总结一下。关于Undefined symbols for architecture的更详细总结,见:

undefined symbols

Cocoapods的问题

先是pods编译出来的libPods.a失效了,仔细看了一下build日志,有这样一行不显眼的提示:

Pods was rejected as an implicit dependency for ‘libPods.a’ because its architectures ‘armv7s’ didn’t contain all required architectures ‘arm64’

原因是xcode6工程默认的Architectures配置了arm64,而老版本的pods只配置了armv7和armv7s,因此link error

于是我升级了pods,最后又有这样一行不显眼的提示:

[!] The `NailShop [Debug]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the CocoaPods installation

    - Use the `$(inherited)` flag, or

    - Remove the build settings from the target.

按它的提示操作,其实也有坑。首先在xcode6里,我没有找到OTHER_LDFLAGS配置项,似乎是被Other Linker Flags替换了;然后,按它说的删除这个配置项也是不行的,而是要设置成$(inherited),正确配置的话,该项会自动填上值:


如果直接删掉的话,这里是空白,也是不行的

升级以后,pods的Architectures会配置成armv7和arm64(Valid Architectures是armv7 armv7s arm64,不要紧),Build Active Architecture Only的debug是YES,release是NO。而主项目也应该配置成同样的值

至此,libPods.a可以被正常link和加载了

依赖Framework的问题

有一个View使用了OpenGL,在xcode5不需要额外import,但是在xcode6里,编译不通过,需要import头文件:

#import <OpenGLES/ES2/glext.h>

然后又是Undefined symbols for architecture,原来是少引入了一个framework。增加这行import之后,需要在build时加入OpenGLES.framework

cordova的问题

终于build成功以后,刚进APP就crash了,打上exception breakpoint,发现是cordova的代码不兼容,升级cordova到3.6.0以后,问题解决

各种deprecated问题

茫茫多的黄色感叹号,这个问题就是发现一处改一处,替换成iOS8 SDK要求的写法

这篇关于升级xcode6踩坑大战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/314875

相关文章

macOS升级后SVN升级

问题 svn: error: The subversion command line tools are no longer provided by Xcode. 解决 sudo chown -R $(whoami) /usr/local/Cellar brew install svn

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑

JeecgBoot 升级springboot版本到2.6.0

1. 环境描述 Jeecgboot 3.0,他所依赖的springboot版本为2.3.5Release,将springboot版本升级为2.6.0。过程全纪录,从2开始描述。 2. 修改springboot版本号 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-pare

欧拉系统 kernel 升级、降级

系统版本  cat  /etc/os-release  NAME="openEuler"VERSION="22.03 (LTS-SP1)"ID="openEuler"VERSION_ID="22.03"PRETTY_NAME="openEuler 22.03 (LTS-SP1)"ANSI_COLOR="0;31" 系统初始 kernel 版本 5.10.0-136.12.0.

Zookeeper集群是如何升级到新版本的

方案1:复用老数据方案 这是经过实践的升级方案,该方案是复用旧版本的数据,zk集群拓扑,配置文件都不变,只是启动的程序为最新的版本。 参考文章: Zookeeper集群是如何升级到新版本的 方案2:重新建立数据方案 该方案的思路是:先停掉一台follower的机器上的服务,然后加入一个新版本的zk(zk的数据目录是空的),然后启动新zk,之后新zk会把旧集群中的数据同步过来。之后再操作另

mysql数据库8.0小版本原地升级

mysql数据库8.0小版本原地升级 准备工作升级工作停库使用新版本软件启动数据库更新环境变量重启数据库 升级日志 OS release: CentOS 7.9升级前DB version: MySQL 8.0.30数据库升级安装包:mysql-8.0.36-linux-glibc2.12-x86_64.tar.xzMySQL Shell安装包:mysql-shell-8.0.36

面试官:synchronized的锁升级过程是怎样的?

大家好,我是大明哥,一个专注「死磕 Java」系列创作的硬核程序员。 回答 在 JDK 1.6之前,synchronized 是一个重量级、效率比较低下的锁,但是在JDK 1.6后,JVM 为了提高锁的获取与释放效,,对 synchronized 进行了优化,引入了偏向锁和轻量级锁,至此,锁的状态有四种,级别由低到高依次为:无锁、偏向锁、轻量级锁、重量级锁。 锁升级就是无锁 —>

自动升级系统OAUS续

一.缘起       自从 自动升级系统的设计与实现(源码) 发布以后,收到了很多使用者的反馈,其中最多的要求就是希望OAUS服务端增加自动检测文件变更的功能,这样每次部署版本升级时,可以节省很多时间,而且可以避免手动修改带来的错误。   现在,我就简单介绍一下最新版本的OAUS中关于这个功能的实现。在上一个版本中,我们是这样操作的:           每次有版本更新时,我们需

自动升级系统OAUS

(最新OAUS版本请参见:自动升级系统OAUS的设计与实现(续))   对于PC桌面应用程序而言,自动升级功能往往是必不可少的。而自动升级可以作为一个独立的C/S系统来开发,这样,就可以在不同的桌面应用中进行复用。基于ESFramework的文件传送功能,我实现了一个可直接复用的自动升级系统OAUS,现在将其分享给大家。这篇文章将着重介绍OAUS的相关背景、使用方法,至于详细的实现细节,大

升级kali系统 进入后发现一直蓝屏

因为要出去晚饭 结果回来重启发现 一直蓝屏 感觉可能是升级过程中 什么软件的安装或者配置出了问题 就直接长按电源重启进入恢复模式 选择最新版的recovery Mode 然后输入  dpkg --configure -a 之后reboot重启  一切正常!