加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – Xcode 4.3 – 使用“http://”预处理plist不再

发布时间:2020-12-14 19:31:55 所属栏目:百科 来源:网络整理
导读:我刚升级到最新的4.3 Xcode. 我有我的plist.which预处理和4.2相比似乎不再工作. 我将Info.plist设置为其他预处理器标志 – 传统(以便能够跳过//视为注释). 我设置 #define MYSERVER http://127.0.0.1:1234/ 在我的plist keymyhost/key stringMYSERVER/string
我刚升级到最新的4.3 Xcode.
我有我的plist.which预处理和4.2相比似乎不再工作.

我将Info.plist设置为其他预处理器标志 – 传统(以便能够跳过//视为注释).

我设置

#define MYSERVER  http://127.0.0.1:1234/

在我的plist

<key>myhost</key>
    <string>MYSERVER</string>

当我签入新的Xcode 4.3时,我在NSDictionary * bundle = [[NSBundle mainBundle] infoDictionary]里面看到了;

myhost = "http:/ /127.0.0.1:1234/"

我快速破解了它.

NSString *hack = [[[[NSBundle mainBundle] infoDictionary] objectForKey:@"myhost"] stringByReplacingOccurrencesOfString:@" " withString:@""];
    url = [NSURL URLWithString:hack];

这使我的应用程序再次运行,但我希望有一个干净的解决方案.有任何想法吗?

解决方法

这实际上是clang预处理器中的一个错误,该错误随Xcode 4.3(clang 3.1)一起提供,它影响所有预处理,而不仅仅是Info.plists.我提交了一个错误( LLVM bug 12035,rdar:// 10883862).

解决方法是强制Xcode 4.3使用llvm-gcc进行Info.plist预处理而不是clang.我到目前为止找到的唯一方法是重写Info.plist预处理阶段中使用的“cc”符号链接:

sudo ln -fs /usr/bin/llvm-gcc /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc

为了恢复这个黑客,只需将其重写为clang:sudo ln -fs /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读