0014 iOS調査 フレームワーク作成用のInfo.plist と Action Script の作成するソース

iOSのフレームワークを作成する際に、

必要な処理を行うためのソースの備忘録

  • info.plist (Resources配下)

サンプルソース(これ以下)

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>CFBundleName</key>

<string>testFW</string>

<key>CFBundleIdentifier</key>

<string>jp.sample</string>

<key>CFBundleInfoDictionaryVersion</key>

<string>6.0</string>

<key>CFBundleVersion</key>

<string>1</string>

<key>CFBundleExecutable</key>

<string>testFW</string>

<key>CFBundleGetInfoString</key>

<string>testFW</string>

<key>NSPrincipalClass</key>

<string></string>

<key>CFBundlePackageType</key>

<string>FMWK</string>

<key>CFBundleIconFile</key>

<string></string>

<key>CFBundleSignature</key>

<string>????</string>

<key>CFBundleDevelopmentRegion</key>

<string>en</string>

<key>NSHumanReadableCopyright</key>

<string>wolf.th All rights reserved</string>

<key>CFBundleShortVersionString</key>

<string>1.0</string>

</dict>

</plist>


  • Run Script (ターゲット->Build Ohases->Run Script)

赤い箇所を変更することにより読み込むPlist を環境に応じて変更する。

注意:貼り付けた後のインデントは、削除すること!

サンプルソース(これ以下Endまで)

# ============================== ここから

# ==============================

# 変数設定

# ==============================

INFOPLIST='testFW/Resources/Info.plist'

FRAMEWORK_NAME=$(/usr/libexec/PlistBuddy -c "Print CFBundleName" ${INFOPLIST})

BUILD_TARGET_NAME=$FRAMEWORK_NAME

FRAMEWORK_BUILD_CONFIGURATION="Release"

FRAMEWORK_VERSION_NUMBER=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" ${INFOPLIST})

FRAMEWORK_VERSION=A

FRAMEWORK_BUILD_PATH="Framework"

FRAMEWORK_DIR="${FRAMEWORK_BUILD_PATH}/${FRAMEWORK_NAME}.framework"

PACKAGENAME="${FRAMEWORK_NAME}.${FRAMEWORK_VERSION_NUMBER}.zip"

# ==============================

# ビルド

# ==============================

xcodebuild -configuration ${FRAMEWORK_BUILD_CONFIGURATION} -target {BUILD_TARGET_NAME} clean

xcodebuild -configuration ${FRAMEWORK_BUILD_CONFIGURATION} -target ${BUILD_TARGET_NAME} -sdk iphonesimulator${IPHONEOS_DEPLOYMENT_TARGET}

[ $? != 0 ] && exit 1

xcodebuild -configuration ${FRAMEWORK_BUILD_CONFIGURATION} -target ${BUILD_TARGET_NAME} -sdk iphoneos

[ $? != 0 ] && exit 1

# ==============================

# ディレクトリ作成

# ==============================

[ -d "${FRAMEWORK_BUILD_PATH}" ] && rm -rf "${FRAMEWORK_BUILD_PATH}"

mkdir -p ${FRAMEWORK_DIR}

mkdir -p ${FRAMEWORK_DIR}/Versions

mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}

mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}/Resources

mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}/Headers

ln -s ${FRAMEWORK_VERSION} ${FRAMEWORK_DIR}/Versions/Current

ln -s Versions/Current/Headers ${FRAMEWORK_DIR}/Headers

ln -s Versions/Current/Resources ${FRAMEWORK_DIR}/Resources

ln -s Versions/Current/${FRAMEWORK_NAME} ${FRAMEWORK_DIR}/${FRAMEWORK_NAME}

# ==============================

# framework作成

# ==============================

lipo -create \

build/${FRAMEWORK_BUILD_CONFIGURATION}-iphoneos/lib${FRAMEWORK_NAME}.a \

build/${FRAMEWORK_BUILD_CONFIGURATION}-iphonesimulator/lib${FRAMEWORK_NAME}.a \

-o "${FRAMEWORK_DIR}/Versions/Current/${FRAMEWORK_NAME}"

cp -Rf ${BUILD_TARGET_NAME}/Headers/* ${FRAMEWORK_DIR}/Headers/

cp ${BUILD_TARGET_NAME}/Resources/* ${FRAMEWORK_DIR}/Resources/

cp ${INFOPLIST} ${FRAMEWORK_DIR}/Resources/

cd ${FRAMEWORK_BUILD_PATH}

chmod -fR 777 "${FRAMEWORK_NAME}.framework"

zip -ry ${PACKAGENAME} $(basename $FRAMEWORK_DIR)

# ==============================

# End

# ==============================


管理者オススメのアプリ

簡単に日々のスケジュールを管理できる無料のphoneアプリです。
スケジュール、シフト管理、TODO,お小遣い管理、メモなどいろいろ使用できるアプリ。
メニューの並び替えも自由!


すごい手帳を使ってみる

アクセス数: 無料カウンター




トラックバック(0)

トラックバックURL: http://smartwolf.sakura.ne.jp/Blog/mt-tb.cgi/66

コメントする

ウェブページ

Powered by Movable Type 5.2.7