iPhone連絡先アプリ だけが iCloud連絡先 のデータをエクスポートできない件

iPhone連絡先アプリ だけが  iCloud連絡先 のデータをエクスポートできない件

図からわかるように

iCloud 連絡先は、非Appleデバイスではアクセスできない。

iPhone連絡先アプリ だけが  iCloud連絡先 のデータをエクスポートできない件

Mac などパソコンがない場合は、iCloud 連絡先は iPhone 上では、連絡先アプリしかアクセスできない。

Android OS 上で iCloud 連絡先のデータを利用したい場合は、

iCloud 連絡先のデータをエクスポートして、Google コンタクトへインポートする。

しかないのだが、

iPhone連絡先アプリ だけが  iCloud連絡先 のデータをエクスポートできない件

iOS連絡先 アプリだけ iCloud連絡先 のデータをエクスポートできない。

Mac などパソコンがない状況では、iCloud 連絡先データは、エクスポートして、Googleコンタクトへインポートできないということになる。

まとめ

Apple、Google以外サードパーティツールを使えば状況は変わるが、そもそもは、

「iCloud連絡先 は、Appleデバイス間でのデータ共有クラウドツール。」

「Googleコンタクト は、あらゆるデバイスでのデータ共有クラウドツール。」

というそれぞれインターネットジャイアントのポリシー。

Googleコンタクト のが幅広く自在に使える。

👉 連絡先をクラウド上に保存する - 連絡先 / コンタクトの使い方まとめ その1【Android / iPhone】 
👉 Google コンタクト データをAndroid と iPhone で共有する - 連絡先 / コンタクトの使い方まとめ その2【Android / iPhone】 
👉 連絡先アプリ 必ず把握しておくべき全設定画面別使い方メモ- 連絡先 / コンタクトの使い方まとめ その3【Android → iPhone】 
👉 Googleコンタクト から iCloud連絡先 へ完全移行する手順 - 連絡先 / コンタクトの使い方まとめ その4 【Android → iPhone】 


LeakCanary 2.8.1 アプリ起動時に NullPointerException

LeakCanary is a memory leak detection library for Android.
👉 LeakCanary 

アプリが起動できずにこんなの出ましたけど。


2022-02-28 21:18:29.578 16816-16816/com.benigumo.apn D/AndroidRuntime: Shutting down VM
2022-02-28 21:18:29.589 16816-16816/com.benigumo.apn E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.app, PID: 16816
    java.lang.NullPointerException
        at q5.c$c.b(:112)
        at q5.c$c.f(:154)
        at p5.f.d(:233)
        at c7.x$a.c(:46)
        at p5.b$a.a(:38)
        at c7.x$a.b(:43)
        at q5.b$b.a(:25)
        at q5.b$b.add(:23)
        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:393)
        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:133)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4847)
        at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:54)
        at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2214)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loopOnce(Looper.java:201)
        at android.os.Looper.loop(Looper.java:288)
        at android.app.ActivityThread.main(ActivityThread.java:7842)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)

minifyEnabled false ではクラッシュしない。

回避方法

難読化されている部分は以下の模様。


Fatal Exception: java.lang.NullPointerException
curtains.internal.WindowCallbackWrapper$Companion.getJetpackWrapped (WindowCallbackWrapper.kt:112)
curtains.internal.WindowCallbackWrapper$Companion.unwrap (WindowCallbackWrapper.kt:154)
curtains.WindowsKt.getWrappedCallback (Windows.kt:233)
leakcanary.RootViewWatcher$listener$1.onRootViewAdded (RootViewWatcher.kt:46)
curtains.OnRootViewAddedListener$DefaultImpls.onRootViewsChanged (Listeners.kt:38)
leakcanary.RootViewWatcher$listener$1.onRootViewsChanged (RootViewWatcher.kt:43)
curtains.internal.RootViewsSpy$delegatingViewList$1.add (RootViewsSpy.kt:25)
curtains.internal.RootViewsSpy$delegatingViewList$1.add (RootViewsSpy.kt:23)
android.view.WindowManagerGlobal.addView (WindowManagerGlobal.java:454)
android.view.WindowManagerImpl.addView (WindowManagerImpl.java:121)
...

