编译XCODE的时候,如果修改从10.8到10.7版本
2014-07-18 09:34
337 查看
将高版本修改成低版本,主要目的是支持低版本,同时支持高版本,这样程序可以在更多的电脑上运行。
当然只是OS X10.7(含)以上的操作系统上。
目前2014-7-18 最高版本是
现行的最新的系统版本是OS X 10.10 Yosemite,且网上也有在PC上运行的Mac系统,简称 Mac PC。
首先要做的事情是:
Architectures->Basic SDK: OS X10.7
OS X Deployment Target :OS X10.7
如果你找不到以上选项,就找 OS X10.8 (或者其他的)字符,在Build Settings里面。
编译,OK!成功!
不会出现任何错误!
如果你忘记上面2项设置一致,会出现以下错误!
(1)
出现错误:
lazy symbol binding failed: Symbol not found: _objc_setProperty_atomic
可更改deployment target使起小于os sdk 。
若工程中添加了其他工程 则也应该更改起deployment target
Architectures->Basic SDK: OS X10.7
OS X Deployment Target :OS X10.7
修改一致就可以了。
(2)
这里不要修改,只要保持一致,就编译没有错误。
只是这里可以作为以后其他代码同类错误出现,一个修改方法的参考:
GetMetadataForFile.m
MySpotlightImporter.m
这些系统自动在新建的时候,当选择了后,自动生成的代码,在10.8 -》10.7的时候也会编译错误,
以下是一些修改。
NSObject *contentToIndex = [metadatavalueForKey:@"YOUR_INFO"];
[spotlightDatasetValue: yourDisplayStringforKey:(NSString *)kMDItemDisplayName];
//spotlightData[(NSString *)kMDItemDisplayName] = yourDisplayString;
//NSDate *modelModificationDate = modelFileAttributes[NSFileModificationDate];
NSDate *modelModificationDate = [modelFileAttributesvalueForKey:NSFileModificationDate];
//((__bridge NSMutableDictionary *)attributes)[(NSString *)kMDItemTextContent] = contentToIndex;
[((__bridgeNSMutableDictionary *)attributes)setValue:contentToIndex
forKey: (NSString *)kMDItemTextContent];
补充:
在编译的时候寻找帮助:
按住command或者win键盘,双击函数,就会出现解释。
然后在里面,可以很快找到使用函数的方法。
完。
当然只是OS X10.7(含)以上的操作系统上。
目前2014-7-18 最高版本是
现行的最新的系统版本是OS X 10.10 Yosemite,且网上也有在PC上运行的Mac系统,简称 Mac PC。
首先要做的事情是:
Architectures->Basic SDK: OS X10.7
OS X Deployment Target :OS X10.7
如果你找不到以上选项,就找 OS X10.8 (或者其他的)字符,在Build Settings里面。
编译,OK!成功!
不会出现任何错误!
如果你忘记上面2项设置一致,会出现以下错误!
(1)
出现错误:
lazy symbol binding failed: Symbol not found: _objc_setProperty_atomic
可更改deployment target使起小于os sdk 。
若工程中添加了其他工程 则也应该更改起deployment target
Architectures->Basic SDK: OS X10.7
OS X Deployment Target :OS X10.7
修改一致就可以了。
(2)
这里不要修改,只要保持一致,就编译没有错误。
只是这里可以作为以后其他代码同类错误出现,一个修改方法的参考:
GetMetadataForFile.m
MySpotlightImporter.m
这些系统自动在新建的时候,当选择了后,自动生成的代码,在10.8 -》10.7的时候也会编译错误,
以下是一些修改。
NSObject *contentToIndex = [metadatavalueForKey:@"YOUR_INFO"];
[spotlightDatasetValue: yourDisplayStringforKey:(NSString *)kMDItemDisplayName];
//spotlightData[(NSString *)kMDItemDisplayName] = yourDisplayString;
//NSDate *modelModificationDate = modelFileAttributes[NSFileModificationDate];
NSDate *modelModificationDate = [modelFileAttributesvalueForKey:NSFileModificationDate];
//((__bridge NSMutableDictionary *)attributes)[(NSString *)kMDItemTextContent] = contentToIndex;
[((__bridgeNSMutableDictionary *)attributes)setValue:contentToIndex
forKey: (NSString *)kMDItemTextContent];
补充:
在编译的时候寻找帮助:
按住command或者win键盘,双击函数,就会出现解释。
然后在里面,可以很快找到使用函数的方法。
完。
相关文章推荐
- 两个工程有交集的时候,如果不重新编译两个工程等于没有修改工程
- 如果Xcode允许编译的项目版本比设备版本高怎么办?
- xcode 4 最低的要求是 10.6.6的版本,如果你是 10.6.3的版本,又不想升级的话。可以考虑通过修改版本号的方法进行安装
- 【Visual Studio 2010】修改注册表解决误删除某一版本sdk后的编译故障
- Xcode4.2、iOS各版本以及ARMv6、ARMv7编译架构介绍
- 如果依赖的库文件是由低版本gcc编译的怎么办
- 高版本(10.7.x)苹果系统中安装xcode 3.2.5/3.2.6 解决方案
- 函数默认值的设置放在声明的时候,在定义的时候如果设置默认值,编译会出错
- 【Cocos2d-X(2.x) 游戏开发系列之二】cocos2dx最新2.0.1版本跨平台整合NDK+Xcode编译到Android 推荐
- 弄VLC的时候 eclipse编译多线程程序如果出现问题 注意这个地方
- VS2008下最新X264(svn 2009.0216)编译不过的解决办法(附编译通过+修改内存泄露版本)
- qt/Embedded版本 修改编译工具 注意事项
- xcode 高版本sdk编译适合低版本sdk的设置
- 修改Linux内核版本(已编译多内核的情况下)
- 用VS2008编译C++的时候系统提示【 “#include "student.h"”: 在查找预编译头使用时跳过 】应该怎样修改
- 修改编译android文件系统编译链版本
- 如果只修改部分代码如何避免整个工程重新编译
- 修改Xcode配置使其支持创建编译iphone上的dylib工程
- 如果文件夹包含无版本控制的文件,则标识为已修改
- Qt3.6.3编译pc版本的时候:collect2:ld terminated with signal 11