Provisioning Profiles
の
Distribution から登録
Provisioning Profiles
の
Distribution から登録
削除もここから
メモリが足りなくなる等、いろいろ面倒
XE7 Update 1 をダウンロード、インストール
http://cc.embarcadero.com/reg/delphi
以下を確認
[配布用証明書]
Mac 上で[キーチェーン アクセス]を開き、Developer(Distributionでない方)の方をダブルクリック。
部署の部分が配布用証明書になる。
[モバイル プロビジョン プロファイル]
[アプリ識別子]
Mac にiPhone 構成ユーティリティ をインストールする。(ネットで検索、ダウンロード)iPhone 構成ユーティリティを起動、対象とするプロビジョニングプロファイル(ad-hocとStoreは別)を選択、下にあらわれるプロファイル識別子とアプリ識別子をメモ
/Users/(ユーザー名)/Library/MobileDevice/Provisioning Profiles/(プロファイル識別子のメモの内容).mobileprovision
がモバイル プロビジョン プロファイルとなる。
アプリ識別子はそのままアプリ識別子となる
プロジェクト>オプション>プロビジョニング
と
ツール>オプション>プロビジョニング
に[配布用証明書]と[モバイル プロビジョン プロファイル]を入力。タイプ、モードが複数あるのですべてに設定。
delphiからファイル>開く、%AppData%と入力してEnterキーを押す。
Embarcadero\BDS\15.0\Entitlement.TemplateiOS
を選択。
<?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>
<%getTaskAllowKey%>
<%applicationIdentifier%>
<%pushNotificationKey%>
<%keychainAccessGroups%>
</dict>
</plist>
に二行を挿入
<key>application-identifier</key>
<string>35XXXXXXXXX.com.rigXXXXX.XXXXXX</string>
[配布用証明書].[アプリ識別子]
<?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>
<%getTaskAllowKey%>
<key>application-identifier</key>
<string>XXXXXXXXXX.com.XXXXXXXXX.XXXXXXXXX</string>
<%applicationIdentifier%>
<%pushNotificationKey%>
<%keychainAccessGroups%>
</dict>
</plist>
注意:
このファイルの行送りは、LF+CR でなくLFでなくてはいけないらしい。
結局TERA PADで読み込み改行コードをLFに変更した。
注意:
目的フォルダ(release, debug)には、プロジェクトフォルダにある
Entitlement.TemplateiOS
をテンプレートにして、Entitlement.TemplateiOSが作成される。
%AppData%下にあるEmbarcadero\BDS\15.0\Entitlement.TemplateiOS がプロジェクトフォルダにコピーされるのは初回起動時?のみ。よって、Entitlement.TemplateiOSを検証するには、毎回、プロジェクトフォルダにある
Entitlement.TemplateiOS
を削除する必要がある。
注意:
アプリごとに[配布用証明書].[アプリ識別子]は違うが、上記の理由で、プロジェクトフォルダにあるEntitlement.TemplateiOS を個々に書き換えることで対応できる。
インストールはMACからスクラッチディレクトリ
/Users/yourname/RADPAServer/scratch-dir
を開いて。そこにある、ipa ファイルを XCODE organizer の目的機種のApplication にドラッグアンドドロップする。
参考: http://blogs.embarcadero.com/sarinadupont/2015/01/29/ios-813-app-deployment-steps-for-xe7
実機テスト デバッグ
パッケージをインストールできません(e8008016)
> With UPD 1 installed, NONE of them work,
>
> Installed the version without the update, and now Debug is working, and not getting the errors with
> Adhoc/Appstore/Debug either (error e8008016 and e8008015)
I’m not sure why Update 1 wouldn’t be working, however error E8008016 is usually a problem with the entitlements file, and E8008015 is commonly a problem with incorrect details in the Provisioning options. For the E8008016 error you could
try deleting the .entitlements file and doing a build (which recreates it).
AD-Hoc で配置後、xCode で ipa ファイルをドラッグしたけれど
App installation failed
The application could not be verified.
のエラー
Missing provisioning information. Mobile Provisioning Profile has not been specified for the “Ad hoc” platform configuration.
プロジェクト > オプション > プロビジョニング
構成が3通りあるので特に注意
実機テストをしようとすると このエラーが発生
XE7をインストールした後
C:\Program Files (x86)\Embarcadero\Studio\15.0\PAServer
にある、
setup_paserver を実行
PAServer15.0.pkg をMAC にコピーしてダブルクリック
Device から
UDIDを聞かれるので Mac に実機をUSB接続して iTune を起動
概要を開く。UDIDはないが、シリアル番号をクリックすると表示される。右クリック、コピーでコピーできる
type
TGridLine = Record
private
FPositionS: TPoint;
FPositionE: TPoint;
public
procedure Assign(aGridLine: TGridLine);
property PointS: TPoint read FPositionS write FPositionS;
property PointE: TPoint read FPositionE write FPositionE;
end;
function TSessionScratchBoard.Distance(aPoint: TPointF; aGridLine: TGridLine): Single;
var
rx,ry,dx,dy,qx,qy,L2,W:double;
x0, y0, x1, y1: Single;
px, py: Single;
tmpPoint0, tmpPoint1: TPointF;
begin
tmpPoint0 := PositionToPoint(aGridLine.PointS.X, aGridLine.PointS.Y);
tmpPoint1 := PositionToPoint(aGridLine.PointE.X, aGridLine.PointE.Y);
px := aPoint.X;
py := aPoint.Y;
x0 := tmpPoint0.X;
y0 := tmpPoint0.Y;
x1 := tmpPoint1.X;
y1 := tmpPoint1.Y;
dx := x1 – x0;
dy := y1 – y0;
L2 := dx * dx + dy * dy;
rx := px – x0;
ry := py – y0;
W := rx * dx + ry * dy;
if L2 < W then
begin
rx := x1 - px;
ry := y1 - py;
W := rx * dx + ry * dy;
end;
if W < 0 then
result := sqrt(rx * rx + ry * ry)
else
result := abs(rx * dy - ry * dx)/sqrt(L2);
end;