iOSアプリ(9対応)のリリース準備・対応で苦労したこと5つとおまけ
リリースというものは、そう何回もやるもんじゃないので方法を忘れがちです。
覚えている今のうちにメモしておきます。
※ちなみにXcode7を使っています。
1.リリースするための事前準備が意外と多かった
- DistributionタイプのCertificateが必要
- App IDが必要
※ここで出てくるBudle IDとXcode上のBundle Identifierがイコールじゃないとリリースできません
- DistributionタイプのProvisioning Profileが必要
方法はこちらが参考になりました。
2. 1度iTunes ConnectにBuildしたらBuildの値を上げないと再Buildできない
アプリをリリースするにはiTunes ConnectにXcodeからBuildする必要があります。
※方法はこちらを参照。
しかし、Buildし終わってから、
「やっぱりあそこはこうしよう!」って思い立って修正したくなります。
きっとなります。ほぼなります。必ずなります。
その際はXcodeから、
「General」にある「Build」を「1.0.1」のように上げる必要があります。
そうすれば別のBuildとみなしてくれて再度Buildできます。
ちなみにリリース後にアップデートするときは「Version」を上げます。
3.スクリーンショットにAppleの画像などがあると商標違反でリジェクトされる
アプリ申請時には、
アプリの見せ場的なものを載せたスクリーンショットを、
一緒にアップすることになるんですが、
そこにAppleの商標情報があるとリジェクトされます。
今回のアプリは見せ場的なシーンが少なかったので、
作ったアプリのアイコンが写っているホーム画面のキャプチャをアップしたら、
Apple製品のアイコンも載ってしまい怒られましたw
4. 「広告表示してないのにAdvertising Identifier使ってるよ」ってリジェクトされた
Advertising Identifier but does not include ad functionality...
「Advertising Identifier」っていうのは広告識別子のことです。
広告タグとかリンクコードの認識で大丈夫だと思います。
iADとか使ってないし、心当たりがなかったのですが、
「nend、i-Mobile、Adstir?」とかは裏で用意してるだけでも引っかかるようです。
※文字列だけでも引っかかりました
これ地味に引っかかる人いるんじゃないですかね?
5. リリース後のApp Storeのリンク作成
通常、PCのiTunes(App Store)からiOSアプリを探そうとすると結構苦労します。
(というかできるのか?)
そんなときは「Link Maker」を使うと簡単に辿り付けますし、URLも発行できます。
検索するときの注意点として、日本の場合は「Store Country」を「Japan」にし、
iOSアプリの場合は「Media Type」を「iOS Apps」に変更する必要があります。
おまけ
実はApp Storeの審査は特急で行うように申請ができます。
※方法はこちらを参照
試しに「Android版」が既にリリースされているので、
早く審査してくれって申請してみたところ、
案の定、却下されましたww
通常はクリティカルなバグの修正や、
ハロウィンなどのイベントに合わせたアプリじゃないと、速攻で審査してくれないようです。
ご利用は計画的に。
IT界隈やエンジニアが好きそうな名言・ことわざ10選+おまけ
IT関係の人やエンジニアが、読んでやる気が出るような名言や格言を10個集めました。
読んで元気を出しましょう。
では張り切ってどうぞ!
1.Keep it simple, stupid(Kiss)
訳:シンプルにしておけ、この間抜け
「誰が見ても分かりやすくしろ」ということです。
単純であることは究極の洗練だ
と言っています。
2.Done is better than perfect
訳:完璧を目指すより、まず終わらせろ
3.Get out of the building
訳:ビルの外に出よう
建物の中に籠ってないで、
外に出てユーザーの声を聞きに行こうということです。
聞いた話で、インスタグラム社の最高のグロースハックは、
ユーザーと飲みに行くことだそうです。
4.Stay hungry, stay foolish
訳:貪欲であれ、愚直であれ
5.Computers are useless. They can only give you answers.
訳:コンピューターなんて役に立たない。だって答えを出すだけなんだから
-パブロ・ピカソ(画家)
6.Life is not fair.Get used to it.
訳:人生は公平ではない。そのことに慣れよう
7.Reinventing the wheel
訳:車輪の再発明
「広く受け入れられ確立されている技術や解決法を知らずに、
同様のものを再び一から作ること」を指します。
オープンソースなど、既に使えるものがあるのに、
その恩恵を無視してムダなことをするなということですね。
8.We are What We Choose
訳:これまで選択してきた結果が、今の私たちなのです
-ジェフ・ベゾス(アマゾン)
9.Change before you have to
訳:変革せよ。変革を迫られる前に
10. IE Horobe!
訳:IEは滅べ!
-世界のエンジニア
おまけ:Facebookの「5つの経営理念」
- Focus on Impact( 影響力に集中しろ)
- Move Fast(早く動け)
- Be Bold(大胆であれ)
- Be Open(オープンであれ)
- Build Social Value(社会的価値を築け)
ジェフ・ベゾス 果てなき野望?アマゾンを創った無敵の奇才経営者
- 作者: ブラッド・ストーン
- 出版社/メーカー: 日経BP社
- 発売日: 2014/01/09
- メディア: Kindle版
- この商品を含むブログ (4件) を見る
エンジニアが使うキーボードは東プレのリアルフォース1択!
東プレのREALFORCEを使い初めてから、1年以上経過しました。
もうこれに慣れてしまうと、他のキーボードには戻れません。
その理由を以下にまとめます。
静電容量無接点方式を採用
文字だけでは全く意味が分からないですね。
ウルトラ簡単に言うと、最小限の力でタイピングできます。
セブンイレブンとかにあるATMのキーボード(ほぼテンキー)も、
同じ静電容量無接点方式を採用しているようなので、
試し打ちしたい人はセブンに行くといいかもw
小指などでタイプするキーは軽めに押せる仕様になっている
僕が購入したREALFORCEは91Uというシリーズで、
キーによって重さが異なっています。
例えば、「a」などの小指でタイピングする部分は、
キー荷重が軽めに設定されていて、
マジで無力で押せます。
逆に「Enter」や「Esc」などは、
そう簡単に反応されるとマズイことがあるので、
それなりに力が必要です(とはいえ軽いけど)。
※キー荷重が統一されているシリーズもあります。
有線なので反応が良い
無線だとたまにラグが起きたりするので、あまり好きじゃないです。
また、電池などのバッテリーの心配もあります。
その点、リアルフォースは全シリーズ有線なので心配ありません。
Macにも使える(使ってる)
リアルフォースのキーボードはWindows仕様なので、
そのままだとMacでは使えません。
ですが、PCの環境設定を変更して、
「Seil」というソフトを入れれば、
Macでもリアルフォース(Windowsのキーボード)が使えるようになります。
詳細はこちらの方の投稿を参考にしてください。
さいごに
買うならテンキーが付いてない方がオススメです。
テンキーがない分スペースを取らないし、
マウスとの距離が近いので、右手の切り替えが高速でできます。
もっとギークなキーボードにHappy Hackingがありますが、
こちらはカーソルキーや「Ctrl」がないのでオススメしません。
完全にガチな人向けです。
SQLiteの注意点3つ!テーブル作成と同時にINDEX貼れないetc
最近SQLiteを触っています。
基本的な構文などはMySQLと同じですが、
決まりごとの違いや若干のクセがあるので、メモしておきます。
SQLiteのデータベースはファイルとして生成される
SQLiteはデータベースをファイルとして生成します。
なので、「ファイルを消す=DBを消す」ことになります。
SQLiteをインストールしたら(最近のLinuxはデフォで入ってるぽい)、
以下のコマンドで、DBができあがります。
sqlite3 dbname.sqlite3
上記の「.sqlite3」の部分は何でもいいです。
しかし、拡張子がないと、
のちのち何のファイルか分からなくなる可能性があるので、
慣習的に「.sqlite3」とするようです。
しかし、DBを作成しただけではファイルが作成されません。
DBを作成し、さらにテーブルを作成しなければ、ファイルが生成されないようです。
「DB作ったのにファイルがない!」と焦りました。
ファイル(DB)のパーミッションに注意
PHPなどのプログラムからファイル(DB)にアクセスする場合、
ファイルの権限を考慮しないと、UPDATEやINSERTができません。
これは通常のDBと違うので、ハマるかも。
テーブル作成と同時にINDEXが貼れない
これは意外でした。
MySQLの場合、
「CREATE TABLE」すると同時にインデックスの設定ができたのですが、
SQLiteだと仕様の問題でできないようです。
むしろ、MySQLのように1度にできる方がマイノリティらしいです。
なので、1度テーブルを作成し終わってから、インデックスを貼る必要があります。
CREATE INDEX index_name ON table_name(column1, column2...)
まあ、仕方ないですね。
まとめ
最近使ったコマンドなどをまとめました。
その他、selectなどの命令文はMySQLとほぼ同じです。
SQLiteはiOSやAndoridのアプリでも使うデータベースなだけに、
今後も使うことがありそうなので、
1度覚えたら忘れないようにしたいですね。
【Swift入門】ディクショナリから値を取り出すときに順番がバラバラになって驚いた
iOSアプリを仕事で作ることになったのでSwiftを始めました。
その中で、勉強したことと少し驚いたことをメモしていきます。
タイトルの件は中盤辺りに書いています。
ちなみに僕は、Objective-Cを2年位前に本1冊終わらせたくらいで、
iOSアプリに関しての知見は殆どありません。
変数・定数・配列・ディクショナリ(連想配列)の宣言と初期化
上記ではそれぞれの型を指定して宣言・代入をしていますが、
型の指定は省略することができます。
var variable = 10 //Int型になる
省略した場合、自動で型を推測して実装してくれます(型推論)。
※Objective-Cではできなかった模様
ループと配列・ディクショナリの操作
一般的で分かりやすいですね。
forの条件式の部分に()を付けることもできます。
驚いたこと
これが本題です。
上記のような方法でディクショナリから値(キー)を取り出すと、
1,青木さん
2,佐藤さん
3,鈴木さん
ではなく、
2,佐藤さん
3,鈴木さん
1,青木さん
のように、
初期化していた順番とバラバラになって出力されたりします。
※順番通りに表示されることもあります。
これはSwiftの仕様のようで、
Unlike items in an array, items in a dictionary do not have a specified order.
訳:配列内の項目とは異なり、ディクショナリの項目は指定された順序を持っていません。
と公式ドキュメントに記載されています。
知らなくて、何とかしようと頑張ってしまった。。
関数(func)
Swiftの関数は「function」ではなく「func」と表現し、
戻り値を返す場合「->」を使って型を指定します。
また、引数に初期値を設定することもできます。
タプル(tuple)
タプルとは、複数の値(型が違くてもok)を1つにまとめられるものです。
配列とはまたニュアンスが違います。
実際にコードを見た方が分かりやすいです↓
便利そうですが、後から要素を追加したり削除したりはできないようです。
Swiftの暗黙のルールとか空気感
ここまで変数の宣言を「var」で行ってきたのですが、
基本的には「let」を使って定数にし、
変数が必要な部分のみで「var」を使うってスタンスが良いみたいです。
あと、変数の宣言で使う型の指定ですが、
基本的には省略しちゃって良いような空気をググってて感じました。
確かにXcodeが変換してくれるとはいえ、
いちいち「String」とかタイプするの面倒。。
この辺りは賛否両論ありそうですが、
ベターな書き方が分からないので、しばらくは他人が書いたコードを読んで修行あるのみです。
今後も覚えたことや、気づいたことなどをメモしていこうと思うので、
興味のある方はまた来てください。
詳細! Swift iPhoneアプリ開発 入門ノート Swift 1.1+Xcode 6.1+iOS 8.1対応
- 作者: 大重美幸
- 出版社/メーカー: ソーテック社
- 発売日: 2014/12/13
- メディア: 単行本
- この商品を含むブログ (9件) を見る
プログラミングとかウェブでよく出てくる小難しい英単語30選
よくプログラマー(エンジニア)は、
数学が得意な人じゃないと出来ないとか言われたりしますが、
個人的には数学というより、
英語が出来る(好きな)人の方が有利だと思っています。
だってプログラミングってコメント以外英語ですし。
「なでしこ」とかはありますけどw
僕は学生時代、どちらかと言うと数学が苦手なタイプでしたが、
英語はわりと出来る方でした(というか好きだった)。
もちろん、数学も出来た方が有利に決まっていますが、
普通にご飯を食べていく分にはそんなに必要無いと思います。
ということで、
英語の意味を理解すると、仕事が更に捗るんじゃないかと思いまして、
プログラミングとかウェブで出てくるけど、
ちょっと意味が分かりづらい英単語30個をまとめてみました!
プログラミングで出てくる英単語30選
英単語 | 読み方 | 意味 |
---|---|---|
allocate | アロケート | 割り当てる |
attr(attribute) | アトリビュート | 属性 |
bind | バインド | 結び付ける |
component | コンポーネント | 部品、構成要素 |
description | ディスクリプション | 説明 |
exception | エクセプション | 例外 |
exec(execution) | エグゼック | 実行 |
extend | エクステンド | 拡張する、継承する |
extract | エクストラクト | 抜き取る |
fatal | フェイタル | 致命的な |
fetch | フェッチ | 取ってくる |
function | ファンクション | 機能 |
grant | グラント | 付与 |
ignore | イグノア | 無視する |
implements | インプリメンツ | 実装する |
init(initialize) | イニット | 初期化する |
instance | インスタンス | 実体 |
invalid | インバリィド | 無効 |
notice | ノーティス | 予告、通知 |
parse | パース | 構文解析する |
prefix | プリフィックス | 接頭語 |
prepend | プリペンド | 先頭に追加する |
previous | プリヴィアス | 前の |
render | レンダー | 表現する |
state | ステート | 状態 |
static | スタティック | 静的 |
swap | スワップ | 交換 |
syntax | シンタックス | 構文 |
temp(temporary) | テンプ | 一時的な |
validation | バリデーション | 検証 |
※2015/4/22 追記
- instanceのスペルミスを修正
- implementsの意味を「実装する」に修正
- noticeの意味に「通知」を追加
implementsは非常に勉強になりました!
もう忘れることは無いと思いますw
ご指摘頂いた皆様、ありがとうございました!
まとめた結果
.
..
...
英語の勉強みたいになった。
【Linux】サイズの大きいファイルはお前だ!消してやる!
タイトルの通り、
ストレージ内で容量の大きいファイルを見つけて削除する、Linuxコマンドをまとめました。
環境はAWS(EC2)でCentOS7です。
CentOS7の構築については、
少し前に書いて何故かとても読まれた過去記事を参照してください。
ぶっちゃけ簡単だし、
ググればこの手の類はいくらでも出てくるのですが、
念のため備忘録としてまとめておきます。
メールのキューが溜まっている場合は以下で対応。
あんまり無いと思うけど。
これで今後忘れてもググらずに済むはず。
ログとかのファイル削除に関しては、
定期的に消すシェルなどの仕組みを作るのが1番良いですね。
Linuxコマンドライン入門 1日目 (ネット時代の、これから始めるプログラミング(NextPublishing))
- 作者: 大津真
- 出版社/メーカー: インプレスR&D
- 発売日: 2014/09/05
- メディア: Kindle版
- この商品を含むブログを見る