カテゴリー : iOS

[iOS] iPhone, iPad の Safari ブラウザで画像が表示されない問題の解決方法

iPhone や iPad の Safari ブラウザで特定のページの画像が表示されないことがありました。

調べてみると iOS のリソース制限らしいです。

iOS Development

続きを読む

An App ID with Identifier com.example.xxx is not available. Please enter a different string.

iOS Developer Console の Identifiers – iOS App IDs の登録フローで Bundle ID の項目についてバリデーションエラーが発生しました。

エラーメッセージ

An App ID with Identifier ‘com.example.xxx’ is not available. Please enter a different string.

既に同じ Bundle ID が登録されているというエラーメッセージなので、開発会社の方とかに依頼してる場合はそっちで登録されている場合は削除してもらうと、すぐに登録できます。

基本的に com.example の部分は所有しているドメイン名を使うはずなので、重複することって無いですけどね。

[iOS][CocoaPods] Psych::SyntaxError – ( .cocoapods/repos/master/CocoaPods-version.yml): mapping values are not allowed in this context at line 3 column 4

iOS アプリを久しぶりにビルドしようと思って pod install したところ、安定のエラーが発生しました。

pod install
 
――― MARKDOWN TEMPLATE ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
 
### Report
 
* What did you do?
 
* What did you expect to happen?
 
* What happened instead?
 
 
### Stack
 
```
   CocoaPods : 0.29.0
        Ruby : ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.1]
    RubyGems : 1.8.25
        Host : Mac OS X 10.9.2 (13C1021)
       Xcode : 5.1.1 (5B1008)
Ruby lib dir : /Users/bakorer/.rvm/rubies/ruby-1.9.3-p448/lib
Repositories : master - https://github.com/CocoaPods/Specs.git @ b8a8633c844c3666a95b28edf1d821acfd1b1baf
```
 
### Podfile
 
```ruby
platform :ios, '6.0'
pod 'NSLogger'
pod 'Parse'
...
```
 
### Error
 
```
Psych::SyntaxError - (/Users/bakorer/.cocoapods/repos/master/CocoaPods-version.yml): mapping values are not allowed in this context at line 3 column 4
/Users/bakorer/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/psych.rb:203:in `parse'
/Users/bakorer/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/psych.rb:203:in `parse_stream'
/Users/bakorer/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/psych.rb:151:in `parse'
/Users/bakorer/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/psych.rb:127:in `load'
/Users/bakorer/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/psych.rb:297:in `block in load_file'
/Users/bakorer/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/psych.rb:297:in `open'
/Users/bakorer/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/psych.rb:297:in `load_file'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/gems/cocoapods-0.29.0/lib/cocoapods/sources_manager.rb:261:in `version_information'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/gems/cocoapods-0.29.0/lib/cocoapods/sources_manager.rb:222:in `repo_compatible?'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/gems/cocoapods-0.29.0/lib/cocoapods/sources_manager.rb:281:in `master_repo_functional?'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/gems/cocoapods-0.29.0/lib/cocoapods/command.rb:39:in `parse'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/gems/claide-0.4.0/lib/claide/command.rb:179:in `parse'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/gems/cocoapods-0.29.0/lib/cocoapods/command.rb:38:in `parse'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/gems/claide-0.4.0/lib/claide/command.rb:211:in `run'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/gems/cocoapods-0.29.0/lib/cocoapods/command.rb:51:in `run'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/gems/cocoapods-0.29.0/bin/pod:24:in `<top (required)>'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/bin/pod:19:in `load'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/bin/pod:19:in `<main>'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in `eval'
/Users/bakorer/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in `<main>'
```
 
――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
 
[!] Oh no, an error occurred.
 
Search for existing github issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=%28%2FUsers%2Fbakorer%2F.cocoapods%2Frepos%2Fmaster%2FCocoaPods-version.yml%29%3A+mapping+values+are+not+allowed+in+this+context+at+line+3+column+4&type=Issues
 
If none exists, create a ticket, with the template displayed above, on:
https://github.com/CocoaPods/CocoaPods/issues/new
 
Don't forget to anonymize any private data!

cocoapods を最新版にアップデートして、setup し直せば良いと Stack Overflow に書いてあったので、その通りやってみました。

ios – CocoaPods install issue – Stack Overflow

gem update cocoapods
pod --version
0.32.1
cd ~/.cocoapods/repos
rm -rf master
pod setup

再度、 pod install すれば OK

