問題タブ [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.
cocoa - ライオンサンドボックスのクラッシュレポートの場所
Lionのアプリケーションをサンドボックス化したところ、クラッシュレポートがまだ〜/ Library / Logs/CrashReporterに送信されていることに気付きました。それらをContainerLogsディレクトリに保存する方法はありますか?
objective-c - サンドボックス アプリでユーザーのホーム ディレクトリを取得するにはどうすればよいですか?
NSHomeDirectory()
ホームディレクトリではなく、サンドボックスのルートを戻しています。[@"~" stringByExpandingTildeInPath]
同じことをしています。
これ/Users/username/Library/Containers/appID/Data
が返ってきたものです。どうすれば入手でき/Users/username/
ますか?
macos - CFMessagePort とサンドボックス化
サンドボックスを使用するように MacOS アプリケーションを調整しています。コンソールで「deny mach-lookup」メッセージを使用して CFMessagePortCreateRemote を呼び出そうとすると失敗するヘルパー アプリケーション (同じバンドル内の exe) を使用します。
エンタイトルメント キーでこれを解決できることがわかりcom.apple.security.temporary-exception.mach-lookup.global-name
ますが、これは一時的なものです。
サンドボックス化されたアプリケーションでマッハ ポートを使用して 2 つのアプリ間の通信を実現する方法はありますか?
エラー:
*** CFMessagePort: bootstrap_register(): 失敗しました 1100 (0x44c) '許可が拒否されました'、ポート = 0x14807、名前 = 'XXXYYYZZZZ.MyAppGroupName'
objective-c - OS X サンドボックス: LSOpenFromURLSpec() が -10827 を返しました
ログイン後にメインアプリを起動するための小さなヘルパーアプリケーションを使用しています。しかし、LSOpenFromURLSpec() がエラー コード -10827 を返すため、メイン アプリを起動できません。
以下を使用しているかどうかは問題ではありません:
また:
毎回エラーを返します。どうすれば修正できますか?
objective-c - セキュリティスコープのブックマークを作成する際の問題
アプリサンドボックスを使用するようにLionアプリを変換しています。10.7.3で導入されたセキュリティスコープのブックマーク機能を利用して、フォルダへの永続的なアクセスを許可しようとしています。以下のコードはnilブックマークを返し、次のログメッセージを生成しますXPC couldn't look up the Mach service for scoped bookmarks agent
。
User Selected File Access
エンタイトルメントをに設定し、周囲の呼び出しがある場合Read/Write Access
とない場合も試しました。..AccessingSecurityScopedResource
ドキュメントに従ってすべてを正しく行っていると思うので、ポインタをいただければ幸いです。アプリのサンドボックス化を開始する前に、コードはプレーンURLを取得するように機能していました。
アップデート(x3)
これで動作するようになったので、ユーザーがでリソースを選択した後にPowerboxがリソースへのアクセスを許可するため、上記のコードでの呼び出しが不要である-startAccessingSecurityScopedResource
ことを確認できます。-stopAccessingSecurityScopedResource
NSOpenPanel
別のアプリセッションで作成されたアプリスコープのブックマークからドキュメントスコープのブックマークを作成するなど、別のセキュリティスコープのURLからブックマークを作成する場合は、最初にファイルにアクセスする必要があります。
macos - 「スコープブックマークエージェント接続が中断されました」というログメッセージについて心配する必要がありますか?
Macアプリをサンドボックス化し、OS X 10.7.3のセキュリティスコープのブックマーク機能を使用して、アプリのサンドボックス外のファイルへの参照を保持しています。私のコードはすべて正しく機能しているように見えますが、アプリの出力で次のメッセージが何百回も繰り返されることになります(比較的簡単な操作の場合)。
これは問題ですか?それは私が何か間違ったやり方をしていると私に思わせますが、それが何であるかはわかりません。
objective-c - サンドボックスがオンになっていますが、COM ポートを開くためのより Objective-C の方法はありますか?
現在、次のクラスを取得しましたが、機能していません。呼び出しで失敗しopen
ます。これはサンドボックス化が原因だと思いますが、どうすればよいかわかりません。また、これは ver C のように見えますが、より良い Objective-C (IOKIT?) の方法はありますか?
デバイス自体は USB シリアル ポートです。
与えられたエラー:
デバイスを開くことができませんでした: 操作は許可されていません
現在のコード:
現在の資格:
objective-c - アプリ サンドボックス: ドキュメント スコープのブックマークが解決されません。エラーを返さない
アプリをサンドボックス化し、XML ファイルを使用して複数のファイルのインポート/エクスポートを許可しようとしています。私のアプリ (または別のサンドボックス化されたアプリ) が XML にリストされたファイルにアクセスできるようにするために、シリアル化されたセキュリティ スコープのブックマークも含めます。この回答で説明されているようにシリアル化しています。単体テスト (サンドボックス化されていない) は、問題なく XML データの書き込みと読み取りを行います。私のアプリがブックマークを解決するNSURL
と、参照と同様に nil が返されNSError
ます。私はそうあるべきだとは思わないのに、なぜそうなってしまったのでしょうか? でファイル/ディレクトリを選択するようにユーザーに促すことで回避できますNSOpenPanel
が、ブックマークを正常に機能させたいと思っています。
テストプロジェクトで再現
自宅で再現するには、Xcode で新しい Cocoa アプリを作成し、プロジェクト内のファイルに次の Gist を使用します: https://gist.github.com/2582589 (適切な next-view ループで更新)
次に、Apple の指示に従って、プロジェクトにコード署名します。ボタンを順番にクリックして、問題 (Apple にrdar://11369377として送信) を再現します。ディスク (アプリのコンテナーの外部) 上の任意のファイルを選択し、エクスポートする XML を選択してから、同じ XML をインポートします。
うまくいけば、私が間違っていることを理解するのを手伝ってくれるでしょう。私が何か間違ったことをしていて、フレームワークが誤ってそれ自体を維持しているか、または私が正しくやっているのに完全に壊れています。フレームワークを責めないようにしていますが、それはどちらですか? それとも別の可能性がありますか?
サンプルコード
XML を にエクスポートしていますdocURL
:
からの XML のインポートdocURL
:
この呼び出しを[docURL ..AccessingSecurityScopedResource]
で囲んでみましたが、違いはありませんでした (予想どおり、オープン パネルで選択された後、docURL は既にスコープ内にあるため)
また、app.entitlements
ファイルで次のように指定します。
前述のように、2 番目のステップ (ブックマークの解決) は完了しますが、両方とも nil のままerror
ですresult
。サンドボックスを実装してきたので、私が犯した間違いのほとんどNSError
が返され、バグを解決するのに役立ちました. しかし、今ではエラーは発生せず、URL は解決されません。
その他のトラブルシューティング手順
XML ファイルをアプリのサンドボックスに配置しようとしましたが、違いはなかったので、XML ファイルへのアクセスは問題ではありません
アプリは ARC を使用しますが、単体テストも同様に成功します。自動解放されたクラス メソッドの代わりに alloc/init も使用してみました (念のため)
ブックマークを作成した直後に URL 解決コードを貼り付けたところ、問題なく動作し、セキュリティ スコープの URL が生成されました
最初に作成された
po
ブックマーク (シリアル化前) と、逆シリアル化後のブックマークに対して実行したところ、100% 一致しました。シリアル化は問題ではありません解決の呼び出しを に置き換えましたが、
CFURLCreateByResolvingBookmarkData(..)
変更はありません。バグの場合は、Core Foundation API と Cocoa レイヤーに存在します。に値を指定し
bookmarkDataIsStale:
ても効果がない0
forを指定するとoptions:
、有効な NSURL が返されますが、セキュリティ スコープがないため、ファイルを読み取る後続の呼び出しは失敗します。つまり、逆シリアル化されたブックマークは有効に見えます。ブックマーク データが破損していた場合、NSURL で何かできるとは思えません。
NSURL.h
私が間違っていることを指摘するのに役立つコメントが含まれていませんでした
サンドボックス化されたアプリケーションでセキュリティ スコープのドキュメント ブックマークを使用して成功した人は他にいますか? もしそうなら、あなたは私と何が違うのですか?
OS バージョンのリクエスト
Mountain Lion ベータ版にアクセスできる人は、私のサンプル プロジェクトで同じ (エラーがない) エラーが表示されるかどうかを確認できますか? ライオン以降に修正されたバグなら気にしません。私はまだ開発者プログラムに参加していないため、アクセスできません。その質問に答えることが NDA に違反するかどうかはわかりませんが、そうならないことを願っています。
cocoa - サンドボックス化されたアプリケーションからヘルパーを起動
サンドボックス化されたアプリケーションがあります。ヘルパー アプリケーションを起動するたびに (メイン アプリケーションのバンドル内から) 起動する必要があります。ただし、これは失敗します。
エラーは次のとおりです。
アプリケーション「ヘルパー」は、破損しているため起動できませんでした。
サンドボックスの資格を無効にするとアプリが正常に起動するため、エラーは誤解を招く可能性があります。ここで報告されているように、どうやらこれはバグです。
私の質問は次のとおりです。回避策はありますか?
ここでSMLoginItemSetEnabled
説明されているように、私は使用できます:
ヘルパー アプリケーションをすぐに開始するために渡し
true
、ユーザーがログインするたびに開始する必要があることをfalse
示します。
ただし、App Store レビュー ガイドライン 2.26 のため、最初にユーザーに確認しないとこの API を使用できません。
自動起動するように設定されているアプリ、またはユーザーの同意なしに起動時またはログイン時に他のコードが自動的に実行されるように設定されているアプリは拒否されます
したがって、この回避策を使用すると、ユーザーに「ログインするたびにヘルパーを起動してもよろしいですか? そうでない場合、このアプリを使用できません!」と尋ねることになります。明らかに、それは理想的ではありません...
cocoa - システムの印刷ダイアログをバイパスするアプリは、Mac App Store で許可されていますか?
Mac App Store でアプリを公開するときに、アプリにシステムの印刷ダイアログをバイパスさせ、プリンターと直接通信させることは (サンドボックス化も考慮して) 許可されますか?
可能な限りシステムの印刷ダイアログを使用する必要があることは承知しています。ただし、これは特別なカラー マネージメント要件を持つ特別なアプリ用です。