白峯のソース

IT なことのメモなど

iOS 開発の XCode において、引っかかりやすいところ

(1) ビルドの設定が反映されない

プロジェクト(PROJECT)とターゲット(TARGET)では、ビルドの設定などが別になる。
プロジェクトの方の設定はターゲットの方に継承され、ターゲットの方で変更したものはターゲット設定の方が優先(上書き)されるようだ。
ビルド設定などがうまく反映されないときはターゲットに対するビルド設定を確認する必要がある。




(2) Archive Type が Mac App Archive になってしまう

Info.plist がバンドルリソースへコピーする設定になっている。
ターゲットの設定の、Build Phases → Copy Bundle Resources に Info.plist が含まれている場合は、このリストから外すように設定する。
やり方は、プロジェクトの Info.plist ファイルを選択し、右ペインなどにある Target Membership にある該当ターゲットへのチェックを外す。

チェックが入ったままでもデバッグでのビルドは実行できるが、2回に1回実行に失敗するという状況に陥る。




(3) Ad-Hoc 配信で「ダウンロードできません」になってしまう

【チェックポイント】

・Provisioning Profile に該当デバイスが含まれているか?
  iOS Provisioning Portal
  → Provisioning
  → Distribution タブ
  → 該当 Provisioning Profile の Edit
    ・Distribution Method は Ad Hoc になっているか?
    ・App ID は該当アプリのものか?
    ・Devices にインストールする該当デバイスは含まれているか?

・Archive ビルド時に Scheme ターゲットが iOS Device になっているか?
  ★Archive ビルド時は Mac につながっている全ての iOS を外す必要あり
   なんらかの iOS デバイスがつながっていると、そのデバイス専用のバイナリになるみたい…

・URL が合っているか?
  Organizer から Distribute するとき、Save for Enterprise Distribution を利用する場合…
  {例}http://zzzz.jp/abc.ipa をダウンロードさせたいとすると、
    ・Save As は abc
    ・Application URL: は http://zzzz.jp/abc.ipa
    として出力し、ダウンロード HTML のリンク部は
     <a href="itms-services://?action=download-manifest&url=http://zzzz.jp/abc..plist">ここからダウンロード</a>
    とする    

The Heart of SOURCERER 1 カスタムソース技 - 元素量等倍

ソウマの元素は地水火風空すべてを等倍に増減させれば効果は変わらない、という性質を利用して、寺院にある水の攻撃ソウマをアレンジ。 とりあえず元素量2倍バージョン。 JS:

// Flood Attack X2
function danerurosX2()
{
    var souma = new SourceMagic;
	souma.centering();
	while(souma.meditate() < 11000){}

	var elmdefa = ["aeth", "van", "fogo", "neru", "solo"];
	var clus = souma.belight(480, 480, 480, 480, 480);
	var telma = [480, 480, 912, 976, 480];

	var afu = souma.getFocusUnits();
	if(afu.length == 0)
	{
		var aau = souma.enumAroundUnits();
		for(var i = 0; i < aau.length; i++)
		{
			if(aau[i].isEnemy())
			{
				clus.setFocusUnit(aau[i]);
			}
		}
	}

	while(!clus.evokeOriginalElements()){}
	for(var i = 3; i >= 2; i--)
	{
		var elmdef = elmdefa[i];
		var telm = telma[i];
		var celm = clus.getElementQuantity(elmdefa[i]);
		do
		{
			celm += clus.evokeElement(elmdef, telm - celm);
		}
		while(celm < telm);
	}
	
	clus.materialize();
}

SS:

// Flood Attack X2
function danerurosX2 a o
la
	var souma as new Souma.
	souma n edradin a o.
	while a souma n ia a o lt 11000 o la lo

	var elmdefa as ka;aeth;, ;van;, ;fogo;, ;neru;, ;solo;ko.
	var clus as souma n enluc a 480, 480, 480, 480, 480 o.
	var telma as ka 480, 480, 912, 976, 480 ko.

	var afu as souma n getfocmono a o.
	if a afu n length eq 0 o
	la
		var aau as souma n enumosmono a o.
		for a var i as 0. i lt aau n length. i inc o
		la
			if a aau ka i ko n hagoth a o o
			la
				clus n setfocmono a aau ka i ko o.
			lo
		lo
	lo

	while a lonot clus n lamprimelm a o o la lo
	for a var i as 3. i ge 2. i dec o
	la
		var elmdef as elmdefa ka i ko.
		var telm as telma ka i ko.
		var celm as clus n getelmquat a elmdefa ka i ko o.
		do
		la
			celm addas clus n lamelm a elmdef, telm minus celm o.
		lo
		while a celm lt telm o.
	lo
	
	clus n materaizad a o.
lo

これを応用すれば、より強力な回復や攻撃が可能になって、強いボスも楽に倒せる。 同様に、x4 や x6 に元素量を増やせば更に強力になる。 ただし、元素量が多いと HP も多く消費するので、要注意。