6

Three20 v1.1 を xCode 4 で動作させる簡単な方法はありますか? http://three20.info/article/2011-03-10-Xcode4-Supportの手順に従いましたが、マスター向けのようです。TTLauncher を使用するので v1.1 を使用します。

このプロジェクトは、通常のビルドで問題なくビルドされ、iPhone でも完璧に動作します。しかし、(配布用 IPA の) アーカイブを作成しようとすると、18 個のエラーと 8 個の警告が表示されます。

最初のものは次のとおりです。

../scripts/Protect.command: line 23: cd: /Users/XXX/Library/Developer/Xcode/DerivedData/iDoms-cmyivarwxpbvqdfnyclqdrikrtmw/ArchiveIntermediates/iDoms/BuildProductsPath/Release-iphoneos/../three20/Three20UICommon: No such file or directory

他のほとんどは、たとえば次のような「そのようなファイルやディレクトリはありません #import "Three20Core/TTGlobalCoreLocale.h」です。

または「宣言されていない(関数の最初の使用)」は、「私が推測するそのようなファイルまたはディレクトリの問題はありません」に由来します。

私の「ヘッダー検索パス」には次のものがあります。

$(BUILT_PRODUCTS_DIR)/../three20
$(BUILT_PRODUCTS_DIR)/../../three20
../../three20/Build/Products/three20
/usr/include/libxml2

どんな助けでも大歓迎です!

4

3 に答える 3

10

Colinの答えに追加するだけです.three20のWebサイトで「公式にサポートされていない」と書かれていても、Xcodeの依存プロジェクト機能を使用してthree20を使用できます。

  1. ワークスペースで、プロジェクト ナビゲーターの空きスペースを右クリックします。「ファイルを「マイ ワークスペース」に追加」を選択し、three20 プロジェクト ( three20/src/Three20/Three20.xcodeproj) を選択します。これは、追加する必要がある唯一のプロジェクトです。three20 サブプロジェクトを手動で追加する必要はありません。

  2. ナビゲーターでプロジェクトを選択し、Build Phases に移動し、[Link binary with libraries] を開き、左下隅の [+] をクリックして、Three20 ライブラリを追加します: libThree20.alibThree20Core.alibThree20Network.alibThree20Style.a、および。これにより、プロジェクトのビルド時に Xcode が Three20 をビルドします。libThree20UI.alibThree20UICommon.alibThree20Navigator.a

  3. ${BUILD_DIR}/three20Colin の回答に従ってインクルード パスに追加します。ビルド設定に移動し、[ヘッダー検索パス] をダブルクリックして追加します${BUILD_DIR}/three20(build/three20ダイアログを閉じると表示されます)。

  4. リソースに追加three20/src/Three20.bundleします。

  5. まだ行っていない場合は、リンカー フラグ -ObjC および -all_load を追加することもおそらく良い考えです (同じダイアログで、「その他のリンカー フラグ」を設定します)。

上記の手順は、コードをコンパイルするのに十分です。「アーカイブ」も機能させるには、次のことを行う必要があります。

  1. ヘッダー検索パス設定に$(BUILT_PRODUCTS_DIR)/../three20 とを追加します。$(BUILT_PRODUCTS_DIR)/../../three20そうしないと、three20 ヘッダーが見つからないというコンパイル エラーが発生します。

  2. すべてのThree20 プロジェクト (最上位プロジェクトだけでなく)について、[ビルド設定] に移動し、[インストールをスキップ] を [はい] に設定します。そうしないと、プロジェクトはビルドされますが、IPA を作成することはできません。

製品名 (ターゲットを選択し、[ビルド設定] に移動し、[製品名] を設定) にスペースが含まれていないことを確認してください。スペースが含まれていないと、アーカイブが機能しません。

最後に、次のようなエラーが発生ld: library not found for -lThree20し、カスタム ビルド構成 (AdHoc など) を使用している場合は、同じビルド構成を各 Three20 プロジェクトにも追加してください (リリース構成を複製するだけです)。

于 2011-07-18T15:31:16.887 に答える
3

この StackOverflow questionを確認してください。

受け入れられた回答を以下に再現しました。

したがって、古い Xcode 3.2 プロジェクトを Xcode 4 で動作させる最も簡単な方法は、次のようにすることです。

Xcode 4 の設定 (Cmd+,) に移動します。[場所] タブを選択します。「ビルドの場所」と表示されている場所で、ドロップダウンを選択し、「ターゲットによって指定された場所にビルド製品を配置する」を選択します。これについては、three20.info の記事で詳しく説明します。

于 2011-03-17T03:40:50.127 に答える
1

ターゲットのビルド設定で、ヘッダー検索パスに次の 2 つのパスを追加します。

"$(BUILD_DIR)/three20" "$(BUILD_DIR)/../three20"

最初のエントリは通常のビルドに必要で、2 番目のエントリはアーカイブに必要です。

それはとても簡単です。


ちなみに、ターゲットの環境用の Xcode のすべての環境変数のリストを含むファイルをホーム ディレクトリに作成するには、次の Run script ビルド フェーズをコンテンツと共にターゲットに追加します: ENV > ~/xcode-environment.sh

この場合、プロジェクトがビルド プロセスのコンパイル フェーズを通過せず、Run スクリプトが後で来る場合、スクリプトは実行されないため、最初に置きます。

于 2011-07-12T17:20:28.093 に答える