日別アーカイブ: 2015年11月28日

Swift:垣間見えてきたもの

バグを一通り修正し、再度、登録の問題に復帰しています。

アプリ登録に時間がかかっています。IDやProfileを消し、単純化して問題の原因箇所を見つけようとしています。とにかく何が何でもArchiveできるようにしたことで全体のしくみはわかってきました。しかし、いつまでも同じことをやっても解決できそうにありません。

今、原点に戻り、原因系のところを調べていいます。それで、provision fileが見つからない、というエラーが起きるケースがあることに気がつきました。

きのうは、「写真がないbase folerの場合、結果を保証しない」としていた仕様を見直しました。いくらなんでも、写真がないからと言って、結果がどうなるかわからないというのはまずい。

そうしたら、base folderをユーザーが変更できないバグがあることに気がつきました。余計な条件を入れたため起きた問題でした。

写真がないときの対処は、配列をクリアして初期値に戻せばいいのですが、組み合わせでghostが残る問題があり、これを消すのに思いの外、苦労しました。

写真がないとき、UIのボタンを押してもno actionになるようにしました。


 

追記:App IDsは2種類あり、com.aaa.bbb.*とcom.aaa.bbb.MesaAAAがあります。前者をiTunes Connectに登録していたつもりですが、実際は後者になっています。同じサフィックスを登録できないので、違うもので登録していけば、何かわかるかもしれません。

  • iTunes Connect➡️App情報➡️一般情報
  • iTunes Connectでの登録手順メモ(調査用途)
    • 一般情報のバンドルIDでcom.aaa.bbb.*を選択
    • バンドルIDのサフィックスはMesaBBB2を設定
      このサフィックスの?には、「バンドルIDはAppのinfo.plistで使用されているものと一致する必要があります」と出ています。意味は?
    • 一般情報のバンドルIDに、IDはMesaExif – com.aaa.bbb.MesaBBB2と表示され、com.aaa.bbb.MesaBBB2 – com.aaa.bbb.MesaBBB2を選択できるようになりました。
  • この次のステップはXcodeでの設定。
    •  Xcode➡️Project➡️GeneralのBundle IdentifierにiTunes Connectで登録したバンドルIDであるcom.aaa.bbb.MesaBBB2を設定する。
    • エラーメッセージが出てくるので更新すれば、OKになる。つまり、これでcom.aaa.bbb.MesaBBB2と接続されたと解釈。
    • ここでApple DeveloperのApp IDsを見ると、先程のMesaExif2がIn-App Purchaseとして登録されています。これでいいのかなあ?いずれにしてもこれは自動的に作成されたものであり、不可避な模様。
      ただし、Mapsにチェックが入っていないので編集でチェックを入れました。
    • XcodeでNo matching provisioning profile found: Your build setting specify a provisioning profile with the UUID “コード列”, however, no such provisioning profile was found.というエラーが発生。
      Provisioning Profilesを見ると、確かに、App IDがcom.aaa.bbb.MesaBBB2になっていないので、選択しなおし、Generateで再登録し直し
    • このあと、Xcode➡️Project➡️GeneralとBuild SettingでそれぞれBundle Identifilerの再設定、Provisioning Profileの再設定。
    • Xcode➡️Product➡️Archiveを実行。ビルドのアーカイブはOKに。
    • 例のApp sandbox not enabledエラーが発生。振り出しへ
  • ここまでの操作でiTunes Connectの設定情報を削除しなくてもいいことがわかったので、App Sandbox情報をすべて入力することにして、やり直すことにします。