問題タブ [appstore-sandbox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - サンドボックス化されたアプリで NSFileManager を使用して NSApplicationScriptsDirectory にアクセスする
このコードを使用してアプリケーション スクリプトのデフォルト フォルダにアクセスするのに少し問題があります (これが正しい方法だと思います)。
問題は、両方の NSLog 呼び出しが print(null)
であることです。つまり、何も得られません。私は何を間違っていますか?
objective-c - NSUserScriptTask: タスクをキャンセルしますか?
実行中の NSUserScriptTask をキャンセルする方法はありますか? 頭に浮かぶ唯一の方法は、NSTask を介して別のプロセス (コマンド ライン ツール) を起動することです。その唯一の目的は、NSUserScriptTask を実行することであり、必要に応じて NSTask を介してコマンド ライン ツールを終了します。ただし、それは少し大げさで、あまり最適化されていないようです...何かアイデアはありますか?
objective-c - NSUserScriptTask:受け入れられるファイルタイプ?
NSUserScriptTaskを使用して、ユーザーがApplicationScriptsディレクトリに配置したスクリプトを実行しています。ただし、NSUserScriptTaskが受け入れる既知のタイプのスクリプトを見つけるのは難しいと感じており、ドキュメントもあまり役に立ちません...何かアイデアはありますか?
これまで私はこれらを試しました:
- .sh
- .applescript
- .scpt
- .scptd
- 。TXT
そして、それらのいずれも機能させません(initWithURL:error:
メソッドはnilを返します)
編集: 私はエラーを含めるのを忘れました!愚かな私...ログに印刷されるものは次のとおりです。
cocoa - Apple サンドボックス: Document スコープのブックマークの NSDocument のアトミック セーブを無効にする
この質問を Apple のデベロッパー フォーラムに投稿しましたが、1 週間たっても返信がありませんでした。
標準のドキュメント ベースのアプリケーション (NSDocument を使用し、単純な XML ファイルを保存) を作成しました。これを拡張して、ドキュメント スコープのブックマークをユーザーが選択した外部ファイルにも保存する必要があります。
ドキュメント スコープのブックマークがファイルから読み取った後に解決されないという事実を除けば、すべてが機能しています。これは、NSDocument がファイルをアトミックに書き込むためです。
バックグラウンド
報告されたエラーに関する情報を Apple の開発者フォーラムや Web 検索で見つけるのは非常に困難であることがわかったので、同じボートに乗っている他の誰かを助けることができるように、見つけたことをすぐに文書化します。
失敗した試行によって返されるエラーは次のとおりです。
エラー Domain=NSCocoaErrorDomain Code=256 「ファイル “somefile.xml” を開けませんでした。」
ここで、紛らわしいことに、somefile.xml (のファイル名コンポーネント) は、以下のコード ブロックで「relativeToURL:」として渡される絶対 URL です。
アプリ サンドボックス: ドキュメント スコープのブックマークが解決しないなどのレポートがあります。アトミック ファイルの保存が有効になっている場合、サンドボックス/ブックマークの問題を示唆するエラーは返されません。
この問題の以前のレポートでは、同じエラーは発生しません (通常、エラー メッセージのない失敗を指します)。ファイルの書き込み時に次のコードを使用すると、上記と同じエラー メッセージが表示されます。
最終行を「atomically:NO」に変更すると、ブックマークが正しく解決され、すべてが期待どおりに機能します。
NSDocument とアトミック書き込み
NSDocument のデフォルトおよび推奨セットアップはアトミック書き込みを使用し、これはサンドボックスのコア機能の 1 つでは機能しないため、ドキュメント スコープのブックマークと NSDocument を連携させる方法を探しています。 NSDocument に、原子的にではなく直接ファイルを書き込むようにします。
Apple のフレームワークの失敗を回避する有効な解決策 (これらのフォーラムまたはより広い検索で) をまだ見つけていません。
私はの1つをオーバーライドすることができました
- writeSafelyToURL:ofType:forSaveOperation:エラー:
- writeToURL:ofType:forSaveOperation:エラー:
- saveToURL:ofType:forSaveOperation:completionHandler:
ただし、いずれの場合も、ドキュメントには「このメソッドをオーバーライドする場合は、必ずスーパークラスの実装を呼び出すようにしてください」と記載されており、おそらくファイルをアトミックに保存し続けます。
私の目標は、Apple が (良くも悪くも) 開発者に押し付けている他のユーザー エクスペリエンスの期待を引き続きサポートできるような方法でそれを行うことです。autosavesInPlace、バージョンなど。しかし、AppStore にリリースできるサンドボックス化されたアプリケーションを機能させるために、これらの機能を喜んで犠牲にします。
objective-c - NSUserScriptTask の問題
私は最近の NSUserScriptTask クラスとそのサブクラスを使って何とかしようとしてきました (これとこれを見てください)。docsからわかるように、 NSUserScriptTask はタスクのキャンセルを許可しません。そこで、スクリプトへのパスを引数として取り、スクリプトを実行する単純な実行可能ファイルを作成することにしました。そうすれば、NSTask を使用してメイン アプリからヘルパーを起動し、[task terminate]
必要に応じて呼び出すことができます。ただし、次のものが必要です。
- 起動したヘルパーから出力とエラーを受け取るメイン アプリ
- NSUserScriptTask が完了したときにのみ終了するヘルパー
メイン アプリのコードは単純です。適切な情報を指定して NSTask を起動するだけです。これが私が今持っているものです(簡単にするために、セキュリティスコープのブックマークなどのコードは無視しましたが、これは問題外です。ただし、これがサンドボックスで実行されていることを忘れないでください):
(a) タスクがキャンセルされた (b) スクリプトの実行が終了したため、タスクが勝手に終了した場合にのみ、終了ハンドラーを実行する必要があることを思い出してください。
さて、ヘルパー側では、少なくとも私にとっては厄介なことになり始めています。簡単にするために、スクリプトが AppleScript ファイルであると想像してみましょう (そのため、NSUserAppleScriptTask サブクラスを使用します。現実の世界では、3 種類のタスクに対応する必要があります)。これが私がこれまでに得たものです:
ここで、3 つの質問があります (この SO エントリで聞きたい質問です)。まず、「終了したタスク」は印刷されません (ブロックは呼び出されません)。これは、タスクが実行を開始することさえないためです。代わりに、コンソールでこれを取得します。
メインアプリからまったく同じコードを実行してみましたが、大騒ぎせずに完了しました(ただし、メインアプリからはスクリプトをキャンセルできなくなりました)。
第二return 0;
に、完了ハンドラが呼び出された後にのみ main() の最後に到達したい。しかし、私はそれを行う方法がわかりません。
三番目に、ヘルパーからのエラーまたは出力があるときはいつでも、そのエラー/出力をアプリに送り返し、アプリは errorPipe/outputPipe を介してそれらを受け取ります。のような何かfprintf(stderr/stdout, "string")
がトリックを行いますが、それが正しい方法であるかどうかはわかりません。
したがって、要するに、最初と 2 番目の問題に関するヘルプは大歓迎です。3 つ目は、それが本来のやり方であることを確認したいだけです。
ありがとう
iphone - アプリ内購入サンドボックス テスト サーバーでの遅延
アプリ内購入のテスト中に、サンドボックス環境への接続に問題があります。問題は次のとおりです。
1- xcode の ios シミュレーター.. サンドボックス サーバーへの接続に時間がかかりすぎます。ただし、アドオンを購入すると、そこからすべてがスムーズに進みます。ここでの問題は、Apple サーバーに接続して購入を確認するのに時間がかかることです。所要時間は2~3分程度です。
2-バイナリをiPhoneにアップロードしてテストしましたが、iPhoneでもサーバーに接続するのに数分かかりました。しかし、問題は、Apple が購入を確認するように私に尋ねた後、私が「はい」と答えたことです。何も起こりません。テスト ユーザーの Apple 資格情報を入力してアドオンを購入することはできません。
誰かが同様の問題を抱えていましたか?なぜそんなに時間がかかるのかをテストする方法はありますか?また、iPhoneでアプリを実行しているときにエラーが返されるかどうかを確認する方法はありますか??
ご協力いただきありがとうございます。
ios - 現時点では、iTunes サンドボックスの購入は許可されていません
アプリ内購入を使用してアプリを開発していますが、次のエラーが発生します:
現在、サンドボックスでこの InApp を購入する権限がありません。
すべてが正しく設定されていると確信しています。アイテムを購入するためのサンドボックス アカウントを作成しました。私のコードは無傷で ( Ray Wenderlichのおかげです)、他のすべては順調に進んでいると確信しています。しかし、何かが正しくないはずです。
このエラーの原因は何ですか?
編集:
私はXcodeシミュレーターに取り組んでいます。
nsurl - セキュリティ スコープのブックマークに対する現在のカーネル リソースの制限は?
状態のドキュメント-[NSURL startAccessingSecurityScopedResource]
:
startAccessingSecurityScopedResource メソッドへのすべての呼び出しと、対応する stopAccessingSecurityScopedResource メソッドへの呼び出しのバランスを取る必要があります。ファイル システム リソースが不要になったときにアクセス権を放棄しなかった場合、アプリはカーネル リソースをリークします。十分なカーネル リソースがリークされた場合、アプリは再起動されるまで、Powerbox やセキュリティ スコープのブックマークなどを介してサンドボックスにファイル システムの場所を追加する機能を失います。
カーネルリソースの実際の制限が何であるかについて、誰かが光を当てることができますか?
私は自分のアプリをこれらの正確な制限に到達させたくありません。コードが危険な/愚かなことをしていないかどうかを判断できるように、大まかな数字を知っておくと便利です.
objective-c - Scripting Bridge とサンドボックスによる iTunes スクリプティング
ScriptingBridge フレームワークを使用して音楽を再生するように iTunes に指示するアプリがあります。このアプリは、プレイリストまたは特定のトラックを再生するように iTunes に指示します。アプリもサンドボックス化されています。
プレイリストを再生するために、ここに私が持っているものがあります:
トラックを再生する方法も非常に簡単です。
私のアプリはサンドボックス化されているため、資格ファイルに次の行があります。
アプリのサンドボックスを使用せずにテストしたところ、コードは完全に機能します。サンドボックスを使用すると、プレイリスト コードは正常に機能しますが、トラックの再生は機能しません。コンソール アプリで確認しましたが、sandboxd とアプリに関するログは何も記録されていないようです。
最初access-group
は、資格ファイルにいくつか欠けているのではないかと思っていましたが、すでに資格ファイルを持っているので意味がないと思いましたplayback
。そして、ネット上でiTunesのアクセスグループのリストを見つけることができませんでした(sdefを使用してiTunesからプロパティリストを取得し、「アクセスグループ」を検索しようとしましたが、何も見つかりませんでした-そこにありません)ので、できませんでしたさらに必要かどうかを確認します。
要約すると、サンドボックスがこれを妨げているのはなぜですか?
ios - 目標 C: 複数のダウンロード
オンラインサーバーからpdfファイルをダウンロードするアプリを作ろうとしています。私がしたことは、3 つの異なる URL を持つ 3 つのボタンを作成し、アプリのサンドボックスに保存して iBooks で開くことでした。
しかし、アプリがクラッシュし、このエラーが発生しています...
これが私のコードです:ボタンクリック時:
ファイルを開くには:
答えが見つかることを願っています。