簡體   English   中英

使用 Kotlin/Native Multiplatform 構建 Mapbox pod iOS

[英]Build Mapbox pod iOS with Kotlin/Native Multiplatform

我正在嘗試將 Mapbox 添加到 Kotlin/Native 項目,我在其中使用 cocoapods:(已經為 Android 設置 - 工作正常)

    //plugin 
    kotlin("native.cocoapods")
    
    //pod
    cocoapods {
        // Configure fields required by CocoaPods.
        summary = "Some description for a Kotlin/Native module"
        homepage = "Link to a Kotlin/Native module homepage"

        pod("Mapbox-iOS-SDK", "~> 6.0.0")
    }

通過 Kotlin/Native 運行的 Pod 不會讀取帶有憑據的.netrc文件:

machine api.mapbox.com 
login name
password pass

在 pod 文件中,我添加了我的庫:

pod 'SharedCode', :path => 'kotlin_native/SharedCode'

我在運行pod install時看到的錯誤:

[!] Error installing Mapbox-iOS-SDK
[!] /usr/bin/curl -f -L -o /var/folders/vk/rb1bs6ld7wd19cmg6srw9s080000gn/T/d20200728-92875-1y3089q/file.zip https://api.mapbox.com/downloads/v2/mobile-maps/releases/ios/packages/6.0.0/mapbox-ios-sdk-dynamic.zip --create-dirs --netrc-optional --retry 2

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 401 Unauthorized

如果我直接將 pod 添加到 iOS 項目,它可以正常工作:

#pod 'Mapbox-iOS-SDK', '~> 5.0.0'

我怎樣才能讓它讀取憑據文件? 可能嗎?

另外,我嘗試使用podspec並將access_token放入 URL 但它不起作用(有或沒有令牌),不確定它是否不受支持或語法錯誤?

ArgumentError - Illformed requirement `":podspec => https://github.com/mapbox/pod-specs/blob/master/Mapbox-iOS-SDK/5.2.0/Mapbox-iOS-SDK.podspec"`

目前不支持此功能。 Kotlin 版本 1.4-RC 應該引入一種可能的解決方法。 可以嘗試手動調用curl ,然后導入本地 CocoaPods 依賴項,就像在示例中所做的那樣。


我還建議您在此處提交問題( https://kotl.in/issue )。 支持憑證很重要,應該放在 Kotlin 團隊的名單上。

登錄必須是“mapbox”:mapbox 文檔: https://docs.mapbox.com/ios/maps/overview/#configure-credentials

machine api.mapbox.com
login mapbox
password <INSERT API TOKEN>

額外提示:您可以在 pod install / pod update 過程之前添加憑據,然后使用此 macOS 腳本將其刪除,例如:

echo "Generate credential for mapbox"
echo "machine api.mapbox.com" > ~/.netrc
echo "login mapbox" >> ~/.netrc
echo "password <INSERT API TOKEN>" >> ~/.netrc

稍后刪除此條目:

sed -i '' -e '/^machine api.mapbox.com$/{N;N;d;}' ~/.netrc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM