2

我可以使用 adhoc 分发和测试我的应用程序,但是当我在管理器中验证应用程序商店提交时(xcode 4.3.2 - 产品>存档>验证)我收到以下错误

  • 您的应用包含非公共 API 使用
  • 该应用程序引用了有效载荷/appname.app/libsqlite3.dylib 中的非公共符号:_dispatch_source_type_vm

我的应用程序使用 sqlite3 存储从 youtube 获取的数据,即视频标题和相应的图像 url(最多 10 条记录)

我已经删除并添加了 lib 文件,将部署目标设置为 4.0,请帮助

4

2 回答 2

14

从 Apple 团队获得解决方案

  • Apple 的回应(DTS - 开发者技术支持):

“您应该只链接到 libsqlite3.dylib 库。您不需要将其复制到您的应用程序中,因为 iOS 附带 SQLite3 库”。

  • 解决方案:

从 xcode 中删除 libsqlite3.dylib 并将“-libsqlite3”添加到 Project > Build Settings 和 Target > Build Settings 下的“Other Linker Flags”。


验证成功,并将应用程序提交到应用商店进行审核...只是更新仅供参考 应用程序获得批准

于 2012-09-22T06:03:55.320 回答
4

正确的标志应该是“-lsqlite3”,因为 ls 语法是(参见 $man ld):

-lx 此选项告诉链接器在库搜索路径中搜索 libx.dylib 或 libx.a。如果字符串 x 的形式为 yo,则在相同的位置搜索该文件, 但不会lib' or appending在文件名前添加 .a' 或 `.dylib'

如果你使用'-libsqlite3' 作为标志,你会得到“找不到库”链接器错误。

于 2013-12-13T00:10:33.340 回答