Xcode ਲਈ ਦੂਰ ਦਾ Mac: ਸਥਾਨਕ ਬਿਲਡ, ਦੂਰ ਦਾ ਬਿਲਡ ਜਾਂ ਸਕ੍ਰੀਨ ਸ਼ੇਅਰਿੰਗ?
ਮਾਊਂਟ ਕੀਤਾ ਵਰਕਸਪੇਸ ਅਤੇ ਦੂਰ ਦਾ Xcode ਵੱਖਰਾ ਡੇਟਾ ਹਿਲਾਉਂਦੇ ਹਨ। ਸਰੋਤ, ਇੰਡੈਕਸ ਅਤੇ ਬਿਲਡ ਕਿੱਥੇ ਰਹਿੰਦੇ ਹਨ ਇਹ ਤੈਅ ਕਰੋ, ਫਿਰ ਗੇੜ ਮਾਪੋ।
ਨੈੱਟਵਰਕ ਉੱਤੇ ਪ੍ਰੋਜੈਕਟ ਸਾਂਝਾ ਕਰਨ ਨਾਲ Xcode ਨਹੀਂ ਹਿਲਦਾ, ਕਿਉਂਕਿ ਐਪ ਤੁਹਾਡੇ Mac ਉੱਤੇ ਚੱਲਦੀ ਰਹਿੰਦੀ ਹੈ ਅਤੇ ਸਰਵਰ ਤੋਂ ਪ੍ਰੋਜੈਕਟ ਡੇਟਾ ਮੰਗਦੀ ਰਹਿੰਦੀ ਹੈ। ਦੂਰ ਦੇ Mac ਉੱਤੇ Xcode ਚਲਾ ਕੇ ਉਸ ਦੀ ਸਕ੍ਰੀਨ ਵੇਖਣਾ ਇੱਕ ਹੋਰ ਪ੍ਰਬੰਧ ਹੈ, ਜਿੱਥੇ ਐਪ ਅਤੇ ਉਸ ਦੀਆਂ ਫਾਈਲਾਂ ਇਕੱਠੇ ਰਹਿੰਦੀਆਂ ਹਨ ਅਤੇ ਲਿੰਕ ਸਿਰਫ਼ ਡਿਸਪਲੇ ਅਤੇ ਤੁਹਾਡਾ ਇਨਪੁਟ ਲੈ ਜਾਂਦਾ ਹੈ। ਕੁਝ ਵੀ ਸੰਰਚਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਤੈਅ ਕਰਨਾ ਕਿ ਤੁਸੀਂ ਇਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕਿਹੜਾ ਚਾਹੁੰਦੇ ਹੋ, ਬਾਅਦ ਦੀ ਬਹੁਤੀ ਉਲਝਣ ਸੁਲਝਾ ਦਿੰਦਾ ਹੈ।
ਆਮ ਮਾਮਲਿਆਂ ਨੂੰ ਤਿੰਨ ਪ੍ਰਬੰਧ ਕਵਰ ਕਰਦੇ ਹਨ, ਅਤੇ ਉਹ ਇਸ ਵਿੱਚ ਵੱਖਰੇ ਹਨ ਕਿ ਵਰਕਸਪੇਸ ਕਿੱਥੇ ਰਹਿੰਦਾ ਹੈ ਅਤੇ ਕਿਹੜੀ ਮਸ਼ੀਨ ਕੰਪਾਇਲ ਕਰਦੀ ਹੈ। ਅੱਗੇ ਵਧਣ ਤੋਂ ਪਹਿਲਾਂ ਦੋਵਾਂ ਨੁਕਤਿਆਂ ਦਾ ਆਪਣਾ ਜਵਾਬ ਲਿਖੋ।
Xcode ਚਲਾਉਣ ਵਾਲੀ ਮਸ਼ੀਨ ਦਾ ਨਾਮ ਦਿਓ
ਪਹਿਲੇ ਪ੍ਰਬੰਧ ਵਿੱਚ ਸਭ ਕੁਝ ਸਥਾਨਕ ਹੈ: ਕੰਮ ਦੀ ਕਾਪੀ, ਇੰਡੈਕਸ ਅਤੇ ਬਿਲਡ ਸਭ ਤੁਹਾਡੇ Mac ਉੱਤੇ ਰਹਿੰਦੇ ਹਨ, ਅਤੇ ਨੈੱਟਵਰਕ ਸਿਰਫ਼ ਰਿਪੋਜ਼ਟਰੀ ਅਤੇ ਨਿਰਭਰਤਾ ਦਾ ਟ੍ਰੈਫ਼ਿਕ ਲੈ ਜਾਂਦਾ ਹੈ। ਦੂਜੇ ਵਿੱਚ ਪ੍ਰੋਜੈਕਟ Xcode ਨਾਲ ਦੂਰ ਦੇ Mac ਉੱਤੇ ਰਹਿੰਦਾ ਹੈ, ਇਸ ਲਈ ਇੰਡੈਕਸਿੰਗ ਅਤੇ ਕੰਪਾਇਲੇਸ਼ਨ ਫਾਈਲਾਂ ਦੇ ਕੋਲ ਹੁੰਦੇ ਹਨ ਜਦਕਿ ਲਿੰਕ ਸਕ੍ਰੀਨ ਸਮੱਗਰੀ ਅਤੇ ਕੀ-ਸਟ੍ਰੋਕ ਲੈ ਜਾਂਦਾ ਹੈ। ਤੀਜੇ ਵਿੱਚ ਸੋਧ ਸਥਾਨਕ ਹੁੰਦੀ ਹੈ ਅਤੇ ਸਪਸ਼ਟ ਸਰੋਤ ਹਸਤਾਂਤਰਣ ਤੋਂ ਬਾਅਦ ਦੂਰ ਦੇ ਹੋਸਟ ਉੱਤੇ ਬਿਲਡ ਚੱਲਦਾ ਹੈ। ਸਾਰਣੀ ਦੱਸਦੀ ਹੈ ਕਿ ਹਰ ਇੱਕ ਕੀ ਹਿਲਾਉਂਦਾ ਹੈ।
| Arrangement | Where the source lives | What crosses the link |
|---|---|---|
| Everything local | Local disk | Repository and dependency traffic |
| Remote Xcode, screen shared | Remote disk | Display frames and input events |
| Local edit, remote build | Both, with a handoff | Source transfer, then build output |
ਪਹਿਲਾਂ ਵਿਚਕਾਰਲਾ ਕਾਲਮ ਪੜ੍ਹੋ, ਕਿਉਂਕਿ ਇਹ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਅਸਫ਼ਲਤਾਵਾਂ ਕਿੱਥੇ ਦਿਖਣਗੀਆਂ। ਜਿਸ ਵਰਕਫ਼ਲੋ ਦਾ ਸਰੋਤ ਦੂਰ ਹੈ ਉਹ ਲਿੰਕ ਹੌਲੀ ਹੋਣ ’ਤੇ ਅਸਫ਼ਲ ਹੁੰਦਾ ਹੈ, ਜਦਕਿ ਦੂਰ ਦੇ ਕੰਪਾਇਲਰ ਵਾਲਾ ਵਰਕਫ਼ਲੋ ਹਸਤਾਂਤਰਣ ਅਸਪਸ਼ਟ ਹੋਣ ’ਤੇ ਅਸਫ਼ਲ ਹੁੰਦਾ ਹੈ। ਸਿਰਫ਼ ਤੀਜਾ ਤੁਹਾਨੂੰ ਦੋਵਾਂ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਬਣਾਉਂਦਾ ਹੈ।
ਗੇੜ ਗਿਣੋ, ਮੈਗਾਬਾਈਟ ਨਹੀਂ
ਇੱਕ ਸੰਪਾਦਕ ਅਤੇ ਇੱਕ ਇੰਡੈਕਸਰ ਬਹੁਤ ਸਾਰੀਆਂ ਛੋਟੀਆਂ ਫਾਈਲ ਕਿਰਿਆਵਾਂ ਭੇਜਦੇ ਹਨ, ਅਤੇ ਫਾਈਲ ਸਿਸਟਮ ਦੂਰ ਹੋਣ ’ਤੇ ਹਰ ਇੱਕ ਗੇੜ ਬਣ ਜਾਂਦੀ ਹੈ। ਇਸ ਨਾਲ ਮਾਊਂਟ ਕੀਤਾ ਵਰਕਸਪੇਸ ਇੱਕ ਵੱਡੀ ਕਾਪੀ ਵਾਂਗ ਦੇਰੀ ਪ੍ਰਤੀ ਸੰਵੇਦਨਸ਼ੀਲ ਨਹੀਂ ਰਹਿੰਦਾ, ਇਸ ਲਈ ਫਾਈਲ ਟ੍ਰਾਂਸਫ਼ਰ ਦਾ ਸਮਾਂ ਮਾਪਣ ਨਾਲ ਵਰਕਫ਼ਲੋ ਕਿਹੋ ਜਿਹਾ ਲੱਗਦਾ ਹੈ ਇਸ ਬਾਰੇ ਲਗਭਗ ਕੁਝ ਵੀ ਪਤਾ ਨਹੀਂ ਚੱਲਦਾ। ਦੂਰ ਦੇ ਡਿਸਪਲੇ ਦਾ ਉਲਟ ਪ੍ਰੋਫਾਈਲ ਹੈ: ਇਹ ਲਗਾਤਾਰ ਸਟ੍ਰੀਮ ਹਿਲਾਉਂਦਾ ਹੈ ਅਤੇ ਦੇਰੀ ਨਾਲੋਂ ਥ੍ਰੂਪੁਟ ਨੂੰ ਬਿਹਤਰ ਸਹਿੰਦਾ ਹੈ। ਦੋਵਾਂ ਦੀ ਇੱਕ ਸੰਖਿਆ ਨਾਲ ਤੁਲਨਾ ਕਰਨ ਨਾਲ ਭਰੋਸੇਯੋਗ ਗਲਤ ਜਵਾਬ ਮਿਲਦਾ ਹੈ।
ਕੋਈ ਵੀ ਪ੍ਰਬੰਧ ਸੁਭਾਅ ਤੋਂ ਸਭ ਤੋਂ ਤੇਜ਼ ਨਹੀਂ ਹੈ। ਸਹੀ ਚੋਣ ਇਸ ’ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ ਕਿ ਤੁਸੀਂ ਅਸਲ ਵਿੱਚ ਕੀ ਕੰਮ ਕਰਦੇ ਹੋ, ਇਸ ਲਈ ਅਗਲਾ ਕਦਮ ਬੈਂਚਮਾਰਕ ਨਹੀਂ, ਉਹੀ ਕੰਮ ਅਜ਼ਮਾਉਣਾ ਹੈ।
ਸਰੋਤ ਹਸਤਾਂਤਰਣ ਸਪਸ਼ਟ ਕਰੋ
ਜਦੋਂ ਦੋਵਾਂ ਮਸ਼ੀਨਾਂ ਕੋਲ ਕੰਮ ਦੀ ਕਾਪੀ ਹੋਵੇ, ਤੈਅ ਕਰੋ ਕਿ ਕਿਹੜੀ ਅਧਿਕਾਰਤ ਹੈ ਅਤੇ ਦੂਰ ਦੇ ਬਿਲਡ ਨੇ ਕਿਹੜਾ ਸੰਸ਼ੋਧਨ ਵਰਤਿਆ। ਇੱਕ ਕਮਿਟ ਇੱਕ ਮਾਊਂਟ ਕੀਤੇ ਕੰਮ ਦੇ ਰੁੱਖ ਨੂੰ ਦੋ ਸਾਧਨਾਂ ਦੁਆਰਾ ਸੋਧਣ ਨਾਲੋਂ ਵਧੇਰੇ ਸਪਸ਼ਟ ਹਸਤਾਂਤਰਣ ਹੈ, ਕਿਉਂਕਿ ਕਮਿਟ ਦੀ ਪਛਾਣ ਹੁੰਦੀ ਹੈ ਅਤੇ ਮਾਊਂਟ ਦੀ ਨਹੀਂ। ਪੈਦਾ ਕੀਤੇ ਆਉਟਪੁਟ ਅਤੇ ਇੰਡੈਕਸ ਡੇਟਾ ਨੂੰ ਵੀ ਮਾਲਕ ਚਾਹੀਦਾ ਹੈ, ਕਿਉਂਕਿ ਉਹ ਸਰੋਤ ਤੋਂ ਦੁਬਾਰਾ ਬਣਦੇ ਹਨ ਅਤੇ ਸਰੋਤ ਵਾਂਗ ਸਫ਼ਰ ਨਹੀਂ ਕਰਨੇ ਚਾਹੀਦੇ। ਸੰਘਰਸ਼ ਨਿਯਮਾਂ ਤੋਂ ਬਿਨਾਂ ਦੋ-ਮਾਰਗੀ ਸ਼ੀਸ਼ਾ ਵਰਕਫ਼ਲੋ ਨਹੀਂ, ਇਹ ਦੌੜ ਹੈ।
ਦੂਰੋਂ ਬਿਲਡ ਕਰਨ ਲਈ ਇਹ ਵੀ ਲੋੜੀਂਦਾ ਹੈ ਦੂਰ ਦੇ ਹੋਸਟ ਕੋਲ ਸਹੀ ਟੂਲਚੇਨ ਹੋਵੇ ਅਤੇ ਨਿੱਜੀ ਨਿਰਭਰਤਾਵਾਂ ਲਈ ਪ੍ਰਮਾਣ ਪੱਤਰ। ਜੋ VPN ਤੁਹਾਨੂੰ ਹੋਸਟ ਤੱਕ ਪਹੁੰਚਣ ਦਿੰਦਾ ਹੈ, ਉਹ ਤੁਹਾਡੇ ਖਾਤੇ ਦੀ ਪਹੁੰਚ ਉਸ ਨੂੰ ਉਧਾਰ ਨਹੀਂ ਦਿੰਦਾ, ਅਤੇ ਉਹ ਉੱਥੇ Xcode ਸਥਾਪਿਤ ਨਹੀਂ ਕਰਦਾ।
ਵਰਕਫ਼ਲੋ ਲਈ ਵਚਨਬੱਧ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਰਾਹ ਦੀ ਜਾਂਚ ਕਰੋ
ਦੂਰ ਦੇ ਹੋਸਟ ਦੇ ਦੁਆਲੇ ਡਿਜ਼ਾਈਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਉਸ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ, ਫਿਰ ਵਰਕਫ਼ਲੋ ਅਸਲ ਵਿੱਚ ਜੋ ਕਿਰਿਆਵਾਂ ਕਰੇਗਾ ਉਨ੍ਹਾਂ ਨਾਲ ਲਿੰਕ ਮਾਪੋ। ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਟੂਲਚੇਨ, ਸਰਗਰਮ ਡਿਵੈਲਪਰ ਡਾਇਰੈਕਟਰੀ ਅਤੇ ਫਾਈਲ ਨਿਗਰਾਨੀ ਦੀ ਲਾਗਤ ਦੀ ਜਾਂਚ ਕਰਦੇ ਹਨ ਜੋ ਦੂਰ ਦੇ ਵਰਕਸਪੇਸ ਨੂੰ ਤਕਲੀਫ਼ਦੇਹ ਬਣਾਉਂਦੀ ਹੈ। ਆਖਰੀ ਨੂੰ ਸਥਾਨਕ ਨਹੀਂ, ਨੈੱਟਵਰਕ ਰਾਹ ਉੱਤੇ ਚਲਾਓ।
xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain
ਪੂਰੀ Xcode ਸਥਾਪਨਾ ਤੋਂ ਬਿਨਾਂ ਹੋਸਟ xcodebuild ਤੋਂ ਗਲਤੀ ਵਾਪਸ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਹ ਨੈੱਟਵਰਕ ਨਹੀਂ ਸਗੋਂ ਟੂਲਚੇਨ ਦੀ ਸਮੱਸਿਆ ਹੈ। ਡਿਵੈਲਪਰ ਡਾਇਰੈਕਟਰੀ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਬਿਲਡ ਕਿਹੜਾ Xcode ਵਰਤੇਗਾ, ਅਤੇ ਸਿਰਫ਼ ਕਮਾਂਡ-ਲਾਈਨ ਟੂਲਾਂ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਨ ਵਾਲਾ ਰਾਹ ਮਤਲਬ ਐਪ ਸਥਾਪਿਤ ਨਹੀਂ। ਮਾਊਂਟ ਕੀਤੇ ਸ਼ੇਅਰ ਉੱਤੇ ਰਿਪੋਜ਼ਟਰੀ ਸਥਿਤੀ ਕਮਾਂਡ ਦਾ ਸਮਾਂ ਮਾਪਣ ਨਾਲ ਗੇੜ ਦੀ ਲਾਗਤ ਸਿੱਧੀ ਖੁੱਲ੍ਹਦੀ ਹੈ, ਅਤੇ ਸਥਾਨਕ ਚਾਲ ਨਾਲ ਤੁਲਨਾ ਕਰਨ ਨਾਲ ਜ਼ਰੂਰੀ ਸੰਖਿਆ ਮਿਲਦੀ ਹੈ। ਜੇ ਇਹ ਫ਼ਾਸਲਾ ਪਹਿਲਾਂ ਹੀ ਨਾਪਸੰਦ ਹੈ, ਤਾਂ ਅਸਲ ਸੰਪਾਦਕ ਹੇਠ ਮਾਊਂਟ-ਵਰਕਸਪੇਸ ਵਰਕਫ਼ਲੋ ਹੋਰ ਮਾੜਾ ਹੋਵੇਗਾ।
ਤੁਸੀਂ ਕਿਹੜਾ ਪ੍ਰਬੰਧ ਚੁਣਿਆ, ਕਿਹੜੀ ਮਸ਼ੀਨ ਸਰੋਤ ਦੀ ਮਾਲਕ ਹੈ ਅਤੇ ਹਸਤਾਂਤਰਣ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ, ਇਹ ਦਰਜ ਕਰੋ। ਉਹ ਨੋਟ ਅਗਲੀ ਆਨਬੋਰਡਿੰਗ ਜਾਂ ਲੈਪਟਾਪ ਬਦਲੀ ਨੂੰ ਜਾਂਚ ਦੀ ਬਜਾਏ ਸੰਰਚਨਾ ਕੰਮ ਬਣਾ ਦਿੰਦਾ ਹੈ।