3

iOS Deployment Target 3.2 用の iPhone アプリケーションを開発しました。

しかし、私のクライアントは考えを変え、アプリを iOS 3.1 で利用できるようにしたいと考えています。したがって、iOS Deployment Target 3.1 を設定し、基本 SDK を 4.0 のままにしましたが、すべて正常にコンパイルされますが、iOS 3.2 でのみ導入されたメソッドとクラスを使用していると確信しています。

3.1 デバイスで実行できないコードを特定するにはどうすればよいですか? (アプリケーションがクラッシュする可能性があります)

私の問題は、iPhone デバイスが 1 つ (4.0.2 がインストールされている) であり、SDK 3.1.x が Xcode によって提供されなくなったことです。

4

3 に答える 3

2

ヘンリー、これはあなたを助けるかもしれません:古いxcodeとsdkを新しいものと並行してインストールしてください。古い SDK へのリンクは、http: //iphonesdkdev.blogspot.com/2010/04/old-versions-of-iphone-sdk.htmlにあります。

希望、それはあなたが望んでいたものでした。

于 2010-09-22T03:04:02.833 に答える
0

注意事項も確認しましたか?セレクターが見つからない場合はコンパイルされますが、一致するセレクターが見つからないなどの警告が表示される場合があります。あなたは >=3.2 のものを使用したと確信していると言いました。彼らが何であるかわかりませんか?

于 2010-09-07T11:06:52.150 に答える
0

アプリケーションが 3.1 を実行しているデバイスで動作することを確認できる唯一の方法は、3.1 を実行しているデバイスでアプリケーションをテストすることです。古い (iPhone 3G S より前の) ハードウェアのサポートについても同様です。私はストアであまりにも多くのアプリケーションを見てきましたが、それらは明らかに新しいデバイスでしかテストされておらず、古いハードウェアでは動作が停止したりメモリ不足になったりしています。そのハードウェアをサポートしていない場合は、Info.plist を適切に設定して、それらのデバイスで使用できないようにしてください。

新しいメソッドやクラスをどれだけ徹底的にチェックしたと思っても、微妙な問題に遭遇する可能性があります。たとえば、特定のフレームワークを弱いリンクにする必要がある場合とそうでない場合があります。そうしないと、新しい API を使用しなくても、アプリケーションが古い OS でクラッシュします。

古いモデルの iPod touch は eBay で安く売られており、4.0 がインストールされている場合は古い OS バージョンにダウングレードできます。または、古い OS バージョンを実行しているデバイスを持っている人を見つけて、アプリケーションのアドホック ビルドを送ってテストすることもできます。メモリ使用量が古いデバイスの危険な領域に近づきすぎないようにするために、Instruments をデバイスに接続する必要があるため、これはあまり望ましくありません。

申し訳ありませんが、それが確実な唯一の方法です。別の開発者が私に言ったように、「特定の OS バージョンまたはデバイスでテストしていない場合は、アプリケーションをそこで実行しないことを検討してください。」

于 2010-09-07T14:31:34.237 に答える