Internet Commandsではメールが送信でき,SMTP Transporter
では送信できない場合,SMTPサーバーのTLSバージョンが古い可能性があります。これは仕様です。サーバーがTLS_1.1
またはTLS_1.2
をサポートしていない場合,checkConnectivity()
でエラー 42
43
49
が返されます。これに対応するOpenSSL内部エラーメッセージは下記のとおりです。
1425F102:SSL routines:ssl_choose_client_version:unsupported protocol
古いSMTPサーバーを使用する場合,4DのデフォルトTLSバージョンを引き下げる必要があります。
SET DATABASE PARAMETER(Min TLS version;TLSv1_0)
Mac版でTRANSFORM PICTURE
のScale
オプションの倍率を0.5
から0.99
に設定した場合,.jpg
画像ファイルのサイズが縮小される代わりに拡大されることがあります。これは仕様です。0.5
あるいは1
のように割り切れる倍率であれば,問題ありません。現行バージョンでは,.jpg
画像を処理するためにシステムのライブラリをコールしています。システムは,最高の画質つまり100%
をデフォルトで適用しています。v12では,4D側で画質が94%
に設定されていました。画像を中途半端な倍率(たとえば78%
)にリサイズする必要があり,v12と同等のサイズを得たい場合,CONVERT PICTURE
で明示的に画質を指定してください。
64ビット整数型のフィールドに登録されている符号なし整数値を符号あり32ビット整数型の変数(C_LONGINT
)に代入した場合,インタープリターモードにおけるオーバーフロー値(例:30,000,000
)の扱いは,プラットフォーム依存となります。これは仕様です。Windowsでは,オーバーフロー値が0
になりますが,Macではなりません。そのため,クエリや演算の結果がプラットフォーム間で違うことがあります。なお,コンパイルモードでは,どちらのプラットフォームでも同じ結果になります。いずれにしても,整数値オーバーフローの動作は「未定義」ですので,特定の動作を前提にしたコーディングは避けるべきです。たとえば,整数をC_REAL
で処理できるかもしれません。
Mac版のv18は,4D SASによってコード署名され,アプリ公証(ノータリゼーション)にも合格していますが,macOS 10.13 High Sierraでは,初回の起動時に「開発元が未確認のため開けません」というエラーが表示されます。これは,4D.app特有の現象であり,4D Server.appでは発生しません。4D.appには,モバイルアプリのジェネレーター(4D for iOS)がプリインストールされていますが,このSDKのSwiftフレームワークは,High Sierraにインストールされているものよりもバージョンが新しいため,GateKeeperがアプリの検証に失敗してしまうようです。
4D for iOS v18のシステム要件は・・・
Xcode 11.2 Swift 5.1 iOS 13.2 macOS 10.14.4
・・・となっています。
4D v18 LTSのシステム要件は・・・
macOS High Sierra (10.13) – macOS Catalina (10.15)
・・・ですが,上述した問題が発生するようであれば,MojaveまたはCatalinaを使用することが推奨されています。
開発プラットフォームをアップグレードすることが難しい場合,下記いずれかの方法で問題を回避することができます。
Swiftをインストールする【推奨】