12

このようなフレームワークを TemplateInfo.plist ファイルに含めることができます。

<key>Frameworks</key>
            <array>
                <string>QuartzCore</string>
                <string>OpenGLES</string>
                <string>OpenAL</string>
                <string>AudioToolbox</string>
                <string>AVFoundation</string>
                <string>UIKit</string>
                <string>Foundation</string>
                <string>CoreGraphics</string>
            </array>

しかし、静的ライブラリで同様のことを行う方法が見つかりません。これにより、テンプレートが大幅に改善されます。そのような機能はありますか?

4

2 に答える 2

7

私は解決策を見つけました。

templateInfo.plistに、主要なターゲット->SharedSettingsを追加します

<key>OTHER_LDFLAGS</key>
<string>ObjC -all_load -weak_library /usr/lib/libz.dylib ..</string>

dylibをデバッグおよび実行設定に追加します。xcodeがフレームワークで実行できるようにオートコンプリートでは機能しませんが、手動で実行するよりもはるかに優れています。

編集:expalin

<key>Targets</key>
<array>
    <dict>
        <key>Dependencies</key>
        <array><integer>0</integer></array>
        <key>Frameworks</key>
        <array>
            <string>CoreAudio</string>              
        </array>
        <key>SharedSettings</key>
        <dict>
            <key>OTHER_LDFLAGS</key>
            <string>-ObjC -all_load -weak_library /usr/lib/libz.dylib -weak_library /usr/lib/libstdc++.dylib </string>
        </dict>     
    </dict>

于 2012-04-23T04:19:40.073 に答える
3

これを行うための最良の方法は、テンプレート フォルダー内の /usr/lib ディレクトリへのエイリアスを作成することです。そこから、/usr/lib にあるすべてのライブラリにアクセスできます。それ自体がエイリアスであるものも含まれます。

まず、xml 表現自体を編集するのではなく、XCode で .plist を編集してテンプレートを作成します。そのため、静的ライブラリをテンプレートに含めるために行った手順を説明します。


1) プロジェクト テンプレートがあります: iPhoneOS.platform / Developer / Library / Xcode / Templates / Project Templates / Application / C4 Application.xctemplate

(Xcode 4.3 では、プロジェクト テンプレート/アプリケーションは、バンドルを右クリックして [パッケージの内容を表示] を選択すると、Xcode.app で直接見つけることができます)

画像

このフォルダの内臓は次のようになります。

画像

2) 上の画像でわかるように、/usr/libスタティック ライブラリを含む lib フォルダー ( ) のエイリアスを作成し、そのエイリアスを .xctemplate フォルダーに移動しました。

画像

3) TemplateInfo.plist ファイルで、ディクショナリとノードの 2 つを指定します。それらを TemplateInfo.plist の Definitions と Nodes の中に入れました

画像

まず、定義ノードで、Libs/libalias.dylib という名前の辞書を指定します。

この lib 内には 2 つの文字列があります Group : Libs Path : lib/libalias.dylib

ノードは次のようになります。

画像

構文がこれとまったく同じであることが重要であり、最も重要なことは、ディクショナリ自体の名前がインポートするライブラリを指定することです。この場合、libalias.dylib ライブラリをインポートしています。

パスが lib/libalias.dylib であることも重要です。これは、/usr/lib フォルダーを指すエイリアスを指すためです。

次に、Nodes 配列で、項目を Libs/libalias.dylib という文字列として指定します (注: 定義で指定した Dictionary とまったく同じ名前です)。

画像

これは、ノード アイテムがどのように見えるかです。

4) これらの設定が完了したら、lib が既に含まれている新しいプロジェクトを作成できます。

画像

注: Dictionary Libs/... を呼び出し、そのグループを Libs として指定したため、インポートするライブラリは Project Navigator の Libs というサブフォルダに表示されます。

于 2012-04-26T06:35:01.647 に答える