【问题标题】:json-framework doesn't work with iPhone SDK 3.0json-framework 不适用于 iPhone SDK 3.0
【发布时间】:2009-04-10 20:19:01
【问题描述】:
在使用 JSON 框架 http://code.google.com/p/json-framework/ 和 iPhone SDK 3.0 时,我似乎无法编译我的应用程序。
我的应用程序在模拟器上编译得很好,但是当我为我的设备编译时,我得到一个“代码设计错误”代码 1。我正确地遵循了所有安装说明,当我删除了“附加 SDK”时参考和“其他链接器标志:-Obj-C -ljson”它编译得很好......但显然我不能在我的应用程序中使用 JSON。
有什么想法吗?
【问题讨论】:
标签:
objective-c
iphone
json
【解决方案1】:
您可能只想切换到代码版本,而不是在静态库中链接。
它应该可以在 3.0 上编译并正常工作。
【解决方案2】:
在我自己的项目中,我也遇到了这个问题。我无法使用 iPhone 3.0 SDK 为 iPhone OS 2.x 构建我的应用程序。
解决方法是在项目级别设置以下内容(获取信息):
- BaseSDK 到 iPhone 设备 3.0
- iPhone 部署目标到 iPhone OS 2.x
- 相同 2.x plist 的代码签名资源规则路径(例如 /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/ResourceRules.plist)
最后一位允许分发(应用商店)构建以正确进行代码签名...否则您将遇到错误“目标文件格式无效或不合适”,因为代码签名者默认使用与BaseSDK(即 3.0),不适用于 2.x 应用。
此外,请务必在 target 级别清除上述任何设置(同样,通过 Get Info)。
呼。
【解决方案3】:
协同设计错误意味着您没有使用当前构建设置尝试编译到的设备的有效配置文件。
您可以构建示例应用并将其部署到您的手机吗?
【解决方案4】:
我开始为 iPhone 使用可爱的 json 框架,但突然发现,如果我为设备编译大于 2.1 的任何东西,它会弹出:
代码设计错误:“目标文件格式无效或不合适”
我花了很长时间才弄清楚发生了什么,但是感谢一篇博客文章,修复是这样的:
在项目设置的构建选项卡上,搜索“代码签名资源规则路径”并将“$(SDKROOT)/ResourceRules.plist”设置为其值。
我不确定它是如何工作的,因为它看起来就像它已经拥有的路径,但是嘿,它似乎工作!
这解决了我遇到的代码设计错误,但现在由于某些其他原因我无法在 3.0 上编译。我将尝试链接到代码而不是库。
【解决方案6】:
似乎代码签名没有扩展到框架。您是否尝试过以不同方式链接框架?