【发布时间】:2011-09-01 04:20:21
【问题描述】:
Mac 应用最近因使用非公共 API(见下文)而被 Mac App Store 拒绝,我不确定如何解决该问题 - 主要是因为我不完全了解问题本身。
我尝试使用 otool -L 和 nm -u 来更好地了解问题,但我在终端中收到“无法映射文件”警告。
同样重要的是要注意我在应用程序中使用 PyObjC,我感觉这是这个问题的根源。
有人知道怎么解决吗?
2.5
使用非公共 API 可能会导致 糟糕的用户体验应该这些 API 在未来会发生变化,并且是 因此不允许。下列 非公共 API 包含在您的 应用:
'pthread_key_init_np',框架: '/usr/lib/libSystem.B.dylib' 'auto_assign_weak_reference', 框架:'/usr/lib/libauto.dylib' 'auto_collect',框架: '/usr/lib/libauto.dylib' 'auto_collect_multithreaded', 框架:'/usr/lib/libauto.dylib' 'auto_collection_parameters', 框架:'/usr/lib/libauto.dylib' 'auto_read_weak_reference',框架: '/usr/lib/libauto.dylib' 'auto_zone_add_root',框架: '/usr/lib/libauto.dylib' 'auto_zone_allocate_object', 框架:'/usr/lib/libauto.dylib' 'auto_zone_assert_thread_registered', 框架:'/usr/lib/libauto.dylib' 'auto_zone_atomicCompareAndSwap', 框架:'/usr/lib/libauto.dylib' 'auto_zone_atomicCompareAndSwapPtr', 框架:'/usr/lib/libauto.dylib' 'auto_zone_clear_stack',框架: '/usr/lib/libauto.dylib' 'auto_zone_create',框架: '/usr/lib/libauto.dylib' 'auto_zone_dump',框架: '/usr/lib/libauto.dylib' 'auto_zone_erase_associative_refs', 框架:'/usr/lib/libauto.dylib' 'auto_zone_get_associative_ref', 框架:'/usr/lib/libauto.dylib' 'auto_zone_get_layout_type', 框架:'/usr/lib/libauto.dylib' 'auto_zone_is_collecting',框架: '/usr/lib/libauto.dylib' 'auto_zone_is_finalized',框架: '/usr/lib/libauto.dylib' 'auto_zone_is_valid_pointer', 框架:'/usr/lib/libauto.dylib' 'auto_zone_register_datasegment', 框架:'/usr/lib/libauto.dylib' 'auto_zone_register_thread', 框架:'/usr/lib/libauto.dylib' 'auto_zone_release',框架: '/usr/lib/libauto.dylib' 'auto_zone_retain',框架: '/usr/lib/libauto.dylib' 'auto_zone_retain_count',框架: '/usr/lib/libauto.dylib' 'auto_zone_root_write_barrier', 框架:'/usr/lib/libauto.dylib' 'auto_zone_set_associative_ref', 框架:'/usr/lib/libauto.dylib' 'auto_zone_set_class_list',框架: '/usr/lib/libauto.dylib' 'auto_zone_set_write_barrier', 框架:'/usr/lib/libauto.dylib' 'auto_zone_size',框架: '/usr/lib/libauto.dylib' 'auto_zone_start_monitor',框架: '/usr/lib/libauto.dylib' 'auto_zone_unregister_datasegment', 框架:'/usr/lib/libauto.dylib' 'auto_zone_unregister_thread', 框架:'/usr/lib/libauto.dylib' 'auto_zone_write_barrier_memmove', 框架:'/usr/lib/libauto.dylib'
如果你在你的 同名的源代码 上述API,我们建议 更改您的方法名称,以便 他们不再与苹果的 避免您的应用程序的私有 API 在未来的提交中被标记。
此外,一个或多个 上述 API 可能位于 包含在您的库中 应用。如果您无权访问 到图书馆的来源,你可能是 能够搜索已编译的二进制文件 使用“字符串”或“otool”命令 线工具。 “字符串”工具可以 输出方法列表 库调用和“otool -ov”将 输出 Objective-C 类 结构及其定义的方法。 这些技巧可以帮助你缩小 有问题的代码在哪里 居住。
【问题讨论】:
-
如果您有付费开发者帐户,最好在 Apple 开发者论坛中提问