1

Cydia でホストされているアプリケーションに問題があります。ユーザーは、起動時にアプリがクラッシュすることに不満を持っています。このアプリは CoreData を使用していますが、これと関係があると思いました。奇妙なことは、シミュレーターを使用して、またはテスト時に私のデバイスで正常に動作することです。しかし、Cydia からインストールするとすぐにクラッシュします。

SBSettings の "Fix User Dir Permissions" を使用すると、この問題が修正されることが判明しました。

これについて何ができるでしょうか?

4

1 に答える 1

0

これについて BigBoss のリポジトリ担当者と話し合ったところです。

明確な答えは得られませんでしたが、Cydia がアプリケーションをインストールするときに、アプリケーションの所有権が (明示的に) 設定されるとは限りません。それは私には奇妙に思えます。私の場合、彼らは私のアプリをテストインストールし、それがユーザー/グループ = { 1000 / 100 } によって所有されていることを確認しました。これは、.deb パッケージを準備していたマシンの Linux ユーザー ID とグループ ID でした!

.deb パッケージをビルドし、それを自分のローカル テスト リポジトリにデプロイし、Cydia で (自分のリポジトリをポイントして) インストールした場合も、これと同じ動作が見られます。

いずれにせよ、私は彼らにこれを説明しました。

ただし、もう 1 つのオプションは、インストール後のスクリプトでアクセス許可を手動で修正することです。.deb パッケージでは、次のフォルダーとファイル構造になります。

  • DEBIAN/コントロール
  • DEBIAN/postrm
  • DEBIAN/postinst
  • DEBIAN/preinst

これをpostinstスクリプトに入れると、後で SBSettings に移動する必要なく、すぐに修正されるはずです。

#!/bin/bash

chown -R root.wheel /Applications/MyAppName.app/

exit 0

たとえば、他のディレクトリを作成する必要がある場合は、スクリプトでそれ以上のことを行うことができます。ただし、少なくとも .app ディレクトリ自体の所有権を変更するには、上記で十分です。

この BigBoss リンクは、アプリのコードに追加のディレクトリを作成することを推奨しており、インストーラーはrootとして実行されますが、アプリは通常ユーザーmobileとして実行されます。postinst実行内容によっては、 (ルート) またはアプリ (モバイル)で所有権/権限を修正する方がよい場合があります。

于 2012-07-18T22:10:25.587 に答える