👉 Obfucation and 2.8.1 version cause an app launch crash · Issue #2286 · square/leakcanary 

書いてあるように、proguard rule に以下を追加で暫定回避できました。


-keep class androidx.appcompat.view.WindowCallbackWrapper { *; }
-keep class android.support.v7.view.WindowCallbackWrapper { *; }

次期バージョンで修正され、不要になるのでしょうが。

👉 Add Proguard rules for WindowCallbackWrapper by carlonzo · Pull Request #33 · square/curtains 

2022-04-08 追記

さらに更新されてる。


-keep class androidx.appcompat.view.WindowCallbackWrapper {
    android.view.Window$Callback mWrapped;
}

-keep class android.support.v7.view.WindowCallbackWrapper {
    android.view.Window$Callback mWrapped;
}

👉 just keep it · carlonzo/curtains@686b12c hatena-bookmark



【速報】SNS で知る ウクライナ の状況

いろいろなWEBサービスが公開されては消えていってますが。

今ならこれ。

SNS を使った ウクライナ の状況

👉 Russia-Ukraine Monitor Map by Cen4infoRes · MapHub 

しかし、ウクライナ国内はネット使えてるんですよね?

👉 ウクライナの首都キエフのライブカメラをまとめておく 
👉 Facebook、ウクライナのユーザー向け自衛ツールを提供 - ITmedia NEWS 


まとも検索 検索オプション追加 のブックマークレット

使ってみると確かに便利です!

👉 「Google検索は死んでいる」がバズったので「まとも検索」を作った。:村上福之の「ネットとケータイと俺様」:オルタナティブ・ブログ 

Google 検索オプションやドメインのおさらいしながら、雑にブックマークレットにしておきます。

まとも検索

通常のGoogle検索の結果表示のあと、ブックマークレットで検索オプションを追加して、結果を絞り込みます。


javascript:(()=>{
  if (location.host == 'www.google.com' && location.pathname == '/search') {
    var params = new URLSearchParams(location.search);
    params.set('q', 'site:ac.jp OR site:go.jp OR site:lg.jp ' + params.get('q'));
    location.search = params.toString();
  }
})()

👉 Googleの検索言語をサクッと切り替えるためのブックマークレット - かみのメモ 

公的期間に限定: ac.jp/lg.jp/go.jp

https://www.google.com/search?q=site%3Aac.jp+OR+site%3Ago.jp+OR+site%3Alg.jp+%E3%82%AA%E3%83%AA%E3%83%B3%E3%83%94%E3%83%83%E3%82%AF

AC.JP
高等教育機関および学校法人などが登録できます。
- 大学、大学校、高等専門学校、大学共同利用機関、障害者職業能力開発校など
- 学校法人、職業訓練法人、国立大学法人、大学共同利用機関法人、公立大学法人など
- 専門学校や各種学校のうち、18歳以上を対象とするもの

LG.JP
地方公共団体と、それらの組織が行う行政サービスが登録できます。

GO.JP
日本の政府機関や各省庁所管の研究所、特殊法人、独立行政法人が登録できます。
政府機関は、一つの組織で複数のGO.JPドメイン名を登録できます。

👉 種類と対象 | JPドメイン名の種類 | JPドメイン名について | JPRS 


javascript:(()=>{if(location.host=='www.google.com'&&location.pathname=='/search'){var params=new URLSearchParams(location.search);params.set('q', 'site:ac.jp OR site:go.jp OR site:lg.jp ' + params.get('q'));location.search=params.toString();}})()

医療情報に限定: 大学・大学病院(ac.jp)のみ

