カテゴリー別アーカイブ: swift

Your app uses the “prefs:root=” non-public URL scheme

アップルレビューチームにリジェクトされた。

Your app uses the “prefs:root=” non-public URL scheme, which is a private entity. The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store.

Next Steps

To resolve this issue, please revise your app to provide the associated functionality using public APIs or remove the functionality using the “prefs:root” or “App-Prefs:root” URL scheme.

プロジェクトを検索し、一箇所当たった。

let url = NSURL(string: “prefs:root=Privacy&path=CAMERA”)

UIApplication.shared.openURL(url! as URL)

これは、バーコードを読み取る際、カメラを起動して、ユーザに権限拒否された状態だったら、設定画面を開いて設定できるようにする処理。

これを下記に直し、再申請することに。

                if let url = URL(string: UIApplicationOpenSettingsURLString) {

                    UIApplication.shared.openURL(url)

                }

申請結果を後日追記。

No Accounts with iTunes Connect have been found for the Team

3週間後、appleの年間メンバーズシップ(iOS Distribution Certificate)が切れます。新たに延長購入した。その際xcodeでプロジェクトのArchiveを行うと、タイトル通りのエラーが表示され、進められない。

https://developer.apple.com/jp/programs/でログインしておく。
原因:下記画面上のstatusには、invalidとなっていた。
スクリーンショット 2018-07-12 14.33.00

invalidになっているprofileを選び、Editボタンを押して、有効なCertificatesを選んで、Generateボタンを押下する。これでxcodeを再起動したりして、Achiveをもう一回やると解決。

スクリーンショット 2018-07-12 14.39.35

 

追記:

一旦上記の手順を踏まえて解決し、新しいバージョンを公開できたが、その後のバージョンを公開する際、また同じエラーが発生。iOS Provisioning Profilesの内容を見ると、古いものが翌日に切れるという状態になっている。古いものをクリックして、Revokeボタンを押して、マシンを再起動してから、もう一回Archiveを行うと、無事完了した。

スクリーンショット 2018-07-31 16.36.50

12.9インチディスプレイスクリーンショットの撮り方

アップルアプリを公開にあたり、12.9インチディスプレイのスクリーンショットが必要になった。

デフォルトでは、command+sで取ってくれるのは縮小したもので、使えない。シミュレータを選び、メニューから下記のチェックを外せば、command+sで12.9インチディスプレイのスクリーンショットが取れる。

symbol(s) not found for architecture arm64

このエラーの原因を元として、いろんなエラーが発生し、1日費やしてしまいました。結局、このエラーの原因を直さない限り、直しても直しても対応しきれません。やっと解決したので、嬉しいよりは悔しい気持ち。

google-maps-ios-utilsを追加する際、

Copy items if needed

Create folder references

のオプションが出ていて、前者をチェックしたのに、後者はチェックしていなかった。追加したものを削除し、上記両方にもチェックをいれて再度追加したら、無事解決。

自分の根気良さに拍手。

coredataでEntityのクラスを作成時のエラー

既存のcoredataに、新規のEntityを追加、EditorメニューのCreate NSManagedObject  Subclassでクラスファイルを作成して、コンパイルすると、下記のようなエラーになりました。二回目なのに、解決には時間がかかったことでメモしときます。

エラー:

<unknown>:0: error: filename “新規Entity名+CoreDataClass.swift” used twice: ‘/Users/******/Dropbox/****/swift/*****/******/Data/新規Entity名+CoreDataClass.swift’ and ‘/Users/******/Library/Developer/Xcode/DerivedData/******-buueghuwfmqsgydcwrfrsnfhquyu/Build/Intermediates.noindex/******.build/Debug-iphonesimulator/******.build/DerivedSources/CoreDataGenerated/******/新規Entity名+CoreDataClass.swift’

<unknown>:0: note: filenames are used to distinguish private declarations with the same name

<unknown>:0: error: filename “新規Entity名+CoreDataProperties.swift” used twice: ‘/Users/*******/Dropbox/*****/swift/*****/******/Data/新規Entity名+CoreDataProperties.swift’ and ‘/Users/*******/Library/Developer/Xcode/DerivedData/*****-buueghuwfmqsgydcwrfrsnfhquyu/Build/Intermediates.noindex/******.build/Debug-iphonesimulator/*******.build/DerivedSources/CoreDataGenerated/*******/新規Entity名+CoreDataProperties.swift’

<unknown>:0: note: filenames are used to distinguish private declarations with the same name

Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1

解決法:

新規Entityのみエラーになっていましたので、その設定には問題があることになります。右側のData Model InspectorのClassのCodegenが「Manual/None」に直せば解決しました。