default 言語を英語にしたので、とりあえず、英語用、日本語用ページを作成してアップした。
これで、リジェクトされなければほぼ終わり。
default 言語を英語にしたので、とりあえず、英語用、日本語用ページを作成してアップした。
これで、リジェクトされなければほぼ終わり。
iOS シミュレーターの Application not started during startup timeout or has been finished に悩む
iOS シミュレーターのスプラッシュ起動画面が一瞬開いてその後、消えてしまう。
1分後くらいにdelphi のIDE が Application not started during startup timeout or has been finished のメッセージを出して停止する。
検証
・ Delphi でプロジェクト名を変更したために起こったような気がする。
・ 配置マネージャーでの問題のような気がする
・ 新たなダミーのプロジェクトを作って試したところ、iOS シミュレーターは問題なく起動した
・ Debug でも Release でも同様の問題がおこる
Mac の Xcodeのアイコンを右クリックして「パッケージの内容を表示」から Contents/Applications/Application Loader を起動する。
IDとパスワードを入力して、スクラッチディレクトリ
/Users/yourname/RADPAServer/scratch-dir
の下にある .ipa ファイルを選択、アップロード
// 言語設定の初期化
Lang1.AutoSelect := True;
if Lang1.Lang = 'ja' then
Config.MainLanguage := mlJapanese
else
Config.MainLanguage := mlEnglish;
Lang1.AutoSelect := False;
App IDの登録
Apple Developer のページから
Identifiers> Add IDs
で App ID を所得
Provisioning Profileの登録
Provisioning Profiles >Distribution
でプロファイルを generate、次のページで download
ダウンロードファイルをダブルクリックするとXCode Organizer に登録される
アプリ情報の登録
ITunes Connect のページを開き、Manage your app で、Add New App
*iTunes Connection に登録時必要なファイル
Routing app coverage files (optional) are .geojson files which specify the geographic regions supported by your app. The file can have only one MultiPolygon element. MultiPolygon elements consist of at least one Polygon. Polygons contain at least four coordinate points. Polygon start and end coordinate points must be the same.
すべてのデータを記入、必要ファイルをアップロード save
Choose Another Language で Japanese を Add する
View Dtails をクリックしてアプリの詳細画面へ、ここで右上のボタンをクリックして Export Compliance を入力、暗号技術を使っていないときは、NO
アプリケーションを Mac App Store に提出する場合には、CFBundleIdentifier フィールドに Mac アプリケーションの BundleID を指定する必要があります。 指定しなければ、.pkg ファイルと使用中の Store BundleId が一致しないというメッセージが Mac AppLoader から出力される可能性があります。
http://docwiki.embarcadero.com/RADStudio/XE4/ja/%EF%BC%BB%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E6%83%85%E5%A0%B1%EF%BC%BD
BundleID とは、はApp IDの登録時に入力したものと同じもの、Prefixは必要ないの?
Delphi から IOSシミュレータで実行。サイズはiOSシミュレーターのメニュのハードウェア>デバイスで設定
MACのiOSシミュレーターをフォーカスして、上部メニューから[ファイル]>[スクリーンショットを保存]をクリック
ホームボタンを押しながら素早くスリープボタン(電源ボタン)を押すという方法もあるが、すべての実機を用意する必要があるので非現実的である。
iMac上でスクリーンショットを撮るには
CommandキーとShiftキーを押したままで4キーを押すと、Mac OS Xのカーソルが十字カーソルに変わり、範囲を自由に決めてスクリーンショットを撮ることができます。
*マックでの操作
mac から iOS Provisioning Profits(ditribution) ページから Provisioning Profits > Distributuon から新たな配布をAd-Hocで設定する
できたファイルをダウンロードしてダブルクリック
XCode のOrganaizer のDEVICE から LIBRARY を開いて 新たにできた Profile を 目的機種 の Provisioning Profiles にドラッグアンドドロップ
*ウィンドウズでの操作
プロジェクト>オプションからプロビジョニング
ビルドの種類
> Ad-hoc
配布用証明書
> マックのキーチェーンアクセスを開いて、 iPhone Distribution から始まる証明書をダブルクリックして、サブジェクト名の通称部分をそのまま入力
例: iPhone Distribution: RIGAXXXXXXXXXXX (XXXXXXXXXXXX)
モバイルプロビジョニングプロファイル
> XCode Organaizer のDEVICE から LIBRARY を開いて今回作成したad-hoc用の新たなプロファイルを選択、右クリックしてReveal Profile in Finder をクリックする。パスとファイル名を確認して、これを入力する。
例: /Users/XXXXXXXXXXXXX/Library/MobileDevice/Provisioning Profiles/XXXXX-XXXXX-XXXXX-XXXXX-XXXXX.mobileprovision
プロビジョンニングの設定はは、debug , release の2通りあるので注意が必要
配置は[プロジェクト]>[配置] から 配置ボタンをクリック
インストールはMACからスクラッチディレクトリ
/Users/yourname/RADPAServer/scratch-dir
を開いて。そこにある、ipa ファイルを XCODE organizer の目的機種のApplication にドラッグアンドドロップする。
iPhone5 での実機テストは問題なくできたのに、iPad では
unable to install packagee (e800007e)
のメッセージダイアログが現れ、テストができない。
何が問題なのかを一つずつチェックしていく。
・ iPhone5 での実機テストは可能 (接続の問題ではないだろう)
・ iPad の シミュレーターでは問題なし
・ debug なら 配布関係のプロビジョニングは必要ないはず。(iPhone5 ではプロビジョニングしないで動作した)
・ iPad を開発用に登録したがここの部分に何か間違いがあるのか?
・ Mac のキーチェーン関係に何か問題があるのか?
XCode の Organizer – Devices の iPad の Provisoning Profiles にあったAd Hoc用の profile 削除するとエラーが
Unable to locate DeviceSupport directory matched with connected device info ・・
に変わった。しかし、いつの間にか
unable to install packagee (e800007e)
に戻っていた。
解決
iPad のOSバーションが4.32だったので、最新バージョンの6.13にすれば何も問題なく動作するようになった。
落とし穴はどこにだってある。
unable to locate deviceSupport directory ・・・ が出たら
Mac から XCode を手動で起動
雑談がすごく為になりそう。時間があったらゆっくり読む。
unit untStopWatch;
interface
uses
Windows;
type
TStopWatch = class
private
StartCount: Integer;
procedure Reset;
public
procedure Start;
function Time : Integer;
end;
var
StopWatch: TStopWatch;
implementation
procedure TStopWatch.Reset;
begin
StartCount := GetTickCount;
end;
procedure TStopWatch.Start;
begin
Reset();
end;
function TStopWatch.Time: Integer;
begin
Result := GetTickCount - StartCount;
end;
end.
function DateTimeString: String;
begin
result := FormatDateTime('yymmddhhnnss', Now());
end;
エフェクトは一つのコンポーネントに対して一つだけ有効みたい。
TLayout を使って、こちらにエフェクトをかけると対応できる場合もある。
あと、Win32 で有効だった Blur エフェクトをアニメーションしたものは iOSシミュレータ、実機ともにコンポーネント自身が表示されなかった。
これはたいへんなことななっている。まじですか。
デフォルトファイル名 |
サイズ (px) |
備考 |
|---|---|---|
| Icon.png | 57 x 57 | iPhone3G / 3GSのアプリアイコン |
| Icon@2x.png | 114 x 114 | iPhone4 / 4S / 5のアプリアイコン |
| Icon-72.png | 72 x 72 | iPad / iPad2 / iPad miniのアプリアイコン |
| Icon-72@2x.png | 144 x 144 | iPad 第3世代のアプリアイコン |
| Icon-Small.png | 29 x 29 | iPhone3G / 3GS の設定 / Spotlight iPad / iPad2 の設定 |
| Icon-Small@2x.png | 58 x 58 | iPhone4 / 4S の設定 / Spotlight iPad 第3世代 の設定 |
| Icon-Small-50.png | 50 x 50 | iPad / iPad2 / iPad miniのSpotlight |
| Icon-Small-50@2x.png | 100 x 100 | iPad 第3世代のSpotlight |
デフォルトファイル名 |
サイズ (px) |
備考 |
|---|---|---|
| Default.png | 320 x 480 | iPhone3G / 3GS |
| Default@2x.png | 640 x 960 | iPhone4 / 4S / 5 |
| Default-568h@2x.png | 640 x 1136 | iPhone5 |
| Default-Portrait.png | 768 x 1004 | iPad / iPad2 / iPad miniの縦表示用 |
| Default-Portrait@2x.png | 1536 x 2008 | iPad 第3世代の縦表示用 |
| Default-Landscape.png | 1024 x 748 | iPad / iPad2 / iPad miniの横表示用 |
| Default-Landscape@2x.png | 2048 x 1496 | iPad 第3世代の横表示用 |
デフォルトファイル名 |
サイズ (px) |
備考 |
|---|---|---|
| iTunesArtwork | 512 x 512 | png画像 拡張子なし |
| iTunesArtwork@2x | 1024 x 1024 | png画像 拡張子なし |
iOSデバイス一覧
デバイス |
画面サイズ(inch) |
解像度 (px) |
解像度 (dpi) |
Retina対応 |
|---|---|---|---|---|
| iPhone3G / 3GS | 3.5 | 320 x 480 | 163 | |
| iPhone4 / 4S | 640 x 960 | 326 | ○ | |
| iPhone5 | 4 | 640 x 1136 | 326 | ○ |
| iPad / iPad2 | 9.7 | 768 x 1024 | 132 | |
| iPad 第3世代 | 1536 x 2048 | 264 | ○ | |
| iPad mini | 7.9 | 768 x 1024 | 163 |
Win32 では 1
iOS では 0
for i := 0 to Length(tmpRemoveOrderArray) - 1 do
{$IFDEF IOS}
TileManager.TileList.Items[tmpRemoveOrderArray[i]].Letter := tmpQuestString[i];
{$else}
TileManager.TileList.Items[tmpRemoveOrderArray[i]].Letter := tmpQuestString[i+1];
{$ENDIF}
もしくは
tmpMinIndex := Low(tmpQuestString);
for i := 0 to Length(tmpRemoveOrderArray) - 1 do
TileManager.TileList.Items[tmpRemoveOrderArray[i]].Letter := tmpQuestString[tmpMinIndex+i];
Key は 0 から 1 までの値、
Value は それに対応する値を設定する。
英英辞書制作
ベースの辞書
The Online Plain Text English Dictionary
OPTED v0.03 by Archive をダウンロードしてMacで解凍、ブラウザで表示して、テキストエディター(Teraterm)でaから順番に貼り付けて、大きなテキストデータを作成して、オリジナルプログラムで、CSV 化する。
英和辞書
ベースの辞書
参考
・ 多言語化を考えるなら、 Wikitionary
・ 英語類語辞典なら、grady word’s moby
・ グループ化されている語彙データなら、 WordNet
その他
EPWING 形式の 辞書を PDIC で PDIC 形式に、その後 CSV 形式に
自作プログラムで オリジナル形式にという方法も、