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
指向../Documents/blabla.caf
,并将其放入应用程序包中。这是我被困住了。
现在,我收到PBXCp error
,Xcode无法完成设备的应用程序部署,因为显然
错误:/Users/stuff/moreStuff/appName/../Documents/blabla.caf:没有这样的文件或目录
我的问题:
Documents
目录添加一个虚拟文件(0 KB),只是为了关闭Xcode吗?答案 0 :(得分:5)
尽管捆绑包到文档目录的符号链接适用于iOS 7.1,但如果您要在AppStore中放置应用程序,则此解决方法将变得无法使用。自2014年3月起,具有此类符号链接的应用无法通过进行审核。
在我将包含此类链接的应用程序上传到iTunes连接后,我立即收到Invalid binary
状态。随后来自iTunes Store的邮件:
亲爱的开发人员,
我们发现您最近交付的一个或多个问题 " X&#34 ;.要处理您的交付,必须纠正以下问题:
无效的符号链接 - 您的包中包含符号链接 '外部/文档'解析到一个位置 '外部/../../文档'不存在或不存在的 封装
...
此致
App Store团队
答案 1 :(得分:2)
如果在文件夹中放置一个符号链接到../../Documents/blabla.caf
,然后将该文件夹添加到项目中(确保在导入时设置了“创建文件夹引用...”而不是“创建组... 。“)然后Xcode将不会尝试在构建过程中解析链接。
我已经验证了链接本身在应用程序中运行良好,但是如果UILocalNotification在其soundName属性中接受folder/blabla.caf
,我不确定是否在我的头脑中。