[iOS] Xcode6からEnterprise Developmentで保存したい

2014/10/29

こんにちは。きんくまです。

クライアントからProvisioning Fileと証明書を預かってEnterprise版で書き出そうとしたときの話です。
Xcode6だとOrganizer-Archivesから、自分のAppIDがそのEnterprise Programに加入していない場合は、保存できないみたいです、、。チームの一員として登録されてないとダメ!みたいな。

でもこれまでは、そうじゃなくてもできてたし、、。というわけでググったところやり方がアップされていました。
Thank you.

>> Using xcodebuild To Export a .ipa From an Archive

>> Xcode 6 enterprise distribution not working

というわけで、シェルスクリプトを作り、.xcodeprojと同じ階層に置いて実行しました。

enterprise_release.sh

#!/bin/sh 

#settings --------------------
projectname="YourProjectName"
schemename="YourSchemeName"
provisioning="ProvisiongName"
#------------------------------

xcodebuild clean \
	-project $projectname.xcodeproj \
	-configuration Release \
	-alltargets

xcodebuild archive \
	-project $projectname.xcodeproj \
	-scheme $schemename \
	-archivePath $projectname.xcarchive

xcodebuild -exportArchive \
	-archivePath $projectname.xcarchive \
	-exportPath $projectname \
	-exportFormat ipa \
    -exportProvisioningProfile ${provisioning}

rm -r $projectname.xcarchive
rm -r build

プロビジョニング名

provisioningのところは、単にプロビジョニングファイル名だとだめで、コマンドラインでファイルの中身を見てあげると

security cms -D -i xxxxxxxx.mobileprovision

<key>Name</key>ってところがあるからそこのところをひっぱってくれば大丈夫かと。
直後のstringタグで囲まれた方

plist

このやり方だと.ipaはできるけど、.plistはできないので自分で作る必要があります。
参考までに

たしかこのplistファイルの置き場がhttpsじゃないといけなかったような

xxxx.plist

<?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>items</key>
	<array>
		<dict>
			<key>assets</key>
			<array>
				<dict>
					<key>kind</key>
					<string>software-package</string>
					<key>url</key>
					<string>https://yourdomain.com/path/to/xxxxxx.ipa</string>
				</dict>
			</array>
			<key>metadata</key>
			<dict>
				<key>bundle-identifier</key>
				<string>com.example.yourapp</string>
				<key>bundle-version</key>
				<string>1.0.0</string>
				<key>kind</key>
				<string>software</string>
				<key>title</key>
				<string>appName</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>

aタグ

aタグにリンクするときはこんな感じ。

<a href="itms-services://?action=download-manifest&url=https://yourdomain.com/path/to/xxxxxx.plist">アプリをインストール</a>
LINEで送る
Pocket

自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

ページトップへ戻る