1

数か月間 (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: は呼び出されません。

4

1 に答える 1

1

ビルド フォルダーの内容を削除するまで、プロジェクトを完全にクリーンアップしようとしますか? その後、再構築して、何が起こるか見てみましょう...

あなたが言及したことにはいくつかの問題がある可能性がありますが、OS/Xcodeのバージョン間で何かが「混同」されたという意味でのみ...

ビルド ファイルの場所は、Xcode の設定で確認できます (図を参照)。

ここに画像の説明を入力

それでもうまくいかない場合は、UIApplicationMain の呼び出し方法を次のように変更してみてください。

    int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

アプリ デリゲートの実際の名前を指定します。

于 2012-07-28T10:33:28.320 に答える