2013-02-22 7 views
7

私は質問をしました、フレームワークがあなたのデバイスから誤って削除されたときに起こることは、iPhoneまたはMacかもしれません?フレームワークがアプリから削除されるとどうなりますか?

アプリケーションがクラッシュするか、エラーなく動作するかどうかを確認します。

説明を私に提供してください。

+0

これは、ジョブ・面接のタグを追加する場合がありますジョブ面接の質問だった場合。それは存在するが、まだ使用されていない。特定の質問にそのような印がついていると便利かもしれません。 (ただの意見) –

+0

@rokjarc私たちはもうこのタグを使用していません。プログラミングには関係ありません。タグは、プログラマーが専門知識を持ち、質問を探すために「フォロー」したいと考えるものだと考えてください。 –

+0

@Anoop上記のコメントを参照してください。私はインタビュー質問タグを削除しています。 –

答えて

4

リンクエラーが発生することがあります。フレームワークフォルダがアプリケーション内にある場合は、ランタイムリンクを意味します。

OS Xは各ダイナミックライブラリに「インストール名」を埋め込みます。この インストール名は、 をロードする必要があるときにライブラリが見つかる場所です。 ダイナミックライブラリにリンクするアプリケーションをビルドすると、このインストール名はアプリケーション バイナリにコピーされます。アプリケーションが実行されると、コピーされたインストール名は、 でライブラリまたはフレームワークの場所を特定するために使用されます。

$ otool -D /Applications/Google\ Drive.app/Contents/Frameworks/Python.framework/Versions/2.6/Python 
    /Applications/Google Drive.app/Contents/Frameworks/Python.framework/Versions/2.6/Python: 
    @executable_path/../Frameworks/Python.framework/Versions/2.6/Python 

あなたはフレームワークは、あなたがdyldのエラーを取得するフォルダ削除させていただきますので、もし。

Dyld Error Message: 
    Library not loaded: @loader_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle 
    Referenced from: /Applications/Transmission.app/Contents/MacOS/Transmission 
    Reason: image not found 

enter image description here

enter image description here

1

フレームワークが削除された場合、そのフレームワークにリンクするソフトウェアのみが影響を受けます。 システムフレームワークの場合は、システムの起動に失敗することが予想されます。 サードパーティのフレームワークである場合は、影響の範囲を限定する必要があります。 あなたのアプリバンドルにあり、あなたのアプリがコード署名されている場合、バンドルされたフレームワークを削除するとアプリが起動しなくなります。

0

アプリケーションが削除したフレームワークにアクセスする必要があるかどうかによって異なります。 アプリケーションにフレームワークが必要な場合は、コンパイルされません。 もしあなたがそれを必要としなければ、通常のようにコンパイルされます。

関連する問題