https://www.google.com/search?q=site%3Aac.jp+%E3%82%AA%E3%83%AA%E3%83%B3%E3%83%94%E3%83%83%E3%82%AF


javascript:(()=>{if(location.host=='www.google.com'&&location.pathname=='/search'){var params=new URLSearchParams(location.search);params.set('q', 'site:ac.jp ' + params.get('q'));location.search=params.toString();}})()

国内論文限定: ci.nii.ac.jp に限定

https://www.google.com/search?q=site%3Aci.nii.ac.jp+%E3%82%AA%E3%83%AA%E3%83%B3%E3%83%94%E3%83%83%E3%82%AF

CiNii(NII学術情報ナビゲータ[サイニィ])は、論文、図書・雑誌や博士論文などの学術情報で検索できるデータベース・サービスです。どなたでもご利用いただけます。

「CiNii Articles - 日本の論文をさがす」では、学協会刊行物・大学研究紀要・国立国会図書館の雑誌記事索引データベースなどの学術論文情報を検索できます。

👉 CiNii Articles - 日本の論文をさがす - 国立情報学研究所 


javascript:(()=>{if(location.host=='www.google.com'&&location.pathname=='/search'){var params=new URLSearchParams(location.search);params.set('q', 'site:ci.nii.ac.jp ' + params.get('q'));location.search=params.toString();}})()

pdfのみ: 正確な情報が多い

https://www.google.com/search?q=filetype%3Apdf+%E3%82%AA%E3%83%AA%E3%83%B3%E3%83%94%E3%83%83%E3%82%AF


javascript:(()=>{if(location.host=='www.google.com'&&location.pathname=='/search'){var params=new URLSearchParams(location.search);params.set('q', 'filetype:pdf ' + params.get('q'));location.search=params.toString();}})()

英文論文限定: pubmed.ncbi.nlm.nih.gov に限定

https://www.google.com/search?q=site%3Apubmed.ncbi.nlm.nih.gov+%E3%82%AA%E3%83%AA%E3%83%B3%E3%83%94%E3%83%83%E3%82%AF

PubMed is a free resource supporting the search and retrieval of biomedical and life sciences literature with the aim of improving health–both globally and personally.

The PubMed database contains more than 33 million citations and abstracts of biomedical literature. It does not include full text journal articles; however, links to the full text are often present when available from other sources, such as the publisher's website or PubMed Central (PMC).

👉 PubMed 


javascript:(()=>{if(location.host=='www.google.com'&&location.pathname=='/search'){var params=new URLSearchParams(location.search);params.set('q', 'site:pubmed.ncbi.nlm.nih.gov  ' + params.get('q'));location.search=params.toString();}})()

ありがとうございます。

ホント今の広告だらけの検索結果にうんざりです。

👉 ブックマークレットの登録方法 - Qiita 

👉 Google 検索オプション 
👉 Google 画像検索オプション 
👉 Google 動画検索オプション 
👉 ブックス検索オプション 

👉 Stackoverflow の短い公式URLでコピペ用ブックマークレットを作る 


Googleコンタクト から iCloud連絡先 へ完全移行する手順 - 連絡先 / コンタクトの使い方まとめ その4 【Android → iPhone】

iPhone上の 連絡先アプリ で Googleコンタクトのデータを同期(共有)している状態から、iPhone と iCloud連絡先 連携のみの状態に完全移行します。

今回は、「Android と iPhone のみで完全移行する」のと「Mac (パソコン) を利用して完全移行する」の2つの手順で考えてみます。

 

👥 Android と iPhone のみで完全移行する

スタートは、iPhone上の連絡先アプリ で Googleコンタクト のデータを同期 (共有) している状態からです。

iPhone 上の連絡先アプリで Googleコンタクト のデータを同期 (共有) している状態から、iPhone + iCloud 連絡先に完全移行します。

iCloud連絡先を有効化 します。

