3

こんにちは私はiPadにアプリをアップロードしようとしています(iOS 5.1)-脱獄、

そのネットワーク検索アプリです。私はプライベートAPIを使用しています。理解しているように、アプリのビルドバージョンをデバイス/Applicationsフォルダーに配置する必要があります。

(cyberduckを使用してプロセスを理解したとしましょう)

これまでのところ、すべてが機能しています。

しかし、アプリのコードを更新するたびに、どのファイルを置き換える必要がありますか?/Applicationsディレクトリ内のもののみ、または。にあるもののみ/User/Applications/。。。?atmコードを更新するたびに、デバイスを再起動するまでコードが更新されないようです

再起動する前に、Xcodeを介して次のエラーが発生します。

指定されたバンドル識別子を持つシステムアプリケーションはすでにデバイスにインストールされており、置き換えることはできません。

助けてください

4

2 に答える 2

4

プライベート API を使用しているからといって、常に にアプリをインストールする必要があるわけではありません/Applications。それは、どのプライベート API と、何をしようとしているかによって異なります。システム アプリケーション、および Cydia を介して配布されるアプリは、一般に にインストールされ/Applicationsます。通常のサードパーティの App Store アプリ (弊社)は/var/mobile/Applications(/User/Applicationsは へのリンクな/var/mobile/Applicationsので、これら 2 つの場所は同じです) にインストールされます。

そのため、デフォルトでは、Xcode はアプリを /Applications にインストールしません。の下のどこかにアプリをインストールします/var/mobile/Applications

手動でアプリを に配置し/Applications、Xcode から再度ビルドして実行しようとすると、Xcode は にバージョンを表示し、/Applications/MyAppName.appにインストールしようとしても/var/mobile/Applications/*/MyAppName.app、バンドル識別子に基づいて競合を認識します (これはアプリの Info.plist ファイルで指定されています)。

/Applicationsそのため、との両方に同じバンドル ID を持つアプリをインストールすることはできません/var/mobile/Applications。ご希望の場所をお選びいたします。

アプリを/Applicationsにインストールする場合は、スクリプトを使用してインストールします (たとえば、SFTP を使用)。でアプリが必要な場合は、Xcode から直接/var/mobile/Applicationsビルドして実行できます。

再起動の必要性に関しては、それは必要ないはずです。デバイスにログインして、次のコマンドsshを発行する必要がある場合があります。uicache

ssh mobile@iphone
uicache

また

ssh root@iphone
su mobile -c uicache

SpringBoard に新しくインストールされたアプリを認識させるため。Xcode から直接実行する場合は必要ありませんが、Xcode からビルドしてから (SFTP) インストール スクリプトを実行する場合は、uicache.

お役に立てれば。

編集: Xcode内から呼び出されるカスタムのビルド後のスクリプト/ステップを書くという問題には入りませんでした。したがって、上記の回答で Xcode からの実行について言及するときは、Xcode が動作するデフォルト モードについて言及しています。

于 2012-09-26T20:59:37.210 に答える
0

はい、すべてのプライベート API に管理者権限が必要なわけではありません。つまり、Apple80211 関数はそうします (私の場合)。

アプリケーションをルート フォルダにアップロードする場合

  • アーカイブ用のアプリケーションをビルドします: (リリース ビルド)
  • デフォルトのビルド パスに移動する
  • /Users/"user"/Library/Developer/Xcode/DerivedData/"アプリ名"/Build/Products/Debug-iphoneos/
  • ビルドファイルは上記のディレクトリ「ApplicationName.app」にあります
  • このファイルをルート アプリケーション ディレクトリ /Application にアップロードします。
  • (/Private/Var/Mobile/Application ではありません)
  • SSH を使用して iOS デバイスのファイル ディレクトリにアクセスする
  • ファイル転送に SFT プロトコルを使用する - (Cyber​​Duck は優れたソフトウェアです)

通常、Xcode で「実行」ボタンを押すと、アプリが /Var/mobile/applications ディレクトリにインストールされますが、Xcode が /Applications にアプリが既に存在することを検出した場合は、単純に後者を使用します。

したがって、コードを更新するとき。. . . - 新しいビルドを作成する必要があります。(上記のように) - フォルダ "ApplicationName" を /Applications から削除し、(新しい) 更新されたビルド (ApplicationName.app) を /Applications ディレクトリに配置します。

Stumbler は、上記の手順を試す優れた例です。Stumbler は、アプリケーションが /Applications 内にあることを要求する Apple80211 関数を使用します。コードを少し変更して、上記の手順を試してください。. . . コードはhttp://blog.guvenergokce.com/iphone-wireless-scanner-ios5/170/で入手できます。

これが途中で誰かを助けることを願っています!

タスキ

于 2012-09-27T06:32:01.837 に答える