2012-02-24 5 views
2

私のアプリケーションが作成するカスタムファイル(XML)を関連付けると、ユーザーはファイルを互いにメールで送ることができます。私はここに優れたチュートリアルに従っている:私のアプリケーションのカスタムファイルをiOSに関連付ける

How do I associate file types with an iPhone application?

をファイルはXXX.checklist

命名された。しかし、それは関連付けていません。私は私の問題がpublic.mime-typeのキーであると信じています。私はそこに置くはずのものが何もわからないからです。以下は、私はあなたのチェックリストファイルは、カスタムバイナリデータであることを前提としていpublic.dataとしてあなたUTIが宣言されている場合は関連する情報-plistのエントリ

<key>CFBundleDocumentTypes</key> 
<array> 
    <array> 
     <dict> 
      <key>CFBundleTypeIconFiles</key> 
      <array> 
       <string>docIcon64.png</string> 
       <string>docIcon320.png</string> 
      </array> 
      <key>CFBundleTypeName</key> 
      <string>My App Checklist</string> 
      <key>CFBundleTypeRole</key> 
      <string>Viewer</string> 
      <key>LSHandlerRank</key> 
      <string>Owner</string> 
      <key>LSItemContentTypes</key> 
      <array> 
       <string>com.mycompany.appid.checklist</string> 
      </array> 
     </dict> 
    </array> 
</array> 

<key>UTExportedTypeDeclarations</key> 
<array> 
    <dict> 
     <key>UTTypeConformsTo</key> 
     <array> 
      <string>public.content</string>/// i tried public.text but it allowed the file to be opened by the devices default text viewer which I would not like. 
     </array> 
     <key>UTTypeDescription</key> 
     <string>My App Checklist</string> 
     <key>UTTypeIdentifier</key> 
     <string>com.mycompany.appid.checklist</string> 
     <key>UTTypeTagSpecification</key> 
     <dict> 
      <key>public.filename-extension</key> // fixed this key 
      <string>checklist</string> 
      <key>public.mime-type</key> 
      <string>text/xml</string> /// changed to this, still doest work though 
     </dict> 
    </dict> 
</array> 
+0

私は上記の解決策を実装しています。私は共有メニューで私のアプリを見ることができます。私はそれに対して正確な答えを提供することができます –

答えて

5

です。

次に、application/octet-streamをMIMEタイプとして使用するだけです。

更新日: あなたの問題は誰よりも些細なことです。

  • public.item
  • public.data
  • public.content
  • public.text
  • : - 初心者のためのもう一つあなたがこれらのいずれかを設定することができますXMLファイルのよう public.dataは、( public.xmlを含む)すべての子孫のために大丈夫です
  • public.xml

ファイルタイプを開くために提供されるアプリケーションのリストは、指定されたUTIを処理できる既知のアプリケーションに基づいてビルドされています。デフォルトのテキストエディタはpublic.textpublic.xmlを開くので、あなたの種類のファイルに対するデフォルトのアクションになります(あなたのアプリケーションはメール添付ファイルの長押しで呼び出されるリストに表示されます)。

(これはpublic.contentと同じ)を処理するアプリケーションはありません。したがって、このUTIを使用すると、添付ファイルのデフォルトアクションはアプリで開きます。ポイントに今

...あなたのCFBundleDocumentTypesは、1つの余分<array>レベルがあります。

<key>CFBundleDocumentTypes</key> 
<array> 
    <array>  <!-- remove this line --> 
     <dict> 
      <key>CFBundleTypeIconFiles</key> 
      <array> 
       <string>docIcon64.png</string> 
       <string>docIcon320.png</string> 
      </array> 
      <key>CFBundleTypeName</key> 
      <string>My App Checklist</string> 
      <key>CFBundleTypeRole</key> 
      <string>Viewer</string> 
      <key>LSHandlerRank</key> 
      <string>Owner</string> 
      <key>LSItemContentTypes</key> 
      <array> 
       <string>com.mycompany.appid.checklist</string> 
      </array> 
     </dict> 
    </array>  <!-- and this line --> 
</array> 

をそして、それは働くつもりです。 UTExportedTypeDeclarationsの部分はすでに正常です。

+0

ファイルは単なるテキストXMLファイルです。私はpublicydataを入れました。これは、私が – Brodie

+0

あなたの答えから学んだことを反映するために上記の私のコードを編集したチュートリアルの1つであったからです。それはまだ動作しません – Brodie

+0

答えを更新 – ayoy

関連する問題