マックブックな日々(Macbook Geek)

Retina Macbook Proで行った設定、アプリのインストール、トラブル対策等の覚書

iOSアプリ開発の理解

## Apple Developer(リモート)

### Certificate

### Devices

### AppID

### Provisioning Profile



## Mac(ローカル)

### Provisioning Profile

Apple Developerからダウンロードする。拡張子は、'***.mobileprovision'。


### P12

Keychainに登録したCertificate。書き出すと、拡張子'.p12'のファイルになる




参考
dev.classmethod.jp

macdays.hatenablog.com

NASへのアクセスが遅い問題

### 2018/12/19 追記

macOS Mojaveにしてから、LinkStationの共有フォルダへアクセスするとハングアップするようになってしまった!!

移動ーサーバーへ接続で、再度、smb://で接続設定したところ、以前より速くなった。

サーバー接続はAFPではなく、SMBで接続すること!



### オリジナル本文

LANでNASにアクセスしているが、Finderからリストを取得したり、読み込み・保存するのがやけに遅い。同じLANに接続しているWindowsマシンでは問題ないので、Mac固有の問題らしい。

Mac NAS アクセス遅い」と検索すると、いくつかの対策が出てくる。




ymkn.hatenablog.com

```
sudo sysctl -w net.inet.tcp.delayed_ack=0
```



https://wp.bmemo.pw/48wp.bmemo.pw


共有フォルダのファイルの一覧表示が遅い - Apple コミュニティ

iOSデバイスへの、複数のGmailアカウントの設定

Gmailは、ひとつのGmailアカウントに、既存のEメールアドレス(アカウント)を登録できる。これを使うと、ひとつのGmailアカウントにログインするだけで、登録したさまざまなEメールアドレスから送受信できるので、とても便利。

さらに、iPhoneのメールにGmailアカウントを登録しておけば、iPhoneからも送受信できるようになる。

が、この方法は忘れがちなので、備忘録。

要は、このサイトをみればいい!

cogloglab.com

iOS App開発:.p12ファイルとProvisioning Profileの作成(改訂版)

参考:Adobe iPhoneアプリの開発方法 for Flash
f:id:yasuda0404:20131011162257j:plain


前バージョン:
macdays.hatenablog.com



iOSアプリ開発には、Provisioningプロファイルと、.p12ファイルの2つが必要。


####1. .p12ファイル
Mac上のキーチェーンアクセスで作成したCSRファイルをDev Centerにアップロードし、Certificateファイルをダウンロード、キーチェーンに登録して、.p12ファイルを作成する。


####2. Provisioning プロファイル

Certificate, App ID, DevicesをまとめたProvisioningプロファイルを作る。
Certificateは開発者登録、App IDはアプリの識別番号、Devicesは開発に使用するデバイス。





###1. .p12ファイルの作成

Apple Developer Centerへログイン。
'Certificates, Identifiers & Profiles'をクリック。
f:id:yasuda0404:20160826154247p:plain


####Certificates

左メニューで "iOS, tvOS, watchOS"を選択する(デフォルト状態)。

Certificates - All を選択、右上の「+」から、新しいCertificateを追加する。

f:id:yasuda0404:20160826154555p:plain


種類を選択して、ページ再下欄の'Continue'。 (通常のアプリの場合は、開発時:Development-iOS App Development、リリース時:Production-App Store Ad Hoc、で良いと思われる。その他の選択肢は別途調査必要。)

f:id:yasuda0404:20160826154850p:plain



Mac上でCSR(Certificate Signing Request)ファイルを作りなさい、というメッセージが表示される。

f:id:yasuda0404:20160826155021p:plain




CSRファイルの作り方は次の通り。

1) アプリケーション>ユーティリティから、キーチェーンアクセスを起動。
f:id:yasuda0404:20131011164352p:plain


2) キーチェーンアクセス>証明書アシスタント>認証局に証明書を要求...
f:id:yasuda0404:20131011164710p:plain

ユーザのメールアドレスにEメールアドレスを、通称に名前を入力。
CAのメールアドレスはブランクのままにして、要求の処理は「ディスクに保存」を選択。「続ける」


CSRファイルの保存場所を選択し、保存する。
f:id:yasuda0404:20131011165349p:plain


'CertificateSigningRequest.certSigningRequest’というファイルが保存される。
f:id:yasuda0404:20131011165508p:plain


再びDeveloperサイトに戻る。
Upload CSR Fileの'Choose File...'をクリックし、さきほどの'CertificateSigningRequest.certSigningRequest’ファイルを指定。再下欄の'Continue'をクリック。
f:id:yasuda0404:20160826160551p:plain


しばらく後、'Your certificate is ready.'の画面が表示される。CertificateをMac上にダウンロードする。(ファイル名は、'ios_development.cer'などとなっている)
f:id:yasuda0404:20160826160457p:plain



