数か月間 (2011 年 11 月から現在まで) appstore にあった iPhone アプリを持っています。7 月 17 日に iTunes に更新プログラムを渡しましたが、今日は拒否されました。彼らは、iPad で実行すると黒い画面しか表示されないと言いました。私はそれをテストしましたが、実際には、スプラッシュスクリーンの画像が表示され、数秒後にアプリの最初の画面ではなく黒い画面に置き換えられました。(iPad-Simulator および物理 iPad)。しかし、Xcodes コンソールにはメッセージがありませんでした。
そこで、7 月 17 日より前にロードした iPhone でアプリを起動し、リリース前にアプリをテストしました。完全に動作しました。
次に、iPhone-Simulator の Xcode から開始しました: Splash-Picture、その後黒い画面ですが、コンソールにメッセージはありません。
そこで、iPhone を接続し、新しくコンパイルされたバージョンを iPhone にロードしました: 黒い画面!!!
詳細を確認するために、コードの main.m と appDelegate.m のいくつかの場所に次の行を挿入しました。
NSLog(@"%s Line %d",__PRETTY_FUNCTION__,__LINE__);
main.m の内容:
//(some comment-lines)
#import <UIKit/UIKit.h>
int main(int argc, char *argv[])
{
NSLog(@"%s Line %d",__PRETTY_FUNCTION__,__LINE__); //this is line 13
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"%s Line %d",__PRETTY_FUNCTION__,__LINE__); //this is line 15
int retVal = UIApplicationMain(argc, argv, nil, nil);
NSLog(@"%s Line %d",__PRETTY_FUNCTION__,__LINE__); //this is line 17
[pool release];
NSLog(@"%s Line %d",__PRETTY_FUNCTION__,__LINE__); //this is line 19
return retVal;
}
appDelegate.m にも次の行を入力しました。
- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
NSLog(@"%s Line %d",__PRETTY_FUNCTION__,__LINE__);
// some more code
}
アプリを実行すると、Xcode コンソールに次の 2 行だけが表示されます。
2012-07-28 11:03:29.548 nulowi[4072:c07] int main(int, char **) Line 13
2012-07-28 11:03:29.553 nulowi[4072:c07] int main(int, char **) Line 15
main.m の main が実行され、Autoreleasepool が作成されたかのように見えます。しかし、main.m で UIApplicationMain を呼び出した後、apps デリゲートで application:didFinishLaunchingWithOptions: を呼び出す前に、何かが起こったに違いありません。
私の MacBook Pro で Mac OS X 10.7 (Lion) から OS X 10.8 (Mountain Lion) にアップグレードしたことと何か関係があるのでしょうか? 7 月 17 日にバージョン 10.7 の MacBook からテスト済みのアプリをリリースしたときは、すべて問題ありませんでした。昨日、10.7 から 10.8 へのアップデートをインストールしました。
バージョン 10.8 から実行しようとすると、 application:didFinishLaunchingWithOptions: は呼び出されません。