Xcode打包踩过的那些坑

简介: 一、file was built for archive which is not the architecture being linked (armv7s) 项目是基于cocos2d-x绑定lua进行开发的,需要引用liblua.a静态库,编译的时候报上面的错。

一、file was built for archive which is not the architecture being linked (armv7s)

项目是基于cocos2d-x绑定lua进行开发的,需要引用liblua.a静态库,编译的时候报上面的错。需要将liblua项目中的build Settings配置项中的“Build Active Architecture Only”改为YES  (是否只编译当前适用的指令集)

 

关于这个属性,直接从网上转载过来(关于Build Active Architecture Only属性)

这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本。
而设置为no时,会编译所有的版本。
这个是设备对应的architecture:
armv6:iPhone 2G/3G,iPod 1G/2G
armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G
armv7s:iPhone5, iPod5

编译出的版本是向下兼容的,比如你设置此值为yes,用iphone4编译出来的是armv7版本的,iphone5也可以运行,但是armv6的设备就不能运行。

 

目前IOS的指令集

armv6    iPhone、iPhone2、iPhone3G、第一代和第二代iPod Touch

armv7    iPhone4、iPhone4S

armv7s   iPhone5、iPhone5C

arm64    iPhone5S

 

二、宏定义

c++代码中很多地方是通过宏控制的,所有对于宏的检查要很仔细。Debug、Release二个版本的宏定义是不一样的,要注意有所区别。所以这里定义出了问题,那自然build测试时跟预期的不一样,而且很难定位问题

 

三、Search Path

这里很容易出错,比如接入第三方SDK时需要引入相应的.framework文件。这里的路径最好使用相对路径(比如使用${SRCROOT}),以避免切换另外一台mac时用户名不一致导致无法编译,需要重新修改路径的问题。

头文件,这里记得补全,不然编译时就会报找不到头文件…

最后一个Library Search Paths比较坑,被这个坑了比较长时间。我使用workspace跟直接打开xcodeproject生成的静态链接库路径不一样,然后切换的时候,在这里并未删除相应的路径,导致一直优先从旧的.a库中查看,结果可想而知。无论我怎么去清理、重新编译,都无法看到改动后的效果

…/xx.a

../xx/xx.a

它会优先找上面的xx.a,然后再找xx下的xx.a。如果在xx.a中找到对应的方法,就不再往下查找了,所以这里就有坑了…

一般这里会按照这样的格式输入路径“$(SRCROOT)/../libs/Release$(EFFECTIVE_PLATFORM_NAME)”

$(SRCROOT)宏代表您的工程文件目录,$(EFFECTIVE_PLATFORM_NAME)宏代表当前配置是OS还是simulator

 

四、LLVM的编译参数

 

一般都采用默认的,有一些特殊的SDK,则需要修改相应的选项。

还有一个就是Other Linker Flags的参数设置,根据需要进行设置(点击查看Other Linker Flags详解>>)

 

五、向工程中添加文件时的选择

Create groups for any added folders 与 Create folder references for any added folders

上面这张图已经描述比较清楚了,如果想了解更详细的,可以参数这里:Cocos2d-x Create groups for any added folders 与 Create folder references for any added folders

 

Copy items into destination group’s folder一般在debug时是不会选中的,多数情况下我们使用"references”较为,创建组的方式,添加的文件(如cpp)会被编译。

 

暂时就想到这几个坑了,还有很多坑,有空再一并整理出来。新手上路,总归遇到的问题会比较多

目录
相关文章
|
2月前
|
Linux 数据安全/隐私保护 iOS开发
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
|
存储 XML jenkins
iOS 底层原理38:自动化打包(一)Xcode + Shell脚本
iOS 底层原理38:自动化打包(一)Xcode + Shell脚本
2426 1
iOS 底层原理38:自动化打包(一)Xcode + Shell脚本
|
11月前
|
Linux 数据安全/隐私保护 iOS开发
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
苹果开发者账号认证需要支付 688 元,对于初学 iOS 开发的同学来说,仅仅是为了进行内测而不需要上架 App Store,这样的费用是不必要的。
|
11月前
|
数据安全/隐私保护 iOS开发 开发者
2022最新xcode打包IPA(完整详细图文)
本文详细讲述iOS的App开发后如何进行证书的创建和项目中如何配置证书及上传到苹果App管理后台后如何新增与更新版本。
|
11月前
|
Linux 数据安全/隐私保护 iOS开发
如何使用Xcode打包导出IPA文件并进行iOS应用内测,无需支付苹果开发者账号费用?
苹果开发者账号认证需要支付688元,对于初学iOS开发的同学来说,仅仅是为了进行内测而不需要上架App Store,这样的费用是不必要的。但是,有一款名为APP Uploader的软件可以解决这个问题,只需要注册苹果个人开发者账号,无需支付688元认证,即可打包自己开发的iOS应用,并提供给他人测试。
|
11月前
|
Linux 数据安全/隐私保护 虚拟化
Ios上架app无需688,xcode打包导出IPA,供人内测
无需支付688苹果开发者账号,xcode打包导出ipa,提供他人进行内测 众所周知,在开发苹果应用时需要使用签名(证书)才能进行打包安装苹果IPA,作为刚接触ios开发的同学,只是学习ios app开发内测,并没有上架appstore需求
|
11月前
|
Linux 数据安全/隐私保护 虚拟化
xcode 打包导出 ipa
众所周知,在开发苹果应用时需要使用签名(证书)才能进行打包安装苹果 IPA,作为刚接触 ios 开发的同学,只是学习 ios app 开发内测,并没有上架 appstore 需求
|
11月前
|
Linux 数据安全/隐私保护 虚拟化
xcode打包导出ipa
xcode打包导出ipa
|
iOS开发
打包Generic Xcode Archive问题
近期在对项目进行打包,发现打出来的Archive没有bundle ID,什么信息都没有,只是显示Generic Xcode Archive,如图
97 0
|
API iOS开发 开发者
Xcode自动打包和上传蒲公英平台脚本(用python实现)
工作中,特别是所做项目进入测试阶段,肯定会经常打 Ad-hoc 包给测试人员进行测试,但是我们肯定不想每次进行打包的时候都要进行一些工程的设置修改,以及一系列的 next 按钮点击操作,现在就让这些操作都交给脚本化吧!
309 0