(今後は、Certificatesメニューから、Certificateをダウンロードできる。’Done'で終了すると、作成したCertificatesがリストに表示される。これをクリックして、ダウンロードする。また、'Revoke'でCertificateを破棄できる。)

f:id:yasuda0404:20160826161523p:plain



ダウンロードしたCertificateをダブルクリック。Certificateがキーチェーンアクセスに登録される。**Certificateの有効期限は 1年になっている**
f:id:yasuda0404:20160826161710p:plain

キーチェーンアクセスの画面で、該当証明書を選択し、「ファイル」>「書き出す」で、.p12ファイルが作られる。書き出す際にパスワードが要求されるので、入力する。

f:id:yasuda0404:20160826163721p:plain

f:id:yasuda0404:20160826163610p:plain



###2.Provisioning Profileの作成

再びDev Centerへ戻る。

####Identifiers

左メニュー'Identifiers'の設定を順次行う。

’App IDs'で、右上の'+’をクリックしてAppIDを追加する。
Explicit App IDは、厳密にIDを指定する場合。
Wildcard App IDは、最右の文字を'*'にすることで、'*'部分を変えて複数のAppに使える。

App IDは、逆ドメイン(jp.co.xxxxなど)が推奨。Wildcardの場合、最後を'.*'(例えば、jp.co.xxxx.*)とする。

Nameは後で変更可能だが、IDは変えられないので注意。

なお、完全なApp IDは、
Prefix + '.' + ID
となる。

f:id:yasuda0404:20160826164244p:plain



####Devices

DevicesでiOS機器を追加する。

UUIDはiOS機器をiTunesにつないで確認する。「概要」メニューで、デバイスのシリアル番号をクリックするとUUIDが表示され、右クリックするとコピーできる。
参考

f:id:yasuda0404:20131011155801p:plain


####Provisioning Profiles

Provisioning Profileとは、

  • App ID(一つのみ)
  • Certificate(複数可)
  • Device ID(複数可)

からなるファイル。右上の'+'ボタンをクリック。
Provisioning Profileの種類を選択。
f:id:yasuda0404:20160826165119p:plain


App IDを選択。
f:id:yasuda0404:20160826165108p:plain


Certificateを選択。Provisioning Profileの種類(Development/Production)と合致した種類のCertificateが必要。(未作成ならここから作成もできる。)
f:id:yasuda0404:20160826165230p:plain


適用するDeviceを選択。
f:id:yasuda0404:20160826165339p:plain


プロファイルの名前を入力。
f:id:yasuda0404:20160826165540p:plain


Provisioning Profileが作成される。ダウンロードする。[入力名].mobileprovision というファイル名になる。
f:id:yasuda0404:20160826165707p:plain

外付けSSDがマウントできなくなった!…でハマる。

外付けSSDがマウントできなくなった。トランセンドのStoreJet25M3(256GB)だ。これをORICOの外付けケースにいれて使っていたものだ。Macbookの本体SSDでは容量が足らないので、iTunesや写真のライブラリはすべて外付けSSDにしていたのだ。


USBを指しても、アイコンが現れない…。


顔面が蒼白になった。


最初、ケースかケーブルがだめになったのかと思い、トランセンドのケース(1700円ほどした!)に変えてみたが、状況変わらず。SSD本体の問題らしい。


ディスクユーティリティでみると、中身がグレーアウトしたアンマウント状態。上部の「マウント」ボタンを押すと、FirstAidをやれ、とでてくる。

で、FirstAidで「検証」「修復」しても、なんの問題もない、というメッセージ。なんてこった!

f:id:yasuda0404:20160507190859p:plain



トランセンドのサポートに電話して状況をつげると、S/Nを聞かれた。S/Nとともに「マウントできない」と訴えると、割りとあっさりと「交換しますので送ってください」という回答。ハズレロットだったのか。。。?

交換してくれるのいいとして、「交換するということは中身のファイルは消えるということですか?」と聞いたら、「そうです」という回答。いや、それでは困るのだ。僕の思い出の写真が消えては困る!


そこで、なんとかリカバリーしようと頑張った。



有料のディスクのリカバリーツールを試してみたが、ばらばらとファイルが出てくるだけでこれでは使えそうにない。

あとは、ディスクイメージをつくって救い出すしかない。。。。背に腹は変えられず、トランセンドの外付けHDD(1TB)を購入した。こうなったら、全部トランセンドでやってやる!


最初、ディスクイメージを別な外付けHDDに作ってみた。ディスクユーティリティ上でグレーになったボリュームを選択し、トップメニューから「新規イメージ」を選択し、dmgファイルを作る。これは無事できた。

が、「復元」タブでこのイメージファイルから復元しようとすると、「リソースは使用中です」みたいなメッセージがでて復元できない!

こうなったらイメージファイルを経由せずに、直接復元だ!ディスクユーティリティの「復元」タブで、「ソース」にグレーアウトしたボリュームを選択し、復元先に、購入した外付けHDDをアサインする。で、「復元」。

f:id:yasuda0404:20160507190453p:plain


コピーに数十分かかり、完了後、HDDを見てみると。。。。おお、SSDのファイルが戻っている!


いや、これは大変だった。もうこんな思いはしたくないので、今後は、購入したHDDを使うことにする。

もちろん、SSDは交換してもらいますよ!

KeynoteのファイルをiPhone (iPad)へもっていく

某イベントで簡単なプレゼンを行うことになったのだが、わざわざMacbookをもっていくのもおっくうだ。iPhoneでできないかと思って方法を探したら、このあたりが参考になった。

support.apple.com

もっともiCloudを使えばもっと簡単に同期できるのだが、ローカルにもっておくほうが安心。