iPhoneアプリの無料版と有料版を同じソースから作りたい

公開日: : 最終更新日:2011/04/19 iPad, iPhone ,

こども向けに作った自作アプリおんぷちゃんは、習作でもあったのでiPhone無料版、iPhone有料版、iPad有料版と毎回ほぼ古くスクラッチから作っていたので、全てコードベースが異なる。
(もちろん流用したコードも沢山あるけれども)
今回、iPhone有料版にランキングモードを追加したのだが、これをiPhone無料版に入れようとしたところ、いろいろと相違点があるために簡単にはできなかった。
ということで、この機会に有料版から一部機能を削る形で無料版を作ってみることにした。
[iPhoneアプリ開発] 無料版と有料版を同じXcodeプロジェクトで作る – func09を参考にして、同じソースから無事無料版を作り分けることができたのだが、おんぷちゃんの場合、日本語版とそれ以外でアプリ名を切り替える必要があるため、InfoPlist.stringsで

CFBundleDisplayName = "My Little Note";

のようにしてアプリ名を指定している。
さらに、無料版と有料版でアプリ名が異なる(片方はLiteがついていたりする)ので、このファイルも無料版と有料版で切り替える必要がある。
これにちょっと苦労したが、InfoPlist.strings ファイルを選択して、「情報を見る」でターゲットを指定し分けることで対応できた。
localize01.png

ここまででビルドができるようになったのだが、最後に App Store にSubmitするところで問題が起きた。
Xcode から Build and Archive はできるのだが、Validation をパスすることができない。というよりも、実行しても反応がない。
当然 Submit まで進むことができない状況になっている。
いろいろ試しているうちに、今度は以前は問題なかった、無料版のiPhoneへの転送時に The executable was signed with invalid entitlements 0xE8008016 エラーが発生するようになってしまった。
localize02.png

確かにこの前 Development Certificates の更新はしたので、それが原因だろうか。しかしCertificate もProvisioning Profileも正しく生成されているはずなのだが。
有料版の方をターゲットに指定すれば問題なくiPhoneに転送して実行できるし、以前作成してた無料版のプロジェクトからも同じProvisioning Profileを使って普通に転送できている。
なぜか、無料版だけ実行できないという問題だ。
build ディレクトリの削除や、全てのターゲットのクリーニングはもう何度もやっているが、改善されない。
昨日から数時間はまっているので何とか解決したいところだ。

追記 2011/04/12

どれにも解決方法は載っていなかった。
XCodeとiOS SDKが少し古かったので、最新の XCode 3.2.6 + iOS SDK 4.3 にあげてみたが、状況は変わらなかった。

追記 2011/04/13

Twitterで質問したところ、@SumPositive さんから情報をもらうことができた。
情報1
情報2
そもそも参考にした例でターゲットにはスペースが入っていたので問題があるとは全く思っていなかったのだが、実際にターゲット名称からスペースを削除してみたらiPhoneに転送ができてしまった。
参考にしたStackOverflowの記事というのは、これだろうか。
ios – Xcode 4: Build Failed, No Issues – Stack Overflow

しかしこれで解決したと思ったが実はこの後も苦労は続いたのだった。

関連記事

Apple Special Event 2010

2010年は、1月に初代 iPad が発表され、6月にWWDCでiPhone4が発表されるという、

記事を読む

no image

Objective-C 2.0のプロパティで再びはまる

Objective-C 2.0のプロパティに関してはまったことがあり、これはちょっと詳しく知っておく

記事を読む

KORG LP-380 で QUICCO SOUND mi.1 を使ってみた

電子ピアノ KORG LP-380 を買ったのでこの機会に以前から気になっていた QUICCO SO

記事を読む

no image

[iOS SDK] Game Center の Leaderboard 機能を利用してみた

自分で作っている英単語学習アプリを自分でひたすらテストをしているのだけれども、実際やってみるとなかな

記事を読む

no image

iPhoneアプリビジネス本 The Business of iPhone App Development

iPhoneアプリを売るための情報が詰まった本。 ここまでやるか、というくらいの情報が詰まっている。

記事を読む

no image

iOSアプリの Ad Hoc 配布の悪夢から解放される TestFlight

面倒だった Adhoc 版のやりとりを格段に楽にしてくれる TestFlight | つくる社LL

記事を読む

Build Your Apps for iOS 11 and iPhone X

Build Your Apps for iOS 11 and iPhone X メールが来た。

記事を読む

[iOS9] viewWillAppear で部品の位置が確定しなくなった

どうやら iOS9 から viewWillAppear では部品の位置が確定しなくなったらしく、vi

記事を読む

no image

[iPhone SDK] 日時のローカライズ

自分でも何度か調べてしまったので記録しておく。 Objective-Cで日時を表示したい場合、単純

記事を読む

no image

[iPhone SDK] 自作iPhone アプリのアイコンをつや消しにする

iPhone のホーム画面に表示されるアプリアイコンは自動的に てかてか つやつや 効果を付与されて

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

ポモドーロテクニック用物理タイマーならTime Timer

会社ではなかなか自由に時間を使えないが、家で読書や作業をする

DELL 32インチディスプレイ U3223QE 購入

Dell U3223QE は解像度 3840x216

WWDC 2023 Vision Pro発表

2023/6/5 (日本時間 2023/06/06 2AM)のWWD

M1 MacBook Air を Venturaにアップデートする

M1 MacBook Air を macOS Montere

iOS16でaurioTouch の inBufferFramesが1になる

https://developer.apple.com/librar

→もっと見る

PAGE TOP ↑