在应用程序包中添加符号链接

Apple在UILocalNotification类引用中指定音频文件必须来自应用程序包。 然而,一些聪明的怪人通过使用以下方法找到了解决这个限制的方法:

 // this works by going up the bundle dir, then pointing to the Documents dir localNotif.soundName = @"../Documents/blabla.caf"; 

这种解决方法在iOS 5中运行良好,然而,在iOS 6中打破了。在拼命尝试尝试并提出新的解决方法时,我创建了一个名为blabla.caf别名(Symbolic Link) ,指向../Documents/blabla.caf ,并将其放入应用程序包中。 这是我被卡住了。

现在,我收到了PBXCp error ,Xcode无法完成应用程序部署到设备,因为显然

错误:/Users/stuff/moreStuff/appName/../Documents/blabla.caf:没有这样的文件或目录


我的问题:

  1. 我可以以某种方式添加一个虚拟文件(0 KB)到Documents目录只是为了关闭Xcode?
  2. 我可以以某种方式强制Xcode覆盖此错误并继续生活部署应用程序?

如果在文件夹中放置符号链接到../../Documents/blabla.caf ,然后将该文件夹添加到项目中(确保在导入时设置“创建文件夹引用…”而不是“创建”组…“)然后Xcode将不会尝试在构建过程中解析链接。

我已经validation链接本身在应用程序中工作正常,但是如果folder/blabla.caf在其soundName属性中接受folder/blabla.caf ,我不确定是否在我的头顶。

尽管从捆绑包到文档目录的符号链接在iOS 7.1中工作,但如果要将应用程序放在AppStore中,则此解决方法将变得无法使用。 自2014年3月起,具有此类符号链接的应用不会转到审核中。

在我将包含此类链接的应用程序上传到iTunes连接后,我立即收到Invalid binary状态。 使用来自iTunes Store的以下邮件:

亲爱的开发者,

我们发现您最近交付的“X”存在一个或多个问题。 要处理您的交付,必须纠正以下问题:

无效的符号链接 – 您的包中包含符号链接“外部/文档”,该链接解析为不存在或位于包外的“外部/../../文档”位置。

问候,

App Store团队