問題タブ [today-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xcode - Widget-Simulator で OS X Today 拡張機能のローカライズが失敗する
OS X Today 拡張機能を作成しましたが、ローカリゼーションをテストしたいと考えています。しかし、Widget-Simulator は私の言語選択を受け入れることを拒否します。
*.strings
ソースコードから翻訳されたテキスト用のファイルを作成しました:
文字列ファイルの構造のスクリーンショットを次に示します。
プロジェクト全体には、8 つのローカライズされたファイルが含まれています。ただし、そのうちの 2 つだけがウィジェットに関連しています。上記のように名前が付けられた一般的なInfo.plist
ファイルTranslationsWidget.strings
。
プロジェクト情報タブの言語リストからすべての言語が追加され、次のようになります。
シミュレーターで何が起こるかというと、シミュレーター自体が翻訳されます。シミュレーターのすべてのメニュー項目は、スキームで選択した言語で表示されます。しかし、ウィジェットの内容はそうではありません。ウィジェットは実際に翻訳されているため、構成やコードの問題ではないと思います。開発言語は英語ですが、システム言語はドイツ語です。つまり、単に翻訳されていないのではなく、間違った言語に翻訳されているのです。
含まれているメイン アプリケーション (Today 拡張機能は通常のアプリ内にパックする必要があります) は、対応するスキームで選択したものにうまく変換されます。
メニューからProduct -> Cleanを数回実行しただけでなく、すべての派生データも削除しました。
そのためだけでなく、何らかの形でキャッシュされたものではないと確信しています。同様に、ドイツ語の翻訳文字列を更新すると、次回の実行時にウィジェットが更新されます。
システム言語を変更することで、ウィジェットのローカライズが完全に機能することをテストしました。スキームで言語を変更しても、Widget-Simulator では機能しません。
他の言語をテストするためにドイツ語の翻訳をオーバーライドする必要があり、これは非常に面倒です。これはよくある問題ですか?誰かが修正を見つけましたか?
ios - Today Extensions (iOS) で関数の実行を遅らせることが可能です
Today Extension 内からロードされるフレームワーク内のメソッドの実行を遅らせたいと考えています。
私はこれを試しました:
タスクと待ち時間を受け取る関数
であること
しかし、それは遅滞なく実行されます
また、試してみました..
しかし、この呼び出しはアプリをハングアップさせ、その時間以上、永遠に応答しなくなります。
objective-c - NSExtensionContext openURL が Mac OS X Today ウィジェットで機能しない
私が何をしても、次のコードは「成功: 0」を返すだけです (つまり、ホスティング アプリを起動しません)。
Safari で myapp://launch URL を直接試すと、機能してアプリが起動します。ただし、今日のウィジェットはそれを起動することを拒否します. サンドボックス化されており、「送信接続」機能もオンにチェックしましたが、うまくいきません。それを機能させるために私がする必要があることはありますか?
xcode - Today 拡張機能でカスタム ボタンが表示されない
ホスト アプリに、Today 拡張機能で使用したいカスタム ボタンがいくつかあります。
アプリでは問題なく動作しますが、ウィジェットには表示されません。
左側のボタンはカスタム ボタン クラスで、右側のボタンは UIButton です。カスタムクラスに変更すると、それも消えます。
なぜこれが起こっているのでしょうか?
- - - - - - - - - - - 編集 - - - - - - - - - - - -
なんとか表示できましたが、ボタン全体を描画していないこともあれば、ボタンを正しく描画していないこともあります。
どんな助けでも大歓迎です!ありがとう
ios - iOS - Today 拡張機能を複数のアプリ ターゲットと共有しますか?
複数のアプリ ターゲット (約 25) を持つプロジェクトがあります。
それらのアプリ用の今日の拡張機能を作成する予定ですが、同じコードと構成で約 25 の拡張機能を作成したくありません。
25 個のアプリに割り当てる Today Extension を 1 つだけ作成することはできますか?
xcode - Xcode - info.plist および資格の変数/プレースホルダーの解決に関する奇妙な問題により、アーカイブの検証に失敗する
私のプロジェクトまたは Xcode で何かが本当に壊れており、何が起こっているのかを理解するのに 2 日間苦労しています。
私のアプリケーションは問題なく動作しています。これは OS X アプリケーションであり、Today Widget 拡張機能が含まれています。最近プロジェクトを完成させましたが、検証エラーのためにアプリを公開できません。
それは、メイン アプリケーションと Widget 拡張機能の間でコンテンツを共有するために使用するアプリケーション グループについてバリデーターが不平を言うことから始まりました。グループは として定義されまし$(TeamIdentifierPrefix)com.acme.GreatApp
た。
バリデーターは、私のグループ名が間違った形式であり、むしろ私の TEAMID で始まるべきだと不平を言っていました。$(TeamIdentifierPrefix)
サークルで 3 時間走った後、プレースホルダーをチーム ID (例: )に置き換えたS3F45A5S35.
ところ、うまくいきました。
info.plist
次に、バリデーターは、 myおよび entitlements ファイル内の他のあらゆる種類のプレースホルダー ( $(PRODUCT_NAME)
、 、com.acme.GreatApp.$(PRODUCT_NAME:rfc1034identifier)
など) について不平を言いました$(EXECUTABLE_NAME)
。これらのプレースホルダーをすべて対応する値に置き換えたところ、受け入れられました。
その後、しばらくの間、バリデーターは構造的な問題について不平を言いましたが、これは私にはあまり意味がありません。
iTunes Store の操作に失敗しました。不正な CFBundleExecutable。ネストされたバンドル GreatAppWidget [com.acme.GreatApp.pkg/Payload/GreatApp.app/Contents] プロパティ リスト ファイルで CFBundleExecutable の値に一致する実行可能ファイルが見つかりません
iTunes Store の操作に失敗しました。バンドル ID が正しくありません。アプリケーション拡張 GreatApp.app/Contents/Plugins/GreatAppWidget.appex のバンドル ID 'com.acme.GreatApp.GreatAppWidget' は、それを含むアプリケーション (com.acme.GreatApp.GreatAppWidget) のバンドル ID のドット パスを拡張する必要があります。
私の拡張機能が拡張機能に含まれていると言っていますか?
iTunes Store の操作に失敗しました。バンドルの場所が無効です。バンドル GreatApp.app/Contents/Plugins/GreatAppWidget.appex は、親バンドルの Contents/Plugins ディレクトリに含まれている必要があります。
まあ、エラーは、それが正しくないと主張することをするべきだと述べています。明らかにそれは親アプリフォルダーにありますContents/Plugins
。だから何?
iTunes Store の操作に失敗しました。2 つのバンドルの CFBundleExecutable が同じファイルを指していない場合があります。次の共有バンドル パスが見つかりました: GreatApp.app/Contents。
問題は、私のアプリと拡張機能が完全に正常に動作することです。依存関係やパスなど、何かが壊れているとしたら、何かがうまくいかない可能性が高いですよね?
さらに、ビルド設定を変更したり、理解できないものを変更したりしませんでした。これらはすべてデフォルト設定です。新しい Cocoa アプリケーションを作成し、新しい Today Widget Extension をターゲットとして追加しました。それだけです。パス、場所、依存関係などをいじりませんでした。
とにかく、これらのエラーはしばらくしか表示されなかったので、幸運にもスクリーンショットを作成しました。なぜなら、私がそれを引き起こす可能性のあるものを変更していないにもかかわらず、エラーメッセージに生のプレースホルダーが表示されているからです。私が行ったことを思い出すことができる唯一のことは、すべてのプロビジョニング プロファイルと証明書をディスク上、キーチェーン、およびメンバー センターでローカルに削除/取り消し、Xcode を使用してゼロからすべてを作成したことでした。
エラーは次のようになります。
iTunes Store の操作に失敗しました。不正な CFBundleExecutable。ネストされたバンドル${bundleName} [ ${bundlePath} ] プロパティ リスト ファイルで CFBundleExecutable の値と一致する実行可能ファイルが見つかりません
iTunes Store の操作に失敗しました。バンドル ID が正しくありません。アプリケーション拡張機能${bundlePath}のバンドル ID ' ${bundleIdentifier} ' は、それを含むアプリケーション ( ${parentBundleIdentifier} )のバンドル ID のドット パスを拡張する必要があります。
iTunes Store の操作に失敗しました。バンドルの場所が無効です。バンドル${bundlePath}は、親バンドルの${pluginsSubPath}ディレクトリに含まれている必要があります。
iTunes Store の操作に失敗しました。2 つのバンドルの CFBundleExecutable が同じファイルを指していない場合があります。次の共有バンドル パスが見つかりました: ${sharedBundlePath}。
だから私は、Apple が最近のアップデートでそれを煽っただけで、拡張機能を使ってアプリを検証できないのではないかと考えました。それで私はウェブを検索し、本当に素晴らしいサンプルToday-Scriptsを見つけました。すべてのターゲットにアプリ グループ ( $(TeamIdentifierPrefix)com.acme.Today-Scripts
、ここでのプレースホルダーは完全に機能します) を追加し、サンドボックスを有効にし、証明書とプロビジョニング プロファイルを変更しました。
そこで、すべてのビルド設定などを比較しました。プレースホルダーを実際の値、明らかに証明書とプロファイル、および Today-Scripts にウィジェットに埋め込まれた追加の XPC ターゲットがあるという事実に置き換える必要があったことを除いて、彼らは原子的に同じです。すべて の 設定は同じです。
すべてのキャッシュをクリアしました。本当に大変です。プロジェクトをクリーンアップし、クリア~/Library/Developer/Xcode/DerivedData
し~/Library/Caches/com.apple.dt.Xcode
、数回再起動しましたが、何も役に立ちません。
自分に何ができるのかわからないので、本当に必死です。Xcodeがここで何をしているのか、そしてその理由を誰かが明らかにしてください。
- Xcode が
info.plist
および entitlements ファイル内のすべてのプレースホルダーを解釈できない原因は何ですか? bundle
上記のエラーは、私が作業しているときに どのように発生しますか- 新しいココアアプリを作成し、拡張ターゲットを追加することによって作成された正確な設定XCode?
- Today-Scripts の例とまったく同じ設定/依存関係ですか?
ios - カスタム ボタンがまだ Today Extension で描画されない
この質問を投稿したのは 9 日前です。
私はそれを理解していないので、コードとスクリーンショットで再投稿しています。
ホスト アプリでは正常に機能するカスタム ボタンがありますが、Today 拡張機能では完全には描画されません。
ストーリーボードでどのように表示され、プレビューがどのように歪んで見えるかを次に示します。
iPhone 5s で実際に表示すると、次のようになります。
これは、Today Extension のロード方法と関係があると思います。これは、どういうわけか、ボタンが完全に描画されていないためです。ただし、これは歪んだプレビューを説明するものではありません (少なくとも私の初心者にとっては)。
ボタンのコードは次のとおりです。
ios - 今日の通知(Today拡張)で表示されたデータをappdelegateメソッドに送る
今日の拡張機能を使用しています
テーブルビューの今日の通知にイベントのリストを表示しました。
選択した行イベントをクリックしながら、appdelegate メソッドで送信したい
行の選択をクリックすると、アプリ内を移動してopenurlメソッドを呼び出しますが、このメソッドまたは選択した行番号で選択したイベントを取得できません。
今日の拡張機能からアプリへのデータを取得できますか
今日のviewcorollerの私の現在のコードは
イベントをクリックすると、行番号が appdelegate メソッド (openurl) に送信されます。
助けを求める