iOS8中,Appstore的审查员是否允许我们使用动态库?

13

我阅读了许多关于动态库使用的文章,包括这个页面 "Can you build dynamic library..."。根据苹果文档所说,"iOS 的框架。iOS 开发人员现在可以创建动态框架。框架是一组代码和资源,用于封装跨多个项目有价值的功能。框架与扩展完美配合,共享可由主应用程序和打包扩展使用的逻辑。",请从这里查看完整页面。

考虑到安全问题,我得到了动态库在 iOS8 之前被拒绝的原因,有关详情请参见 "DarkDust 的答案"。但是,在 iOS8 中它是如何“工作”的呢?@appstore_reviewers?

无论如何,目前我正在编写一个示例演示应用程序,并尝试将其上传到 Appstore 进行审查,其主要功能是从互联网上下载框架并 dlopen 它。希望它确实能“只需轻轻一点”!

此外,部署目标是 iOS7.0,不确定它是否能够正常工作。我没有很清楚地了解“动态库”和“框架”的区别,我认为它们是相同的,而在这个线程中,我指的是 Xcode 6 中可以创建的“Cocoa-touch 框架”。

一些背景:我正在尝试构建一个不包含扩展功能的 iOS 应用程序,我的 Cocoa-touch 框架是为了方便扩展而来自于互联网,无需上传新版本....

更新 我发布了一个演示项目GMDemo here,将尝试上传到 Appstore。

更新2 在 iOS 设备上多次尝试后,我未能使用无效代码签名错误 dlopen 我的动态框架。抱歉,这里没有好消息。(几乎忘记更新这个问题了,抱歉!顺便说一句)


1
首先,框架只是库的容器。它可以包含静态库或动态库。您将无法在iOS 7上链接动态库。此外(我没有任何证据支持这一点),我不希望您能够从网络下载动态库加载。这将是一个巨大的安全漏洞。我想象苹果公司只允许加载签名的动态库,也就是那些与应用程序捆绑在一起并通过应用审核流程进行审核的库。 - Bartek Chlebek
@BartekChlebek:这就是问题的关键:用事实代替猜测 :-) 它归结为两个问题:1)iOS是否允许您加载应用程序包之外的库(在这里:下载的库)?实际上很容易测试;只需要有人实现这一点。2)即使iOS允许您这样做,App Store规则是否允许您这样做?换句话说,如果评审员注意到您这样做,您会被拒绝吗? - DarkDust
1
  1. 你不能写入bundle,绝对不能在运行时之外进行。
  2. 实际上它只是在几周前更新过。顺便说一下,不要指望这很快就可能实现。App Store审核的整个目的是由苹果公司验证代码。如果你可以在审核后注入任何你想要的东西,那么这将失去其意义。
- Bartek Chlebek
@Itachi 你的尝试有任何更新吗? - Du Song
@DuSong 这里没有什么好运气,参见上面的UPDATE2。 - Itachi
显示剩余3条评论
2个回答

7

1
现在已经没有2.7了,现在是2.4.5(iv)。 - DaNeSh
“下载代码”与使用已部署的动态链接库有什么关系? - Alexander Nassian

-1

更新3:只需使用相同的代码签名!!!

我已在Ad-hoc环境中测试过了!

当我的动态库使用相同的代码签名时,它可以正常工作,否则会崩溃!!


你是如何为你的动态库进行代码签名的?是通过Xcode完成的吗?请分享一些细节,谢谢! - Itachi
1
@Itachi,与为分发签署项目代码相同!通过使用托管项目的相同buddleID、provision文件清除旧框架并构建新框架~ - Sanzrew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接