3

XCodeを使用してiPhoneアプリケーションをビルドしています。ここでは、以下に示すXCodeビルド手順と同じ方法でinfoplistファイルを外部処理したいと考えています。

Processing /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/Info.plist TestAppGen-Info.plist
mkdir /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app
cd /Users/kte/Projects/TestAppGen
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
<com.apple.tools.info-plist-utility> TestAppGen-Info.plist -genpkginfo /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/PkgInfo -expandbuildsettings -format xml -o /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/Info.plist

ビルドログからのこの抜粋は、ネット上のさまざまなソースから収集したcom.apple.tools.info-plist-utilityを参照しています。これは内部XCodeユーティリティです。

コマンドラインからcom.apple.tools.info-plist-utilityを実行することは可能ですか?

4

2 に答える 2

3

PlistBuddyというツールを使用し/usr/libexec/PlistBuddyて、そのマニュアルページを確認できます。

ただし、plistをバイナリplistファイルに変換し直す必要もあります。これは、ビルドスクリプトでこのように実行できます

plutil -convert binary1 "$TARGET_BUILD_DIR/$INFOPLIST_PATH"
于 2009-08-14T19:04:47.407 に答える
2

「plutil」の答えは素晴らしいスタートです。残念ながら、Xcodeビルドプロセスは、Info.plistファイルをバイナリに変換するよりも多くのことを行います。たとえば、私のシステムでは、次のフィールドに追加します。

-MinimumOSVersion
-PlatformName
-CFBundleExecutable
-SDKName
-CFBundleResourceSpecification
-CFBundleSupportedPlatforms

Appleのドキュメントによると、これらの値の一部を自分で設定することは想定されていません。

MinimumOSVersion

MinimumOSVersion(文字列)。iPhoneアプリケーションをビルドすると、XcodeはターゲットOS(Base SDKの選択によって決定される)をMinimimOSVersionプロパティとして記録します。Info.plistファイルでこのプロパティを自分で指定しないでください。これはシステムで作成されたプロパティです。アプリケーションをAppStoreに公開すると、ストアは、このプロパティに基づいてアプリケーションを実行できるiPhoneOSのリリースを示します。これは、MacOSXのLSMinimumSystemVersionプロパティと同等です。

カスタムビルドプロセスの一部としてアプリケーションに再署名しようとすると、さまざまな問題が発生します。

于 2009-09-03T18:54:51.263 に答える