[Apple] Your iOS Distribution Certificate will expire in 30 days. の対応

Apple から「Your iOS Distribution Certificate will expire in 30 days.」という内容のメールが着ました。

対応方法は下記を参考にしました

プログラミング雑記: Certificate期限切れの通知が送られてきたら

今回は既に期限切れだったので、

  1. 手元に CertificateSigningRequest.certSigningRequest ファイルを残していたので、もう一度 Certificate を作成する
  2. 期限切れの Provisioning Profiles から作成して Certificate を指定する

以上です。

DeployGateがiOSアプリの配布機能を提供開始!

DeployGateが、iOSアプリの配布機能を提供開始したようです。(β版)

DeployGate – Beta Program

DeployGate_beta_program

期間限定の特典

Beta Programをご利用いただくアカウントでは、DeployGateの可能性をお試し頂くために、次の制限が解放されています。

・ アプリ数: 無制限
・ 配布数: 無制限
・ チームメンバー数: 無制限

Beta Program期間中だけ? …ではありません!これらは、Beta Program期間の終了後もご参加いただいた方のアカウントに残ります。 DeployGate を一緒によりよくしていくのにご協力いただける方を歓迎します。

今、登録すると永久に無制限で利用できるらしいので、すぐ必要ない方もとりあえず登録してみてはいかがでしょうか。

[iOS] The binary you uploaded was invalid. The key CFBundleVersion in the Info.plist file must contain a higher version than that of the previously uploaded version.

iPhoneアプリを修正して、新しいバージョンを App Store へ申請しようとしたところ、下記のようなエラーが発生しました。

The binary you uploaded was invalid. The key CFBundleVersion in the Info.plist file must contain a higher version than that of the previously uploaded version.

invalid_CFBundleVersion

前に申請したバージョンよりも Build version を大きくする必要があり、それのバリデーションに引っ掛かったようでした。


参考情報

Basuke's Blog: AppStoreのバージョン番号ではまる

[iOS] レビュー依頼は「iRate」、バージョンアップ通知は「iVersion」

ポッドキャスト Rebuild: 29: Rate My App (Naoya Ito) を聴いて、iOSアプリでよく使いそうなライブラリを知りました。

nicklockwood/iRate

nicklockwood/iVersion

レーティング依頼のダイアログ表示は、前に自分で実装したのですけど、そりゃあライブラリありますよね。

何でライブラリ探せなかったんだろう。

レーティング依頼のダイアログ表示はウザいという話もあるので、実際に使うかどうかは考える必要がありますけどね。

iTunes Connect から申請中のiOSアプリを削除する方法

iTunes Connect にログインして、「Binary Details」ページの「Reject Binary」ボタンをクリックすると、ステータスが「Developer Rejected」に変更されて、バイナリが審査待機リストから削除されます。


参考情報

iPhoneアプリ申請やAppleの審査に関するメモ – Qiita [キータ]

[iOS] CocoaPod経由でインストールされる「Facebook-iOS-SDK」と「FacebookSDK.framework」の競合を解決する

iOSアプリ開発で、CocoaPod経由でインストールされる「Facebook-iOS-SDK」と「FacebookSDK.framework」がプロジェクト内にどちらも存在することがありました。

CocoaPod で「Parse」のライブラリをインストールしているのですが、依存関係で「Facebook-iOS-SDK」もインストールされてしまうためです。

プロジェクトでは、CocoaPod経由の「Facebook-iOS-SDK」ではなく、直接読み込む「FacebookSDK.framework」の方を使いたいので、「Facebook-iOS-SDK」をビルド対象に含めないようにする必要があります。


Facebook-iOS-SDK をビルド対象に含めない設定

  1. Pods プロジェクトを選択
  2. TARGETS を表示
  3. Pods-Facebook-iOS-SDK を右クリック
  4. Delete をクリック

delete-Pods-Facebook-iOS-SDK-from-targets

あとは、いつも通り Pods をビルドすれば OK です。

[iOS] Use of undefined identifier FBAppCall

iOS アプリで、FacebookSDK.framework を使っているのですが、ビルド時に下記のエラーが発生しました。

Use of undefined identifier FBAppCall

原因は、FacebookSDK.framework のバージョンが違っていて、FBAppCall.h ファイルがそもそも存在していなかったことでした・・・。

FacebookSDK.framework は CocoaPods で管理してなかったので、早めに CocoaPods 管理下に置きたいです。