4

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: そのようなファイルまたはディレクトリはありません


私の質問:

  1. DocumentsXcode をシャットダウンするためだけにダミー ファイル (0 KB) をディレクトリに追加できますか?
  2. どうにかして Xcode にこのエラーをオーバーライドさせ、アプリの展開を続けることはできますか?
4

2 に答える 2

7

バンドルからドキュメント ディレクトリへのシンボリック リンクは iOS 7.1 で動作しますが、AppStore にアプリを配置する場合、この回避策は役に立たなくなります。2014 年 3 月以降、このようなシンボリック リンクを含むアプリは審査に通過しません。

バンドル内のそのようなリンクを含むアプリを iTunes Connect にアップロードすると、Invalid binaryすぐにステータスが表示されます。iTunes Store からの次のメール:

開発者各位

「X」の最近の納品に 1 つ以上の問題が見つかりました。配送を処理するには、次の問題を修正する必要があります。

無効なシンボリック リンク - パッケージには、存在しないかパッケージの外部にある場所「External/../../Documents」に解決されるシンボリック リンク「External/Documents」が含まれています。

...

よろしく、

App Store チーム

于 2014-03-19T10:29:06.530 に答える
2

フォルダー内にシンボリックリンクを配置し、../../Documents/blabla.cafそのフォルダーをプロジェクトに追加すると (インポート時に「グループの作成...」ではなく「フォルダー参照の作成...」が設定されていることを確認してください)、Xcode は機能しません。ビルド プロセス中にリンクの解決を試みます。

folder/blabla.cafリンク自体がアプリで正常に機能することを確認しましたが、UILocalNotification がその soundName プロパティで受け入れるかどうかは頭の中でわかりません。

于 2013-08-06T15:59:58.083 に答える