iCloud 連絡先を有効化 します。

iPhone連絡先アプリ から Googleコンタクトアカウントを無効化 します。

iPhone 連絡先アプリ からGoogle コンタクトアカウントを無効化します。

Android側で vCard 形式でエクスポートした vcfファイルをメールに添付して iPhone に送信します。

Android 側で vCard 形式でエクスポートする。 メールに添付して iPhone に送る。 iPhone 上で受信したメールの添付ファイルをタップしてインポートする。

iPhone上で受信したメールの添付ファイルをタップしてインポートします。

以下のようになり完全移行完了しました。

完全移行完了。

 

👥 Mac (パソコン) を利用して完全移行する

Mac上でやるとファイル移動の手間がかからず、複数のGoogleコンタクトアカウントを持っているときなどにも柔軟に操作できます。

GoogleコンタクトデータをAndroid、Mac、iPhone の3つで同期(共有)しているところから始めてみます。

連絡先データはすべてGoogleコンタクトに保存する。 メールの設定との関係もある。 デフォルトのアカウントの設定で新規保存先をGoogleアカウント側に向けておく必要がある。

iPhoneで Googleアカウントを無効化 します。

iPhone で Googleアカウントを無効化します。

Mac と iPhone で iCloudを有効化 します。

Mac と iPhone で iCloud を有効化します。

Mac上で、Googleコンタクト や 同期済みの連絡帳アプリ からエクスポートします。

Mac 上でGoogleコンタクトや連絡帳アプリからエクスポートする。 Mac 上でやるとファイル移動の手間がかからないので簡単です。

ブラウザからは、Googleコンタクトからエクスポートです。
Mac上で、Googleコンタクト や 同期済みの連絡帳アプリ からエクスポートします。

連絡先アプリでは、メニューから以下でエクスポートします。


[ファイル]

  ↓

[書き出す]

  ↓

[vCardを書き出す]

Mac上で、Googleコンタクト や 同期済みの連絡帳アプリ からエクスポートします。

続いて、パソコン上で エクスポートして不要になった Googleコンタクトアカウントを無効化します。

メニューから、


[連絡先]

  ↓

[環境設定]

  ↓

[アカウント]

  ↓

(Googleコンタクトアカウントを選択)

  ↓

[このアカウントを有効にする] をOFF

パソコン上で Google コンタクトを無効化します。

エクスポートしたvCardファイルを iCloud連絡先にインポートします。

先に、パソコン上で Google コンタクトを無効化する。 iCloud 側にインポートする。
メニューから以下でインポートです。


[ファイル]

  ↓

[読み込む]

  ↓

(vCardファイルを選択)

お疲れさまです。完全移行完了です。

Google と Apple のクラウドを利用した連絡先データ連携系統がくっきり2つに分かれました。

iPhone上では、Googleコンタクトを利用せずに連絡先データを使えるようになります。

完全移行完了。

iCloud 連絡先 にデータを完全移行することで、Googleコンタクトの設定は関係なしに、Appleデバイス間で連絡先データを共有できます。

クラウド側のデータを参照するアプリによって制限があるのがややこしくさせています。

Googleコンタクト から iCloud連絡先 へ完全移行する手順 - 連絡先 / コンタクトの使い方まとめ

まあ、サードパーティアプリでできるのだろうが、まずは、Google、Apple それぞれの意図意向を把握しておきます。

👉 連絡先をクラウド上に保存する - 連絡先 / コンタクトの使い方まとめ その1【Android / iPhone】 
👉 Google コンタクト データをAndroid と iPhone で共有する - 連絡先 / コンタクトの使い方まとめ その2【Android / iPhone】 
👉 連絡先アプリ 必ず把握しておくべき全設定画面別使い方メモ- 連絡先 / コンタクトの使い方まとめ その3【Android → iPhone】 
👉 iPhone連絡先アプリ だけが iCloud連絡先 のデータをエクスポートできない件